From 6f73f7a84b09b804f5811eed3d743a6725fe29d7 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 17:04:41 +0900 Subject: [PATCH 001/411] chore: change version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4322eb3d..4484dc795 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rawon", - "version": "2.4.0", + "version": "3.0.0-dev", "private": true, "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", "repository": "https://github.com/mzrtamp/rawon", From 093381fbb7fb0ead26b943661dfc64edc89ff8d0 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:15:56 +0900 Subject: [PATCH 002/411] refactor(EvalCommand): better styling and args parsing --- src/commands/developers/EvalCommand.ts | 81 +++++++++++++------------- 1 file changed, 39 insertions(+), 42 deletions(-) diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index b5379b8cf..d8bb2a915 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unused-vars, no-eval */ +/* eslint-disable @typescript-eslint/no-unused-vars, no-eval, prefer-named-capture-group */ import { CommandContext } from "../../structures/CommandContext"; import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; @@ -26,38 +26,36 @@ export class EvalCommand extends BaseCommand { .addField("Input", `\`\`\`js\n${ctx.args.join(" ")}\`\`\``); try { - let code = ctx.args.join(" "); - if (!code) return await ctx.send({ embeds: [createEmbed("error", i18n.__("commands.developers.eval.noCode"), true)] }); - let evaled; - if (code.includes("--silent") && code.includes("--async")) { - code = code.replace("--async", "").replace("--silent", ""); - await eval(`(async () => { - ${code} - })()`); - return; - } else if (code.includes("--async")) { - code = code.replace("--async", ""); - evaled = await eval(`(async () => { - ${code} - })()`); - } else if (code.includes("--silent")) { - code = code.replace("--silent", ""); - await eval(code); - return; - } else { - evaled = await eval(code); - } - if (typeof evaled !== "string") { - evaled = inspect(evaled, { - depth: 0 + const code = ctx.args.join(" "); + if (!code) { + return await ctx.send({ + embeds: [ + createEmbed("error", i18n.__("commands.developers.eval.noCode"), true) + ] }); } - const output = this.clean(evaled); - if (output.length > 1024) { - const hastebin = await this.hastebin(output); - embed.addField(i18n.__("commands.developers.eval.outputString"), `${hastebin}.js`); - } else { embed.addField(i18n.__("commands.developers.eval.outputString"), `\`\`\`js\n${output}\`\`\``); } + const isAsync = (/.* --async( +)?(--silent)?$/).test(code); + const isSilent = (/.* --silent( +)?(--async)?$/).test(code); + const toExecute = isAsync || isSilent + ? code.replace(/--(async|silent)( +)?(--(silent|async))?$/, "") + : code; + const evaled = inspect( + await eval( + isAsync + ? `(async () => {\n${toExecute}\n})()` + : toExecute + ), { depth: 0 } + ); + + if (isSilent) return; + + const cleaned = this.clean(evaled); + const output = cleaned.length > 1024 + ? `${await this.hastebin(cleaned)}.js` + : `\`\`\`js\n${cleaned}\`\`\``; + + embed.addField(i18n.__("commands.developers.eval.outputString"), output); ctx.send({ askDeletion: { reference: ctx.author.id @@ -65,11 +63,13 @@ export class EvalCommand extends BaseCommand { embeds: [embed] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); } catch (e) { - const error = this.clean(e as string); - if (error.length > 1024) { - const hastebin = await this.hastebin(error); - embed.addField(i18n.__("commands.developers.eval.errorString"), `${hastebin}.js`); - } else { embed.setColor("RED").addField("Error", `\`\`\`js\n${error}\`\`\``); } + const cleaned = this.clean(String(e)); + const isTooLong = cleaned.length > 1024; + const error = isTooLong + ? `${await this.hastebin(cleaned)}.js` + : `\`\`\`js\n${cleaned}\`\`\``; + + embed.setColor("RED").addField(i18n.__("commands.developers.eval.errorString"), error); ctx.send({ askDeletion: { reference: ctx.author.id @@ -81,13 +81,10 @@ export class EvalCommand extends BaseCommand { // eslint-disable-next-line class-methods-use-this private clean(text: string): string { - if (typeof text === "string") { - return text - .replace(new RegExp(process.env.DISCORD_TOKEN!, "g"), "[REDACTED]") - .replace(/`/g, `\`${String.fromCharCode(8203)}`) - .replace(/@/g, `@${String.fromCharCode(8203)}`); - } - return text; + return text + .replace(new RegExp(process.env.DISCORD_TOKEN!, "g"), "[REDACTED]") + .replace(/`/g, `\`${String.fromCharCode(8203)}`) + .replace(/@/g, `@${String.fromCharCode(8203)}`); } private async hastebin(text: string): Promise { From 13271d6e14236209e4878e5e9a2160a5889f6e15 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:22:04 +0900 Subject: [PATCH 003/411] style(AboutCommand): sort import declarations --- src/commands/general/AboutCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index b39b05cd7..4b6998662 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -1,9 +1,9 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createTable } from "../../utils/functions/createTable"; import { version as BotVersion } from "../../../package.json"; import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; import { formatMS } from "../../utils/formatMS"; -import { createTable } from "../../utils/functions/createTable"; import i18n from "../../config"; import { version as DJSVersion } from "discord.js"; import { uptime } from "os"; From 3c463c86d6174916639cfc85a0c98998f703ee5e Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:24:01 +0900 Subject: [PATCH 004/411] style(AboutCommand): better line styling --- src/commands/general/AboutCommand.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 4b6998662..5100534b4 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -38,13 +38,11 @@ export class AboutCommand extends BaseCommand { void ctx.reply({ embeds: [ - createEmbed("info", ` -\`\`\`asciidoc -${value} -\`\`\` - `) + createEmbed("info", `\`\`\`asciidoc\n${value}\n\`\`\``) .setAuthor({ - name: i18n.__mf("commands.general.about.aboutFooter", { botname: this.client.user?.username ?? "Unknown" }) + name: i18n.__mf("commands.general.about.aboutFooter", { + botname: this.client.user?.username ?? "Unknown" + }) }) ] }).catch(e => this.client.logger.error("ABOUT_CMD_ERR:", e)); From 180815c30f84c9061314924c11aae77c2d7d7418 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:34:08 +0900 Subject: [PATCH 005/411] style(HelpCommand): better line styling --- src/commands/general/HelpCommand.ts | 76 ++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 17 deletions(-) diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 00cd25b1b..5ae2ff5b0 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -8,11 +8,15 @@ import { Message, MessageActionRow, MessageSelectMenu, MessageSelectOptionData, export class HelpCommand extends BaseCommand { private readonly listEmbed = createEmbed("info") .setAuthor({ - name: i18n.__mf("commands.general.help.authorString", { username: this.client.user!.username }), + name: i18n.__mf("commands.general.help.authorString", { + username: this.client.user!.username + }), iconURL: this.client.user?.displayAvatarURL()! }) .setFooter({ - text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), + text: i18n.__mf("commands.general.help.footerString", { + prefix: this.client.config.mainPrefix + }), iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/info.png" }); @@ -40,22 +44,32 @@ export class HelpCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); this.infoEmbed.fields = []; - const val = ctx.args[0] ?? ctx.options?.getString("command") ?? (ctx.additionalArgs.get("values") ? (ctx.additionalArgs.get("values") as string[])[0] : null); - const command = this.client.commands.get(val) ?? this.client.commands.get(this.client.commands.aliases.get(val)!); + const val = ctx.args[0] ?? + ctx.options?.getString("command") ?? + ( + ctx.additionalArgs.get("values") + ? (ctx.additionalArgs.get("values") as string[])[0] + : null + ); + const command = this.client.commands.get(val) ?? + this.client.commands.get(this.client.commands.aliases.get(val)!); if (!val) { const embed = this.listEmbed .setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 2048 })!); + this.listEmbed.fields = []; - for (const category of [...this.client.commands.categories.values()]) { + for (const category of this.client.commands.categories.values()) { const isDev = this.client.config.owners.includes(ctx.author.id); - const cmds = category.cmds.filter(c => isDev ? true : !c.meta.devOnly).map(c => `\`${c.meta.name}\``); + const cmds = category.cmds + .filter(c => isDev ? true : !c.meta.devOnly) + .map(c => `\`${c.meta.name}\``); if (cmds.length === 0) continue; if (category.hide && !isDev) continue; embed.addField(`**${category.name}**`, cmds.join(", ")); } - ctx.send({ embeds: [embed] }, "editReply").catch(e => { - this.client.logger.error("PROMISE_ERR:", e); - }); + + ctx.send({ embeds: [embed] }, "editReply") + .catch(e => this.client.logger.error("PROMISE_ERR:", e)); return; } if (!command) { @@ -67,6 +81,7 @@ export class HelpCommand extends BaseCommand { ] }, "editReply"); } + return ctx.send({ components: [ new MessageActionRow() @@ -74,7 +89,10 @@ export class HelpCommand extends BaseCommand { new MessageSelectMenu() .setMinValues(1) .setMaxValues(1) - .setCustomId(Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64")) + .setCustomId( + Buffer.from(`${ctx.author.id}_${this.meta.name}`) + .toString("base64") + ) .addOptions(matching) .setPlaceholder(i18n.__("commands.general.help.commandSelectionString")) ) @@ -85,7 +103,8 @@ export class HelpCommand extends BaseCommand { // Disable selection menu if (ctx.isSelectMenu()) { const channel = ctx.channel; - const msg = await channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id).catch(() => undefined); + const msg = await channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id) + .catch(() => undefined); if (msg !== undefined) { const selection = msg.components[0].components.find(x => x.type === "SELECT_MENU"); selection!.setDisabled(true); @@ -97,15 +116,38 @@ export class HelpCommand extends BaseCommand { embeds: [ this.infoEmbed .setAuthor({ - name: i18n.__mf("commands.general.help.commandDetailTitle", { username: this.client.user!.username, command: command.meta.name }), + name: i18n.__mf("commands.general.help.commandDetailTitle", { + username: this.client.user!.username, + command: command.meta.name + }), iconURL: this.client.user?.displayAvatarURL()! }) - .addField(i18n.__("commands.general.help.nameString"), `**\`${command.meta.name}\`**`, false) - .addField(i18n.__("commands.general.help.descriptionString"), `${command.meta.description!}`, true) - .addField(i18n.__("commands.general.help.aliasesString"), Number(command.meta.aliases?.length) > 0 ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! : "None.", false) - .addField(i18n.__("commands.general.help.usageString"), `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, true) + .addField( + i18n.__("commands.general.help.nameString"), + `**\`${command.meta.name}\`**`, + false + ) + .addField( + i18n.__("commands.general.help.descriptionString"), + `${command.meta.description!}`, + true + ) + .addField( + i18n.__("commands.general.help.aliasesString"), + Number(command.meta.aliases?.length) > 0 + ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! + : "None." + , false + ) + .addField( + i18n.__("commands.general.help.usageString"), + `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, + true + ) .setFooter({ - text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), + text: i18n.__mf("commands.general.help.commandUsageFooter", { + devOnly: command.meta.devOnly ? "(developer-only command)" : "" + }), iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/.github/images/info.png" }) ] From 76bab1c9365c8faef6b8b68881c7d4876ed3eb2d Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:39:58 +0900 Subject: [PATCH 006/411] style(InviteCommand): better line styling --- src/commands/general/InviteCommand.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index e49e61826..68352846b 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -38,10 +38,19 @@ export class InviteCommand extends BaseCommand { scopes: ["bot", "applications.commands"] }); await ctx.send({ - embeds: [createEmbed("info", i18n.__mf("commands.general.invite.clickURL", { url: invite })).setAuthor({ - name: i18n.__mf("commands.general.invite.inviteTitle", { bot: this.client.user?.username }), - iconURL: this.client.user!.displayAvatarURL() - })] + embeds: [ + createEmbed( + "info", + i18n.__mf("commands.general.invite.clickURL", { + url: invite + }) + ).setAuthor({ + name: i18n.__mf("commands.general.invite.inviteTitle", { + bot: this.client.user?.username + }), + iconURL: this.client.user!.displayAvatarURL() + }) + ] }).catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); } } From 55c7958eeffb9434cd716858b11ceb5991f1a146 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:41:02 +0900 Subject: [PATCH 007/411] style(PingCommand): better line styling --- src/commands/general/PingCommand.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/general/PingCommand.ts b/src/commands/general/PingCommand.ts index 1b466ad0a..22b464f04 100644 --- a/src/commands/general/PingCommand.ts +++ b/src/commands/general/PingCommand.ts @@ -48,7 +48,8 @@ export class PingCommand extends BaseCommand { iconURL: this.client.user!.displayAvatarURL() }) .setTimestamp(); - msg.edit({ content: " ", embeds: [embed] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); + msg.edit({ content: " ", embeds: [embed] }) + .catch(e => this.client.logger.error("PROMISE_ERR:", e)); } // eslint-disable-next-line class-methods-use-this From 333882c00b7445cb9d970b53d3925d1bb8298ecc Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 18:45:26 +0900 Subject: [PATCH 008/411] style(BanCommand): better line styling --- src/commands/moderation/BanCommand.ts | 75 +++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 10 deletions(-) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index 04dac4387..9a1bbf408 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -31,26 +31,63 @@ export class BanCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("BAN_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("BAN_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true) + ] + }); + } - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getString("memberid"); + const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + ctx.options?.getUser("user")?.id ?? + ctx.options?.getString("memberid"); const user = await this.client.users.fetch(memberId!, { force: false }).catch(() => undefined); const resolved = ctx.guild.members.resolve(user!); - if (!user) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); - if (!resolved?.bannable) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.ban.userNoBannable"), true)] }); + if (!user) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } + if (!resolved?.bannable) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.ban.userNoBannable"), true) + ] + }); + } - const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); + const reason = ctx.options?.getString("reason") ?? ( + ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") + ); if (ctx.guild.members.cache.has(user.id)) { const dm = await user.createDM().catch(() => undefined); if (dm) { await dm.send({ embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.ban.userBanned", { guildName: ctx.guild.name })) + createEmbed( + "error", + i18n.__mf("commands.moderation.ban.userBanned", { + guildName: ctx.guild.name + }) + ) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ - text: i18n.__mf("commands.moderation.ban.bannedByString", { guildName: ctx.author.tag }), + text: i18n.__mf( + "commands.moderation.ban.bannedByString", { + guildName: ctx.author.tag + } + ), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) }) .setTimestamp(Date.now()) @@ -62,8 +99,26 @@ export class BanCommand extends BaseCommand { const ban = await ctx.guild.members.ban(user, { reason }).catch(err => new Error(err as string | undefined)); - if (ban instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true)] }); + if (ban instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), + true + ) + ] + }); + } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), + true + ) + ] + }); } } From d37ed0c3383a0ec27ac77cf0c25e5c102c8720ab Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:20:25 +0900 Subject: [PATCH 009/411] style(KickCommand): better line styling --- src/commands/moderation/KickCommand.ts | 49 +++++++++++++++++++++----- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index 8d0111bba..fdff923d8 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -31,24 +31,57 @@ export class KickCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("KICK_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.kick.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("KICK_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.kick.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("KICK_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.kick.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("KICK_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.kick.botNoPermission"), true) + ] + }); + } - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; + const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + ctx.options?.getUser("user")?.id ?? + ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); - if (!member) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); - if (!member.kickable) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.kick.userNoKickable"), true)] }); + if (!member) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } + if (!member.kickable) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.kick.userNoKickable"), true) + ] + }); + } - const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); + const reason = ctx.options?.getString("reason") ?? ( + ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") + ); const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name })) + createEmbed( + "error", + i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name }) + ) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ - text: i18n.__mf("commands.moderation.kick.kickedByString", { author: ctx.author.tag }), + text: i18n.__mf("commands.moderation.kick.kickedByString", { + author: ctx.author.tag + }), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) }) .setTimestamp(Date.now()) From 6a04229219ac3436e6210e6e1c7368dae8ef065a Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:24:22 +0900 Subject: [PATCH 010/411] style(MuteCommand): better line styling --- src/commands/moderation/MuteCommand.ts | 60 ++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 62f34c4c7..e38f28d08 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -31,20 +31,60 @@ export class MuteCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("MANAGE_ROLES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("MANAGE_ROLES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true) + ] + }); + } - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; + const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + ctx.options?.getUser("user")?.id ?? + ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); - if (!member) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); - if (ctx.guild.ownerId === member.id) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.cantMuteOwner"))] }); + if (!member) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } + if (ctx.guild.ownerId === member.id) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.mute.cantMuteOwner")) + ] + }); + } const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); - if (!muteRole) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.unableToCreateMuteRole"))] }); - if (member.roles.cache.has(muteRole.id)) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.alreadyMuted"))] }); + if (!muteRole) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.mute.unableToCreateMuteRole")) + ] + }); + } + if (member.roles.cache.has(muteRole.id)) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.mute.alreadyMuted")) + ] + }); + } - const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); + const reason = ctx.options?.getString("reason") ?? ( + ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") + ); const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ @@ -53,7 +93,9 @@ export class MuteCommand extends BaseCommand { .setColor("LIGHT_GREY") .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ - text: i18n.__mf("commands.moderation.mute.mutedByString", { author: ctx.author.tag }), + text: i18n.__mf("commands.moderation.mute.mutedByString", { + author: ctx.author.tag + }), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) }) .setTimestamp(Date.now()) From 87fdbf7479582adb7680d963f53b6424f1e62bbb Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:27:09 +0900 Subject: [PATCH 011/411] style(PurgeCommand): better line styling --- src/commands/moderation/PurgeCommand.ts | 38 ++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index a3365d531..3a2f92413 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -24,15 +24,45 @@ export class PurgeCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("MANAGE_MESSAGES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("MANAGE_MESSAGES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true) + ] + }); + } const amount = Number(ctx.options?.getString("amount") ?? ctx.args.shift()); - if (isNaN(amount)) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.purge.invalidAmount"))] }); + if (isNaN(amount)) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.purge.invalidAmount")) + ] + }); + } const purge = await (ctx.channel as TextChannel).bulkDelete(amount + 1, true) .catch(err => new Error(err as string | undefined)); - if (purge instanceof Error) return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.moderation.purge.purgeFail", { message: purge.message }), true)] }); + if (purge instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.moderation.purge.purgeFail", { + message: purge.message + }), + true + ) + ] + }); + } return ctx.reply({ embeds: [createEmbed("success", `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}`)] }); } From 865893a63659b8623570cf30944a501ffdc8b6e3 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:30:47 +0900 Subject: [PATCH 012/411] style(UnBanCommand): better line styling --- src/commands/moderation/UnBanCommand.ts | 59 ++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index d9b324acc..cd464e423 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -30,19 +30,64 @@ export class UnBanCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("BAN_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("BAN_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true) + ] + }); + } - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getString("memberid"); + const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + ctx.options?.getUser("user")?.id ?? + ctx.options?.getString("memberid"); const user = await this.client.users.fetch(memberId!, { force: false }).catch(() => undefined); const resolved = ctx.guild.bans.resolve(user?.id ?? ""); - if (!user) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); - if (!resolved) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban"))] }); + if (!user) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } + if (!resolved) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban")) + ] + }); + } - const unban = await ctx.guild.bans.remove(user.id, ctx.options?.getString("reason") ?? (ctx.args.length ? ctx.args.join(" ") : i18n.__("commands.moderation.common.noReasonString"))) + const unban = await ctx.guild.bans.remove( + user.id, + ctx.options?.getString("reason") ?? ( + ctx.args.length + ? ctx.args.join(" ") + : i18n.__("commands.moderation.common.noReasonString") + ) + ) .catch(err => new Error(err as string | undefined)); - if (unban instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.unban.unbanFail", { message: unban.message }), true)] }); + if (unban instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.unban.unbanFail", { + message: unban.message + }), + true + ) + ] + }); + } return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: user.tag }), true)] }); } From 94f0020fe51eb211b94d848103a3dd45f793a3f6 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:39:59 +0900 Subject: [PATCH 013/411] style(UnMuteCommand): better line styling --- src/commands/moderation/UnMuteCommand.ts | 84 ++++++++++++++++++++---- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index 4daf97421..20e263fbb 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -31,24 +31,63 @@ export class UnMuteCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("MANAGE_ROLES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] }); - if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] }); + if (!ctx.member?.permissions.has("MANAGE_ROLES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true) + ] + }); + } + if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true) + ] + }); + } - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; + const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + ctx.options?.getUser("user")?.id ?? + ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); - if (!member) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); + if (!member) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); - if (!muteRole) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.unableToCreateMuteRole"))] }); - if (!member.roles.cache.has(muteRole.id)) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.noMuted"))] }); + if (!muteRole) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.unmute.unableToCreateMuteRole")) + ] + }); + } + if (!member.roles.cache.has(muteRole.id)) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.unmute.noMuted")) + ] + }); + } - const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); + const reason = ctx.options?.getString("reason") ?? ( + ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") + ); const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ embeds: [ - createEmbed("info", i18n.__mf("commands.moderation.unmute.userUnmuted", { guildName: ctx.guild.name })) + createEmbed( + "info", + i18n.__mf("commands.moderation.unmute.userUnmuted", { + guildName: ctx.guild.name + }) + ) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), @@ -59,9 +98,32 @@ export class UnMuteCommand extends BaseCommand { }); } - const unmute = await member.roles.remove(muteRole, reason).catch(err => new Error(err as string | undefined)); - if (unmute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.unmute.unmuteFail", { message: unmute.message }), true)] }); + const unmute = await member.roles.remove(muteRole, reason) + .catch(err => new Error(err as string | undefined)); + if (unmute instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.unmute.unmuteFail", { + message: unmute.message + }), + true + ) + ] + }); + } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unmute.unmuteSuccess", { user: member.user.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.unmute.unmuteSuccess", { + user: member.user.tag + }), + true + ) + ] + }); } } From fcd709dc00f4cfc45b300dd2ade42b9ab9a75830 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:49:16 +0900 Subject: [PATCH 014/411] style(WarnCommand): better line styling --- src/commands/moderation/WarnCommand.ts | 49 ++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 8da6c2f68..91a45a3b7 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -30,16 +30,43 @@ export class WarnCommand extends BaseCommand { } public async execute(ctx: CommandContext): Promise { - if (!ctx.member?.permissions.has("MANAGE_GUILD")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true)] }); + if (!ctx.member?.permissions.has("MANAGE_GUILD")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true) + ] + }); + } - const member = ctx.guild?.members.resolve(ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "")?.user ?? ctx.options?.getUser("member", true); - if (!member) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); + const member = ctx.guild?.members.resolve( + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "" + )?.user ?? ctx.options?.getUser("member", true); + if (!member) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) + ] + }); + } const dm = await member.createDM().catch(() => undefined); - if (!dm) await ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.warn.noDM"))] }); + if (!dm) { + await ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.moderation.warn.noDM")) + ] + }); + } - const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); - const embed = createEmbed("warn", i18n.__mf("commands.moderation.warn.userWarned", { guildName: ctx.guild!.name })) + const reason = ctx.options?.getString("reason") ?? ( + ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") + ); + const embed = createEmbed( + "warn", + i18n.__mf("commands.moderation.warn.userWarned", { + guildName: ctx.guild!.name + }) + ) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__("commands.moderation.warn.warnedByString"), @@ -48,6 +75,14 @@ export class WarnCommand extends BaseCommand { .setTimestamp(Date.now()); await dm?.send({ embeds: [embed] }); - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), + true + ) + ] + }); } } From 91cb494dd019e69f353e4bf2e8eee9c1be3c9c4c Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:53:56 +0900 Subject: [PATCH 015/411] style(LyricsCommand): better line styling --- src/commands/music/LyricsCommand.ts | 43 +++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 99e645d4a..6d7cbb9c9 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -30,8 +30,18 @@ export class LyricsCommand extends BaseCommand { public execute(ctx: CommandContext): Promise | undefined { // eslint-disable-next-line no-nested-ternary - const query = ctx.args.length >= 1 ? ctx.args.join(" ") : ctx.options?.getString("query") ? ctx.options.getString("query") : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title; - if (!query) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] }); + const query = ctx.args.length >= 1 + ? ctx.args.join(" ") + : ctx.options?.getString("query") + ? ctx.options.getString("query") + : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title; + if (!query) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true) + ] + }); + } this.getLyrics(ctx, query); } @@ -41,17 +51,40 @@ export class LyricsCommand extends BaseCommand { this.client.request.get(url).json>() .then(async data => { if ((data as { error: boolean }).error) { - return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.lyrics.apiError", { song: `\`${song}\``, message: `\`${(data as { message?: string }).message!}\`` }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.music.lyrics.apiError", { + song: `\`${song}\``, + message: `\`${(data as { message?: string }).message!}\`` + }), + true + ) + ] + }); } const albumArt = data.album_art ?? "https://api.tiramitzu.me/assets/images/icon.png"; const pages: string[] = chunk(data.lyrics!, 2048); - const embed = createEmbed("info", pages[0]).setAuthor({ name: data.song && data.artist ? `${data.song} - ${data.artist}` : song.toUpperCase() }).setThumbnail(albumArt); + const embed = createEmbed("info", pages[0]) + .setAuthor({ + name: data.song && data.artist + ? `${data.song} - ${data.artist}` + : song.toUpperCase() + }) + .setThumbnail(albumArt); const msg = await ctx.reply({ embeds: [embed] }); return new ButtonPagination(msg, { author: ctx.author.id, - edit: (i, e, p) => e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length }) }), + edit: (i, e, p) => e.setDescription(p) + .setFooter({ + text: i18n.__mf("reusable.pageFooter", { + actual: i + 1, + total: pages.length + }) + }), embed, pages }).start(); From 63b98513301e170bc07eb46d9b8f388e4c81b2be Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:56:37 +0900 Subject: [PATCH 016/411] style(NowPlayingCommand): better line styling --- src/commands/music/NowPlayingCommand.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index b9b3a1ea3..6ed278c1a 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -28,7 +28,18 @@ export class NowPlayingCommand extends BaseCommand { resource: AudioResource | undefined; }) | undefined)?.resource?.metadata as IQueueSong | undefined)?.song; - return createEmbed("info", `${ctx.guild?.queue?.playing ? "▶" : "⏸"} **|** ${song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue")}`).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); + return createEmbed( + "info", + `${ + ctx.guild?.queue?.playing + ? "▶" + : "⏸" + } **|** ${ + song + ? `**[${song.title}](${song.url})**` + : i18n.__("commands.music.nowplaying.emptyQueue") + }` + ).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); } const buttons = new MessageActionRow() @@ -67,7 +78,9 @@ export class NowPlayingCommand extends BaseCommand { switch (i.customId) { case "TOGGLE_STATE_BUTTON": { - cmdName = ctx.guild?.queue?.playing ? "pause" : "resume"; + cmdName = ctx.guild?.queue?.playing + ? "pause" + : "resume"; break; } From 35931927c550ee19c3200f75f48a4518056d9c22 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 21:57:12 +0900 Subject: [PATCH 017/411] style(PauseCommand): better line styling --- src/commands/music/PauseCommand.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index 79c5735e9..4d8787942 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -22,10 +22,20 @@ export class PauseCommand extends BaseCommand { if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; - if (!ctx.guild?.queue?.playing) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.music.pause.alreadyPause"))] }); + if (!ctx.guild?.queue?.playing) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.music.pause.alreadyPause")) + ] + }); + } ctx.guild.queue.playing = false; - return ctx.reply({ embeds: [createEmbed("success", `⏸ **|** ${i18n.__("commands.music.pause.pauseMessage")}`)] }); + return ctx.reply({ + embeds: [ + createEmbed("success", `⏸ **|** ${i18n.__("commands.music.pause.pauseMessage")}`) + ] + }); } } From 7beffd6040df0c65fefe635480f50fff87b1e425 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:01:11 +0900 Subject: [PATCH 018/411] style(PlayCommand): better line styling --- src/commands/music/PlayCommand.ts | 53 +++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index b294ee6a7..3cc6b4f97 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -38,19 +38,36 @@ export class PlayCommand extends BaseCommand { if (ctx.additionalArgs.get("fromSearch")) { const tracks = ctx.additionalArgs.get("values"); const toQueue: ISong[] = []; + for (const track of tracks) { - const song = await searchTrack(this.client, track as string).catch(() => null); + const song = await searchTrack(this.client, track as string) + .catch(() => null); if (!song) continue; + toQueue.push(song.items[0]); } + return handleVideos(this.client, ctx, toQueue, voiceChannel); } // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const query = (ctx.args.join(" ") || ctx.options?.getString("query")) ?? (ctx.additionalArgs.get("values") ? ctx.additionalArgs.get("values")[0] : undefined) as string | undefined; + const query = ( + ctx.args.join(" ") || ctx.options?.getString("query") + ) ?? ( + ctx.additionalArgs.get("values") + ? (ctx.additionalArgs.get("values") as (string | undefined)[])[0] + : undefined); if (!query) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { prefix: `${this.client.config.mainPrefix}help`, name: `${this.meta.name}` }))] + embeds: [ + createEmbed( + "warn", + i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }) + ) + ] }); } @@ -58,13 +75,37 @@ export class PlayCommand extends BaseCommand { const url = query.replace(/<(.+)>/g, "$1"); if (ctx.guild?.queue && voiceChannel.id !== ctx.guild.queue.connection?.joinConfig.channelId) { - return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.music.play.alreadyPlaying", { voiceChannel: ctx.guild.channels.cache.get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? "#unknown-channel" }))] }); + return ctx.reply({ + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.music.play.alreadyPlaying", { + voiceChannel: ctx.guild.channels.cache + .get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? + "#unknown-channel" + }) + ) + ] + }); } const queryCheck = checkQuery(url); const songs = await searchTrack(this.client, url).catch(() => undefined); - if (!songs || songs.items.length <= 0) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.play.noSongData"), true)] }); + if (!songs || songs.items.length <= 0) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.play.noSongData"), true) + ] + }); + } - return handleVideos(this.client, ctx, queryCheck.type === "playlist" ? songs.items : [songs.items[0]], voiceChannel); + return handleVideos( + this.client, + ctx, + queryCheck.type === "playlist" + ? songs.items + : [songs.items[0]], + voiceChannel + ); } } From 27ded33b7199b7cf8c3316d8750712c36ba324f2 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:03:18 +0900 Subject: [PATCH 019/411] style(QueueCommand): better line styling --- src/commands/music/QueueCommand.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index 310dcadf4..f4a8ef140 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -26,7 +26,9 @@ export class QueueCommand extends BaseCommand { const np = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); - const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full : full.filter(val => val.index >= np.index); + const songs = ctx.guild?.queue?.loopMode === "QUEUE" + ? full + : full.filter(val => val.index >= np.index); const pages = await Promise.all(chunk([...songs.values()], 10).map(async (s, n) => { const names = await Promise.all(s.map((song, i) => { const npKey = np.key; @@ -42,7 +44,13 @@ export class QueueCommand extends BaseCommand { return new ButtonPagination(msg, { author: ctx.author.id, - edit: (i, e, p) => e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length }) }), + edit: (i, e, p) => e.setDescription(p) + .setFooter({ + text: i18n.__mf("reusable.pageFooter", { + actual: i + 1, + total: pages.length + }) + }), embed, pages }).start(); From 81f4fb7abb4bec2ffa549c01392287b6b5c053b7 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:06:08 +0900 Subject: [PATCH 020/411] style(RemoveCommand): better line styling --- src/commands/music/RemoveCommand.ts | 45 ++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index bdcffb52f..ee56e1e3e 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -36,13 +36,24 @@ export class RemoveCommand extends BaseCommand { const djRole = await this.client.utils.fetchDJRole(ctx.guild!); if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { - void ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.remove.noPermission"), true)] }); + void ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.remove.noPermission"), true) + ] + }); return; } - const positions = (ctx.options?.getString("positions") ?? ctx.args.join(" ")).split(/[, ]/).filter(Boolean); + const positions = ( + ctx.options?.getString("positions") ?? + ctx.args.join(" ") + ).split(/[, ]/).filter(Boolean); if (!positions.length) { - void ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.remove.noPositions"), true)] }); + void ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.remove.noPositions"), true) + ] + }); return; } @@ -58,21 +69,41 @@ export class RemoveCommand extends BaseCommand { this.client.commands.get("skip")?.execute(ctx); } - const opening = `${i18n.__mf("commands.music.remove.songsRemoved", { removed: songs.length })}${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}`; + const opening = `${i18n.__mf("commands.music.remove.songsRemoved", { + removed: songs.length + })}${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}`; const pages = await Promise.all(chunk(songs, 10).map(async (v, i) => { - const texts = await Promise.all(v.map((song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown(parseHTMLElements(song.song.title))}`)); + const texts = await Promise.all(v.map( + (song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown( + parseHTMLElements(song.song.title) + )}` + )); return texts.join("\n"); })); const getText = (page: string): string => `\`\`\`\n${opening}\n\n${page}\`\`\``; - const embed = createEmbed("info", getText(pages[0])).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: 1, total: pages.length })}` }); + const embed = createEmbed( + "info", + getText(pages[0]) + ).setFooter({ + text: `• ${i18n.__mf("reusable.pageFooter", { + actual: 1, + total: pages.length + })}` + }); const msg = await ctx.reply({ embeds: [embed] }).catch(() => undefined); if (!msg) return; void new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => { - e.setDescription(getText(p)).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); + e.setDescription(getText(p)) + .setFooter({ + text: `• ${i18n.__mf("reusable.pageFooter", { + actual: i + 1, + total: pages.length + })}` + }); }, embed, pages From affc7f9c3c3071796f3f88cb3d13f72ba3246e1b Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:10:44 +0900 Subject: [PATCH 021/411] style(RepeatCommand): better line styling --- src/commands/music/RepeatCommand.ts | 34 ++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 950ecbe8a..4e15dff83 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -56,12 +56,40 @@ export class RepeatCommand extends BaseCommand { }; const selection = ctx.options?.getSubcommand() || ctx.args[0] - ? Object.keys(mode).find(key => mode[key as LoopMode].aliases.includes(ctx.args[0] ?? ctx.options!.getSubcommand())) + ? Object.keys(mode).find( + key => mode[key as LoopMode].aliases.includes( + ctx.args[0] ?? ctx.options!.getSubcommand() + ) + ) : undefined; - if (!selection) return ctx.reply({ embeds: [createEmbed("info", `${mode[ctx.guild!.queue!.loopMode].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`)] }); + if (!selection) { + return ctx.reply({ + embeds: [ + createEmbed( + "info", + `${mode[ + ctx.guild!.queue!.loopMode + ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + })}` + ) + ] + }); + } ctx.guild!.queue!.loopMode = selection as LoopMode; - return ctx.reply({ embeds: [createEmbed("success", `${mode[ctx.guild!.queue!.loopMode].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + `${mode[ + ctx.guild!.queue!.loopMode + ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + })}` + ) + ] + }); } } From 102cdc7a401bd6bd49b98dd93de138c960647b1c Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:11:22 +0900 Subject: [PATCH 022/411] style(ResumeCommand): better line styling --- src/commands/music/ResumeCommand.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index 1fb3c41db..a7988f419 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -21,9 +21,19 @@ export class ResumeCommand extends BaseCommand { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; - if (ctx.guild?.queue?.playing) return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.music.resume.alreadyResume"))] }); + if (ctx.guild?.queue?.playing) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("commands.music.resume.alreadyResume")) + ] + }); + } ctx.guild!.queue!.playing = true; - return ctx.reply({ embeds: [createEmbed("success", `▶ **|** ${i18n.__("commands.music.resume.resumeMessage")}`)] }); + return ctx.reply({ + embeds: [ + createEmbed("success", `▶ **|** ${i18n.__("commands.music.resume.resumeMessage")}`) + ] + }); } } From ffdcddd718e0cac110ce122494083817ad0c87cc Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:18:02 +0900 Subject: [PATCH 023/411] style(SearchCommand): better line styling --- src/commands/music/SearchCommand.ts | 93 ++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 16 deletions(-) diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index eb6001875..cd758dba9 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -6,7 +6,15 @@ import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; import { ISong } from "../../typings"; import i18n from "../../config"; -import { CommandInteractionOptionResolver, Message, MessageActionRow, MessageSelectOptionData, MessageSelectMenu, SelectMenuInteraction, Util } from "discord.js"; +import { + CommandInteractionOptionResolver, + Message, + MessageActionRow, + MessageSelectOptionData, + MessageSelectMenu, + SelectMenuInteraction, + Util +} from "discord.js"; export class SearchCommand extends BaseCommand { public constructor(client: BaseCommand["client"]) { @@ -54,20 +62,35 @@ export class SearchCommand extends BaseCommand { const values = ctx.additionalArgs.get("values"); if (values && ctx.isSelectMenu()) { if (!ctx.deferred) await ctx.deferReply(); + const newCtx = new CommandContext(ctx.context, []); + newCtx.additionalArgs.set("values", values); newCtx.additionalArgs.set("fromSearch", true); this.client.commands.get("play")!.execute(newCtx); - const msg = await ctx.channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id).catch(() => undefined); + + const msg = await ctx.channel!.messages + .fetch((ctx.context as SelectMenuInteraction).message.id) + .catch(() => undefined); if (msg !== undefined) { const selection = msg.components[0].components.find(x => x.type === "SELECT_MENU"); selection!.setDisabled(true); await msg.edit({ components: [new MessageActionRow().addComponents(selection!)] }); } + return; } - const source = ctx.options?.getString("source") ?? (["youtube", "soundcloud"].includes(ctx.args.slice(-1)[0]?.toLowerCase()) ? ctx.args.pop()! : "youtube"); - const query = (ctx.args.join(" ") || ctx.options?.getString("query")) ?? (ctx.options as CommandInteractionOptionResolver<"present"> | null)?.getMessage("message")?.content; + + const source = ctx.options?.getString("source") ?? ( + ["youtube", "soundcloud"].includes(ctx.args.slice(-1)[0]?.toLowerCase()) + ? ctx.args.pop()! + : "youtube" + ); + const query = ( + ctx.args.join(" ") || ctx.options?.getString("query") + ) ?? ( + ctx.options as CommandInteractionOptionResolver<"present"> | null + )?.getMessage("message")?.content; if (!query) { return ctx.send({ @@ -81,8 +104,20 @@ export class SearchCommand extends BaseCommand { return this.client.commands.get("play")!.execute(newCtx); } - const tracks = await searchTrack(this.client, query, source as "soundcloud" | "youtube").then(x => ({ items: x.items.slice(0, 10), type: x.type })).catch(() => undefined); - if (!tracks || tracks.items.length <= 0) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noTracks"), true)] }); + const tracks = await searchTrack( + this.client, + query, + source as "soundcloud" | "youtube" + ).then( + x => ({ items: x.items.slice(0, 10), type: x.type }) + ).catch(() => undefined); + if (!tracks || tracks.items.length <= 0) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.search.noTracks"), true) + ] + }); + } if (this.client.config.musicSelectionType === "selectmenu") { return ctx.send({ content: i18n.__("commands.music.search.interactionContent"), @@ -92,7 +127,9 @@ export class SearchCommand extends BaseCommand { new MessageSelectMenu() .setMinValues(1) .setMaxValues(10) - .setCustomId(Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64")) + .setCustomId( + Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64") + ) .addOptions(this.generateSelectMenu(tracks.items)) .setPlaceholder(i18n.__("commands.music.search.interactionPlaceholder")) ) @@ -102,7 +139,15 @@ export class SearchCommand extends BaseCommand { const msg = await ctx.send({ embeds: [ - createEmbed("info", `${i18n.__mf("commands.music.search.queueEmbed", { separator: "`,`", example: "`1, 2, 3`" })}\`\`\`\n${tracks.items.map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`).join("\n")}\`\`\``) + createEmbed( + "info", + `${i18n.__mf("commands.music.search.queueEmbed", { + separator: "`,`", + example: "`1, 2, 3`" + })}\`\`\`\n${tracks.items.map( + (x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}` + ).join("\n")}\`\`\`` + ) .setAuthor({ name: i18n.__("commands.music.search.trackSelectionMessage"), iconURL: this.client.user?.displayAvatarURL() }) .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) }) ] @@ -110,28 +155,44 @@ export class SearchCommand extends BaseCommand { const respond = await msg.channel.awaitMessages({ errors: ["time"], filter: m => { - const nums = m.content.split(/, /).filter(x => Number(x) > 0 && Number(x) <= tracks.items.length); + const nums = m.content.split(/, /) + .filter(x => Number(x) > 0 && Number(x) <= tracks.items.length); - return m.author.id === ctx.author.id && (["c", "cancel"].includes(m.content.toLowerCase()) || nums.length >= 1); + return m.author.id === ctx.author.id && ( + ["c", "cancel"].includes(m.content.toLowerCase()) || nums.length >= 1 + ); }, max: 1 }).catch(() => undefined); if (!respond) { - msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); - return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noSelection"), true)] }); + msg.delete() + .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.search.noSelection"), true) + ] + }); } if (["c", "cancel"].includes(respond.first()?.content.toLowerCase() ?? "")) { - msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); - return ctx.reply({ embeds: [createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true)] }); + msg.delete() + .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + return ctx.reply({ + embeds: [ + createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true) + ] + }); } - msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); - respond.first()?.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_NUM_DELETE_MSG_ERR:", err)); + msg.delete() + .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + respond.first()?.delete() + .catch(err => this.client.logger.error("SEARCH_SELECTION_NUM_DELETE_MSG_ERR:", err)); const songs = respond.first()!.content .split(/, /).filter(x => Number(x) > 0 && Number(x) <= tracks.items.length) .sort((a, b) => Number(a) - Number(b)); const newCtx = new CommandContext(ctx.context, []); + newCtx.additionalArgs.set("values", [await Promise.all(songs.map(x => tracks.items[Number(x) - 1].url))]); newCtx.additionalArgs.set("fromSearch", true); this.client.commands.get("play")!.execute(newCtx); From 875421f839d7a9794e62841f4648583c68f9f2a4 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:19:37 +0900 Subject: [PATCH 024/411] style(ShuffleCommand): better line styling --- src/commands/music/ShuffleCommand.ts | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index e82c51144..caeb73dd5 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -39,13 +39,35 @@ export class ShuffleCommand extends BaseCommand { if (!sameVC(ctx)) return; const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; if (!newState) { - void ctx.reply({ embeds: [createEmbed("info", `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` })}`)] }); + void ctx.reply({ + embeds: [ + createEmbed( + "info", + `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { + state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` + })}` + ) + ] + }); return; } ctx.guild!.queue!.shuffle = newState === "enable"; const isShuffle = ctx.guild?.queue?.shuffle; - void ctx.reply({ embeds: [createEmbed("success", `${isShuffle ? "🔀" : "▶"} **|** ${i18n.__mf("commands.music.shuffle.newState", { state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` })}`)] }); + void ctx.reply({ + embeds: [ + createEmbed( + "success", + `${ + isShuffle + ? "🔀" + : "▶"} **|** ${ + i18n.__mf("commands.music.shuffle.newState", { + state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` + })}` + ) + ] + }); } } From 857a4b15402a70d7557f2ee98cd6028840646fbf Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:22:10 +0900 Subject: [PATCH 025/411] style(SkipCommand): better line styling --- src/commands/music/SkipCommand.ts | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 7f9709c49..d0f6dc4df 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -32,7 +32,9 @@ export class SkipCommand extends BaseCommand { const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; function ableToSkip(member: GuildMember): boolean { - return member.roles.cache.has(djRole?.id ?? "") || member.permissions.has("MANAGE_GUILD") || song.requester.id === member.id; + return member.roles.cache.has(djRole?.id ?? "") || + member.permissions.has("MANAGE_GUILD") || + song.requester.id === member.id; } if (!ableToSkip(ctx.member!)) { @@ -40,11 +42,16 @@ export class SkipCommand extends BaseCommand { if (ctx.guild?.queue?.skipVoters.includes(ctx.author.id)) { this.manager.add(() => { - ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter(x => x !== ctx.author.id); + ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter( + x => x !== ctx.author.id + ); return undefined; }); - await ctx.reply(i18n.__mf("commands.music.skip.voteResultMessage", { length: ctx.guild.queue.skipVoters.length, required })); + await ctx.reply(i18n.__mf("commands.music.skip.voteResultMessage", { + length: ctx.guild.queue.skipVoters.length, + required + })); return; } @@ -63,6 +70,16 @@ export class SkipCommand extends BaseCommand { if (!ctx.guild?.queue?.playing) ctx.guild!.queue!.playing = true; ctx.guild?.queue?.player?.stop(true); - void ctx.reply({ embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skip.skipMessage", { song: `[${song.song.title}](${song.song.url}})` })}`).setThumbnail(song.song.thumbnail)] }).catch(e => this.client.logger.error("SKIP_CMD_ERR:", e)); + void ctx.reply({ + embeds: [ + createEmbed( + "success", + `⏭ **|** ${ + i18n.__mf("commands.music.skip.skipMessage", { + song: `[${song.song.title}](${song.song.url}})` + })}` + ).setThumbnail(song.song.thumbnail) + ] + }).catch(e => this.client.logger.error("SKIP_CMD_ERR:", e)); } } From 78aa1ffab2aa265967f60d76161aff810e6fe0d2 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:27:06 +0900 Subject: [PATCH 026/411] style(SkipToCommand): better line styling --- src/commands/music/SkipToCommand.ts | 55 +++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 94c9ded0d..b962d5d07 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -51,13 +51,41 @@ export class SkipToCommand extends BaseCommand { if (!sameVC(ctx)) return; const djRole = await this.client.utils.fetchDJRole(ctx.guild!); - if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noPermission"), true)] }); + if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.skipTo.noPermission"), true) + ] + }); + } - const targetType = (ctx.args[0] as string | undefined) ?? ctx.options?.getSubcommand() ?? ctx.options?.getNumber("position"); - if (!targetType) return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { prefix: `${this.client.config.mainPrefix}help`, name: `${this.meta.name}` }))] }); + const targetType = (ctx.args[0] as string | undefined) ?? + ctx.options?.getSubcommand() ?? + ctx.options?.getNumber("position"); + if (!targetType) { + return ctx.reply({ + embeds: [ + createEmbed( + "warn", + i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }) + ) + ] + }); + } const songs = [...ctx.guild!.queue!.songs.sortByIndex().values()]; - if (!["first", "last"].includes(String(targetType).toLowerCase()) && (!isNaN(Number(targetType)) && !songs[Number(targetType) - 1])) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noSongPosition"), true)] }); + if (!["first", "last"].includes(String(targetType).toLowerCase()) && ( + !isNaN(Number(targetType)) && !songs[Number(targetType) - 1] + )) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.skipTo.noSongPosition"), true) + ] + }); + } let song: IQueueSong; if (String(targetType).toLowerCase() === "first") { @@ -68,10 +96,25 @@ export class SkipToCommand extends BaseCommand { song = songs[Number(targetType) - 1]; } - if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).key) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true)] }); + if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).key) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true) + ] + }); + } void play(this.client, ctx.guild!, song.key); - return ctx.reply({ embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { + song: `[${song.song.title}](${song.song.url})` + })}` + ).setThumbnail(song.song.thumbnail) + ] + }); } } From d562eacb7ccda4bcc71c1f7308c3fb53d6c07d0f Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:32:12 +0900 Subject: [PATCH 027/411] style(StayInQueueCommand): better line styling --- src/commands/music/StayInQueueCommand.ts | 33 +++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 0deb988e6..618d98994 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -39,14 +39,41 @@ export class StayInQueueCommand extends BaseCommand { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; if (!sameVC(ctx)) return; - if (!this.client.config.is247Allowed) return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.stayInQueue.247Disabled"), true)] }); + if (!this.client.config.is247Allowed) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.stayInQueue.247Disabled"), true) + ] + }); + } const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; - if (!newState) return ctx.reply({ embeds: [createEmbed("info", i18n.__mf("commands.music.stayInQueue.actualState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` }))] }); + if (!newState) { + return ctx.reply({ + embeds: [ + createEmbed( + "info", + i18n.__mf("commands.music.stayInQueue.actualState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + }) + ) + ] + }); + } ctx.guild!.queue!.stayInVC = newState === "enable"; - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.music.stayInQueue.newState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.music.stayInQueue.newState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + }), + true + ) + ] + }); } } From 1c84b1c776bbbdae3d1c33776fbeb6c1b1be0070 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:33:03 +0900 Subject: [PATCH 028/411] style(StopCommand): better line styling --- src/commands/music/StopCommand.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/music/StopCommand.ts b/src/commands/music/StopCommand.ts index 9ed3d818b..e95afa88c 100644 --- a/src/commands/music/StopCommand.ts +++ b/src/commands/music/StopCommand.ts @@ -25,6 +25,10 @@ export class StopCommand extends BaseCommand { ctx.guild?.queue?.stop(); ctx.guild!.queue!.lastMusicMsg = null; - ctx.reply({ embeds: [createEmbed("success", `⏹ **|** ${i18n.__("commands.music.stop.stoppedMessage")}`)] }).catch(e => this.client.logger.error("STOP_CMD_ERR:", e)); + ctx.reply({ + embeds: [ + createEmbed("success", `⏹ **|** ${i18n.__("commands.music.stop.stoppedMessage")}`) + ] + }).catch(e => this.client.logger.error("STOP_CMD_ERR:", e)); } } From ea7b532029db8023909335a1d408274c7d341116 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:34:58 +0900 Subject: [PATCH 029/411] style(VolumeCommand): better line styling --- src/commands/music/VolumeCommand.ts | 41 ++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index aa5e1fbe8..aed946bc7 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -34,11 +34,44 @@ export class VolumeCommand extends BaseCommand { const volume = Number(ctx.args[0] ?? ctx.options?.getNumber("volume", false)); const resVolume = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.volume!; - if (isNaN(volume)) return ctx.reply({ embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { volume: `\`${resVolume.volume * 100}\`` })}`).setFooter({ text: i18n.__("commands.music.volume.changeVolume") })] }); - if (volume <= 0) return ctx.reply({ embeds: [createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { volume: `\`${volume}\`` }))] }); - if (volume > 100) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { maxVol: "`100`" }), true)] }); + if (isNaN(volume)) { + return ctx.reply({ + embeds: [ + createEmbed( + "info", + `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { + volume: `\`${resVolume.volume * 100}\`` + })}` + ).setFooter({ text: i18n.__("commands.music.volume.changeVolume") }) + ] + }); + } + if (volume <= 0) { + return ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { + volume: `\`${volume}\`` + })) + ] + }); + } + if (volume > 100) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { + maxVol: "`100`" + }), true) + ] + }); + } resVolume.setVolume(volume / 100); - return ctx.reply({ embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { volume })}`)] }); + return ctx.reply({ + embeds: [ + createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { + volume + })}`) + ] + }); } } From 0fb44f2d9b852aefebe099666f0bd9482c10ba8b Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:44:07 +0900 Subject: [PATCH 030/411] style(ChannelUpdateEvent): better line styling --- src/events/ChannelUpdateEvent.ts | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index d3b8238a1..6081b7c40 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -10,22 +10,43 @@ export class ChannelUpdateEvent extends BaseEvent { } public async execute(oldChannel: GuildChannel, newChannel: GuildChannel): Promise { - if (!newChannel.guild.queue || newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE")) return; + if (!newChannel.guild.queue || + newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || + (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || + (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE")) return; if ((oldChannel as VoiceChannel).rtcRegion !== (newChannel as VoiceChannel).rtcRegion) { const queue = newChannel.guild.queue; - const msg = await queue.textChannel.send({ embeds: [createEmbed("info", i18n.__("events.channelUpdate.reconfigureConnection"))] }); + const msg = await queue.textChannel.send({ + embeds: [ + createEmbed("info", i18n.__("events.channelUpdate.reconfigureConnection")) + ] + }); queue.connection?.configureNetworking(); entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000) .then(() => { - void msg.edit({ embeds: [createEmbed("success", i18n.__("events.channelUpdate.connectionReconfigured"), true)] }); + void msg.edit({ + embeds: [ + createEmbed( + "success", + i18n.__("events.channelUpdate.connectionReconfigured"), + true + ) + ] + }); }) .catch(() => { queue.destroy(); - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newChannel.guild.name} voice channel, the queue was deleted.`); - void msg.edit({ embeds: [createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true)] }); + this.client.logger.info( + `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newChannel.guild.name} voice channel, the queue was deleted.` + ); + void msg.edit({ + embeds: [ + createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true) + ] + }); }); } } From b0105e19113f970ee4badb14cfa901a1dc5dcbd5 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:47:11 +0900 Subject: [PATCH 031/411] style(InteractionCreateEvent): better line styling --- src/events/InteractionCreateEvent.ts | 42 +++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index 8aa6c1e09..cee3f2764 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -11,56 +11,84 @@ export class InteractionCreateEvent extends BaseEvent { public async execute(interaction: Interaction): Promise { if (!interaction.inGuild() || !this.client.commands.isReady) return; + if (interaction.isButton()) { const val = this.client.utils.decode(interaction.customId); const user = val.split("_")[0] ?? ""; const cmd = val.split("_")[1] ?? ""; + if (cmd === "delete-msg") { - if (interaction.user.id !== user && !new Permissions(interaction.member.permissions as BitFieldResolvable | undefined).has("MANAGE_MESSAGES")) { + if (interaction.user.id !== user && + !new Permissions( + interaction.member.permissions as BitFieldResolvable | undefined + ).has("MANAGE_MESSAGES")) { void interaction.reply({ ephemeral: true, embeds: [ - createEmbed("error", i18n.__mf("events.createInteraction.message1", { user: user.toString() }), true) + createEmbed( + "error", + i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), + true + ) ] }); } else { - const msg = await interaction.channel?.messages.fetch(interaction.message.id).catch(() => null); + const msg = await interaction.channel?.messages.fetch(interaction.message.id) + .catch(() => null); if (msg?.deletable) { void msg.delete(); } } } } + const context = new CommandContext(interaction); if (interaction.isContextMenu()) { const data = interaction.options.getUser("user") ?? interaction.options.getMessage("message"); - const cmd = this.client.commands.find(x => (data as { type: string }).type === "MESSAGE" ? x.meta.contextChat === interaction.commandName : x.meta.contextUser === interaction.commandName); + const cmd = this.client.commands.find( + x => (data as { type: string }).type === "MESSAGE" + ? x.meta.contextChat === interaction.commandName + : x.meta.contextUser === interaction.commandName + ); if (cmd) { context.additionalArgs.set("options", data); void cmd.execute(context); } } + if (interaction.isCommand()) { - const cmd = this.client.commands.filter(x => x.meta.slash !== undefined).find(x => x.meta.slash!.name === interaction.commandName); + const cmd = this.client.commands.filter(x => x.meta.slash !== undefined) + .find(x => x.meta.slash!.name === interaction.commandName); if (cmd) { void cmd.execute(context); } } + if (interaction.isSelectMenu()) { const val = this.client.utils.decode(interaction.customId); const user = val.split("_")[0] ?? ""; const cmd = val.split("_")[1] ?? ""; const exec = (val.split("_")[2] ?? "yes") === "yes"; + if (interaction.user.id !== user) { void interaction.reply({ ephemeral: true, embeds: [ - createEmbed("error", i18n.__mf("events.createInteraction.message1", { user: user.toString() }), true) + createEmbed( + "error", + i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), + true + ) ] }); } if (cmd && user === interaction.user.id && exec) { - const command = this.client.commands.filter(x => x.meta.slash !== undefined).find(x => x.meta.name === cmd); + const command = this.client.commands.filter(x => x.meta.slash !== undefined) + .find(x => x.meta.name === cmd); if (command) { context.additionalArgs.set("values", interaction.values); void command.execute(context); From eeef60ffc999fb65a0b3d21463dd463df43d3c5a Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:48:07 +0900 Subject: [PATCH 032/411] style(MessageCreateEvent): better line styling --- src/events/MessageCreateEvent.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index baf34aa52..c20382305 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -9,10 +9,22 @@ export class MessageCreateEvent extends BaseEvent { } public execute(message: Message): Message | undefined { - if (message.author.bot || message.channel.type === "DM" || !this.client.commands.isReady) return message; + if (message.author.bot || + message.channel.type === "DM" || + !this.client.commands.isReady) return message; if (this.getUserFromMention(message.content)?.id === this.client.user?.id) { - message.reply({ embeds: [createEmbed("info", `👋 **|** ${i18n.__mf("events.createMessage", { author: message.author.toString(), prefix: `\`${this.client.config.mainPrefix}\`` })}`)] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); + message.reply({ + embeds: [ + createEmbed( + "info", + `👋 **|** ${i18n.__mf("events.createMessage", { + author: message.author.toString(), + prefix: `\`${this.client.config.mainPrefix}\`` + })}` + ) + ] + }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); } const pref = this.client.config.altPrefixes.concat(this.client.config.mainPrefix).find(p => { From 90e8718d7f6c14be9aef87f389f54f46d1445fa0 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:49:29 +0900 Subject: [PATCH 033/411] style(ReadyEvent): better line styling --- src/events/ReadyEvent.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/events/ReadyEvent.ts b/src/events/ReadyEvent.ts index 706846b21..63e7714ba 100644 --- a/src/events/ReadyEvent.ts +++ b/src/events/ReadyEvent.ts @@ -7,7 +7,10 @@ export class ReadyEvent extends BaseEvent { } public async execute(): Promise { - if (this.client.application?.owner) this.client.config.owners.push(this.client.application.owner.id); + if (this.client.application?.owner) { + this.client.config.owners.push(this.client.application.owner.id); + } + await this.client.spotify.renew(); await this.doPresence(); this.client.logger.info(this.formatString("{username} is ready to serve {users.size} users on {guilds.size} guilds in " + @@ -44,10 +47,16 @@ export class ReadyEvent extends BaseEvent { } private async setPresence(random: boolean): Promise { - const activityNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.activities.length) : 0; - const statusNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.status.length) : 0; + const activityNumber = random + ? Math.floor(Math.random() * this.client.config.presenceData.activities.length) + : 0; + const statusNumber = random + ? Math.floor(Math.random() * this.client.config.presenceData.status.length) + : 0; const activity = (await Promise.all( - this.client.config.presenceData.activities.map(async a => Object.assign(a, { name: await this.formatString(a.name) })) + this.client.config.presenceData.activities.map( + async a => Object.assign(a, { name: await this.formatString(a.name) }) + ) ))[activityNumber]; return this.client.user!.setPresence({ @@ -60,7 +69,9 @@ export class ReadyEvent extends BaseEvent { try { return await this.setPresence(false); } catch (e) { - if ((e as Error).message !== "Shards are still being spawned.") this.client.logger.error(String(e)); + if ((e as Error).message !== "Shards are still being spawned.") { + this.client.logger.error(String(e)); + } return undefined; } finally { setInterval(() => this.setPresence(true), this.client.config.presenceData.interval); From 22b757e340babef3d5888b63c1356fd2c4e5aef4 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:54:29 +0900 Subject: [PATCH 034/411] style(VoiceStateUpdateEvent): better line styling --- src/events/VoiceStateUpdateEvent.ts | 117 ++++++++++++++++++++++++---- 1 file changed, 102 insertions(+), 15 deletions(-) diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index a3fa1e346..937f17a43 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -32,8 +32,19 @@ export class VoiceStateUpdateEvent extends BaseEvent { queue.destroy(); if (!isIdle) { - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Disconnected from the voice channel at ${newState.guild.name}, the queue was deleted.`); - queue.textChannel.send({ embeds: [createEmbed("error", `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}`)] }) + this.client.logger.info( + `${this.client.shard + ? `[Shard #${this.client.shard.ids[0]}]` + : ""} Disconnected from the voice channel at ${newState.guild.name}, the queue was deleted.` + ); + queue.textChannel.send({ + embeds: [ + createEmbed( + "error", + `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}` + ) + ] + }) .catch(e => this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e)); } } @@ -44,34 +55,74 @@ export class VoiceStateUpdateEvent extends BaseEvent { if (!newVCMembers) return; queue.skipVoters = []; if (oldVC?.rtcRegion !== newVC?.rtcRegion) { - const msg = await queue.textChannel.send({ embeds: [createEmbed("info", i18n.__("events.voiceStateUpdate.reconfigureConnection"))] }); + const msg = await queue.textChannel.send({ + embeds: [ + createEmbed("info", i18n.__("events.voiceStateUpdate.reconfigureConnection")) + ] + }); queue.connection?.configureNetworking(); try { await entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000); - void msg.edit({ embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.connectionReconfigured"), true)] }); + void msg.edit({ + embeds: [ + createEmbed( + "success", + i18n.__("events.voiceStateUpdate.connectionReconfigured"), + true + ) + ] + }); } catch { queue.destroy(); - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newState.guild.name} voice channel, the queue was deleted.`); - void msg.edit({ embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), true)] }); + this.client.logger.info( + `${this.client.shard + ? `[Shard #${this.client.shard.ids[0]}]` + : ""} Unable to re-configure networking on ${newState.guild.name} voice channel, the queue was deleted.` + ); + void msg.edit({ + embeds: [ + createEmbed( + "error", + i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), + true + ) + ] + }); return; } } if (newVC?.type === "GUILD_STAGE_VOICE" && newState.suppress) { - const msg = await queue.textChannel.send({ embeds: [createEmbed("info", i18n.__("events.voiceStateUpdate.joiningAsSpeaker"))] }); + const msg = await queue.textChannel.send({ + embeds: [ + createEmbed("info", i18n.__("events.voiceStateUpdate.joiningAsSpeaker")) + ] + }); const suppress = await newState.setSuppressed(false).catch(err => ({ error: err })); if (suppress && "error" in suppress) { queue.destroy(); - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.`); - void queue.textChannel.send({ embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true)] }) + this.client.logger.info( + `${this.client.shard + ? `[Shard #${this.client.shard.ids[0]}]` + : ""} Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.` + ); + void queue.textChannel.send({ + embeds: [ + createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true) + ] + }) .catch(e => { this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e); }); return; } - await msg.edit({ embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.joinStageMessage"), true)] }); + await msg.edit({ + embeds: [ + createEmbed("success", i18n.__("events.voiceStateUpdate.joinStageMessage"), true) + ] + }); } if (newVCMembers.size === 0 && queue.timeout === null && !queue.idle) { this.timeout(newVCMembers, queue, newState); @@ -80,12 +131,18 @@ export class VoiceStateUpdateEvent extends BaseEvent { } } - if (oldID === queueVC.id && newID !== queueVC.id && !member?.user.bot && queue.timeout === null && !queue.idle) { + if (oldID === queueVC.id && + newID !== queueVC.id && + !member?.user.bot && + queue.timeout === null && + !queue.idle) { queue.skipVoters = queue.skipVoters.filter(x => x !== member?.id); this.timeout(queueVCMembers, queue, newState); } - if (newID === queueVC.id && !member?.user.bot && queue.timeout) this.resume(queueVCMembers, queue, newState); + if (newID === queueVC.id && + !member?.user.bot && + queue.timeout) this.resume(queueVCMembers, queue, newState); } // eslint-disable-next-line class-methods-use-this @@ -102,9 +159,27 @@ export class VoiceStateUpdateEvent extends BaseEvent { queue.lastVSUpdateMsg = null; state.guild.queue!.timeout = setTimeout(() => { queue.destroy(); - void queue.textChannel.send({ embeds: [createEmbed("error", `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { duration: `\`${duration}\`` })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") })] }); + void queue.textChannel.send({ + embeds: [ + createEmbed( + "error", + `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { + duration: `\`${duration}\`` + })}` + ).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") }) + ] + }); }, timeout); - void queue.textChannel.send({ embeds: [createEmbed("warn", `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { duration: `\`${duration}\`` })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") })] }) + void queue.textChannel.send({ + embeds: [ + createEmbed( + "warn", + `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { + duration: `\`${duration}\`` + })}` + ).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") }) + ] + }) .then(msg => queue.lastVSUpdateMsg = msg.id); } @@ -117,7 +192,19 @@ export class VoiceStateUpdateEvent extends BaseEvent { const song = ((queue.player!.state as AudioPlayerPausedState).resource.metadata as IQueueSong).song; - void queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { song: `[${song.title}](${song.url})` })}`).setThumbnail(song.thumbnail).setAuthor({ name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") })] }).then(msg => queue.lastVSUpdateMsg = msg.id); + void queue.textChannel.send({ + embeds: [ + createEmbed( + "info", + `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { + song: `[${song.title}](${song.url})` + })}` + ).setThumbnail(song.thumbnail) + .setAuthor({ + name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") + }) + ] + }).then(msg => queue.lastVSUpdateMsg = msg.id); state.guild.queue?.player?.unpause(); } } From 18430c57cc2d7cc0c9a56a18f4f0fc59042a31e6 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 22:55:26 +0900 Subject: [PATCH 035/411] chore(BaseCommand): remove unused import declarations --- src/structures/BaseCommand.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/structures/BaseCommand.ts b/src/structures/BaseCommand.ts index 1788f388a..1eac42ca5 100644 --- a/src/structures/BaseCommand.ts +++ b/src/structures/BaseCommand.ts @@ -1,8 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ import { CommandContext } from "./CommandContext"; import { ICommandComponent } from "../typings"; import { Rawon } from "./Rawon"; -import { CommandInteraction, Message, SelectMenuInteraction } from "discord.js"; export abstract class BaseCommand implements ICommandComponent { public constructor(public client: Rawon, public meta: ICommandComponent["meta"]) {} From afe01f345d3a7214352730d315814b01236b078c Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 23:01:52 +0900 Subject: [PATCH 036/411] style(CommandContext): better line styling --- src/structures/CommandContext.ts | 86 +++++++++++++++++++++++++------- src/structures/Rawon.ts | 2 +- 2 files changed, 70 insertions(+), 18 deletions(-) diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 304936874..9f969c247 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ import { InteractionTypes, MessageComponentTypes } from "../typings/enum"; import { MessageInteractionAction } from "../typings"; @@ -8,7 +9,12 @@ export class CommandContext { public channel: TextBasedChannel | null = this.context.channel; public guild = this.context.guild; - public constructor(public readonly context: CommandInteraction | ContextMenuInteraction | Interaction | Message | SelectMenuInteraction, public args: string[] = []) {} + public constructor(public readonly context: CommandInteraction + | ContextMenuInteraction + | Interaction + | Message + | SelectMenuInteraction, + public args: string[] = []) {} public async deferReply(): Promise { if (this.isInteraction()) { @@ -23,19 +29,40 @@ export class CommandContext { | string | { askDeletion?: { reference: string } }, autoedit?: boolean): Promise { if (this.isInteraction()) { - if ((this.context as Interaction).isCommand() && (this.context as CommandInteraction).replied && !autoedit) throw new Error("Interaction is already replied."); + if ((this.context as Interaction).isCommand() && + (this.context as CommandInteraction).replied && + !autoedit) throw new Error("Interaction is already replied."); } const context = this.context as CommandInteraction | Message; // eslint-disable-next-line no-nested-ternary - const rep = await this.send(options, this.isInteraction() ? (context as Interaction).isCommand() ? (context as CommandInteraction).replied || (context as CommandInteraction).deferred ? "editReply" : "reply" : "reply" : "reply").catch(e => ({ error: e })); - if (!rep || "error" in rep) throw new Error(`Unable to reply context, because: ${rep ? (rep.error as Error).message : "Unknown"}`); + const rep = await this.send( + options, + this.isInteraction() + ? ( + context as Interaction).isCommand() + ? (context as CommandInteraction).replied || (context as CommandInteraction).deferred + ? "editReply" + : "reply" + : "reply" + : "reply" + ).catch(e => ({ error: e })); + if (!rep || "error" in rep) { + throw new Error( + `Unable to reply context, because: ${rep ? (rep.error as Error).message : "Unknown"}` + ); + } // @ts-expect-error-next-line return rep instanceof Message ? rep : new Message(this.context.client, rep); } - public async send(options: InteractionReplyOptions | MessageOptions | MessagePayload | string | { askDeletion?: { reference: string } }, type: MessageInteractionAction = "editReply"): Promise { + public async send(options: InteractionReplyOptions + | MessageOptions + | MessagePayload + | string + | { askDeletion?: { reference: string } }, + type: MessageInteractionAction = "editReply"): Promise { const deletionBtn = new MessageActionRow() .addComponents( new MessageButton() @@ -43,7 +70,10 @@ export class CommandContext { .setStyle("DANGER") ); if ((options as { askDeletion?: { reference: string } }).askDeletion) { - deletionBtn.components[0].setCustomId(Buffer.from(`${(options as { askDeletion: { reference: string } }).askDeletion.reference}_delete-msg`).toString("base64")); + deletionBtn.components[0].setCustomId( + Buffer.from(`${(options as { askDeletion: { reference: string } }).askDeletion.reference}_delete-msg`) + .toString("base64") + ); // eslint-disable-next-line @typescript-eslint/no-unused-expressions (options as InteractionReplyOptions).components ? (options as InteractionReplyOptions).components!.push(deletionBtn) @@ -63,32 +93,48 @@ export class CommandContext { } public isInteraction(): boolean { - return this.isCommand() || this.isContextMenu() || this.isMessageComponent() || this.isButton() || this.isSelectMenu(); + return this.isCommand() || + this.isContextMenu() || + this.isMessageComponent() || + this.isButton() || + this.isSelectMenu(); } public isCommand(): boolean { - return InteractionTypes[(this.context as Interaction).type as Exclude] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; + return InteractionTypes[ + (this.context as Interaction).type as Exclude + ] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; } public isContextMenu(): boolean { - return InteractionTypes[(this.context as Interaction).type as Exclude] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; + return InteractionTypes[ + (this.context as Interaction).type as Exclude + ] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; } public isMessageComponent(): boolean { - return InteractionTypes[(this.context as Interaction).type as Exclude] === InteractionTypes.MESSAGE_COMPONENT; + return InteractionTypes[ + (this.context as Interaction).type as Exclude + ] === InteractionTypes.MESSAGE_COMPONENT; } public isButton(): boolean { return ( - InteractionTypes[(this.context as Interaction).type as Exclude] === InteractionTypes.MESSAGE_COMPONENT && - MessageComponentTypes[(this.context as ButtonInteraction).componentType] === MessageComponentTypes.BUTTON + InteractionTypes[ + (this.context as Interaction).type as Exclude + ] === InteractionTypes.MESSAGE_COMPONENT && MessageComponentTypes[ + (this.context as ButtonInteraction).componentType + ] === MessageComponentTypes.BUTTON ); } public isSelectMenu(): boolean { return ( - InteractionTypes[(this.context as Interaction).type as Exclude] === InteractionTypes.MESSAGE_COMPONENT && - MessageComponentTypes[(this.context as SelectMenuInteraction).componentType] === MessageComponentTypes.SELECT_MENU + InteractionTypes[ + (this.context as Interaction).type as Exclude + ] === InteractionTypes.MESSAGE_COMPONENT && MessageComponentTypes[ + (this.context as SelectMenuInteraction).componentType + ] === MessageComponentTypes.SELECT_MENU ); } @@ -97,15 +143,21 @@ export class CommandContext { } public get deferred(): boolean { - return this.context instanceof Interaction ? (this.context as CommandInteraction).deferred : false; + return this.context instanceof Interaction + ? (this.context as CommandInteraction).deferred + : false; } public get options(): CommandInteraction["options"] | null { - return this.context instanceof Interaction ? (this.context as CommandInteraction).options : null; + return this.context instanceof Interaction + ? (this.context as CommandInteraction).options + : null; } public get author(): User { - return this.context instanceof Interaction ? this.context.user : this.context.author; + return this.context instanceof Interaction + ? this.context.user + : this.context.author; } public get member(): GuildMember | null { diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 1e449d56f..2e29255e0 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,4 +1,5 @@ import { soundcloud } from "../utils/handlers/SoundCloudUtil"; +import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; import { CommandManager } from "../utils/CommandManager"; import { EventsLoader } from "../utils/EventsLoader"; import { ClientUtils } from "../utils/ClientUtils"; @@ -8,7 +9,6 @@ import * as config from "../config"; import { Client, ClientOptions } from "discord.js"; import { resolve } from "path"; import got from "got"; -import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; export class Rawon extends Client { public readonly config = config; From d3850b2acd626e9980b6802973e2e9c8a8e3c023 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 23:06:07 +0900 Subject: [PATCH 037/411] style(typings): better line styling --- src/typings/index.d.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 35c472afe..6f01202e2 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -2,8 +2,17 @@ import { CommandContext } from "../structures/CommandContext"; import { ServerQueue } from "../structures/ServerQueue"; import { Rawon } from "../structures/Rawon"; - -import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed } from "discord.js"; +import { + ActivityType, + ApplicationCommandOptionData, + ApplicationCommandType, + ClientEvents, + ClientPresenceStatus, + Client as OClient, + Collection, + GuildMember, + MessageEmbed +} from "discord.js"; export type MessageInteractionAction = "editReply" | "followUp" | "reply"; From 205680af4d1142efba2ad30e24876408eaa8e50c Mon Sep 17 00:00:00 2001 From: Mednoob Date: Mon, 7 Feb 2022 23:11:18 +0900 Subject: [PATCH 038/411] style(MusicUtil): better line styling --- src/utils/decorators/MusicUtil.ts | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/utils/decorators/MusicUtil.ts b/src/utils/decorators/MusicUtil.ts index 6f0c9d757..8d347853c 100644 --- a/src/utils/decorators/MusicUtil.ts +++ b/src/utils/decorators/MusicUtil.ts @@ -4,7 +4,11 @@ import i18n from "../../config"; export function haveQueue(ctx: CommandContext): boolean { if (!ctx.guild?.queue) { - void ctx.reply({ embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.noQueue"))] }); + void ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("utils.musicDecorator.noQueue")) + ] + }); return false; } @@ -13,7 +17,11 @@ export function haveQueue(ctx: CommandContext): boolean { export function inVC(ctx: CommandContext): boolean { if (!ctx.member?.voice.channel) { - void ctx.reply({ embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.noInVC"))] }); + void ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("utils.musicDecorator.noInVC")) + ] + }); return false; } @@ -25,11 +33,19 @@ export function validVC(ctx: CommandContext): boolean { if (voiceChannel?.id === ctx.guild?.me?.voice.channel?.id) return true; if (!voiceChannel?.joinable) { - void ctx.reply({ embeds: [createEmbed("error", i18n.__("utils.musicDecorator.validVCJoinable"), true)] }); + void ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("utils.musicDecorator.validVCJoinable"), true) + ] + }); return false; } if (!voiceChannel.permissionsFor(ctx.guild!.me!.id)?.has("SPEAK")) { - void ctx.reply({ embeds: [createEmbed("error", i18n.__("utils.musicDecorator.validVCPermission"), true)] }); + void ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("utils.musicDecorator.validVCPermission"), true) + ] + }); return false; } @@ -41,7 +57,11 @@ export function sameVC(ctx: CommandContext): boolean { const botVC = ctx.guild.queue?.connection?.joinConfig.channelId ?? ctx.guild.me.voice.channel.id; if (ctx.member?.voice.channel?.id !== botVC) { - void ctx.reply({ embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.sameVC"))] }); + void ctx.reply({ + embeds: [ + createEmbed("warn", i18n.__("utils.musicDecorator.sameVC")) + ] + }); return false; } From 4cc469630a11888e37de18dfa91025ed037efc54 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:10:33 +0900 Subject: [PATCH 039/411] refactor(ButtonPagination): better line styling and convert from if-else statement to switch case --- src/utils/ButtonPagination.ts | 46 +++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/src/utils/ButtonPagination.ts b/src/utils/ButtonPagination.ts index 63db16195..706f87d37 100644 --- a/src/utils/ButtonPagination.ts +++ b/src/utils/ButtonPagination.ts @@ -1,4 +1,14 @@ -import { CommandInteraction, ContextMenuInteraction, Interaction, InteractionButtonOptions, Message, MessageActionRow, MessageButton, SelectMenuInteraction, TextChannel } from "discord.js"; +import { + CommandInteraction, + ContextMenuInteraction, + Interaction, + InteractionButtonOptions, + Message, + MessageActionRow, + MessageButton, + SelectMenuInteraction, + TextChannel +} from "discord.js"; import { PaginationPayload } from "../typings"; const DATAS: InteractionButtonOptions[] = [ @@ -42,6 +52,7 @@ export class ButtonPagination { let index = 0; this.payload.edit.call(this, index, embed, pages[index]); + const isInteraction = this.msg instanceof CommandInteraction; const buttons = DATAS.map(d => new MessageButton(d)); const toSend = { @@ -54,28 +65,33 @@ export class ButtonPagination { .addComponents(buttons) ] }; - const msg = await (isInteraction ? (this.msg as CommandInteraction).editReply(toSend) : await (this.msg as Message).edit(toSend)); - const fetchedMsg = await (this.msg.client.channels.cache.get(this.msg.channelId!) as TextChannel).messages.fetch(msg.id); + const msg = await ( + isInteraction + ? (this.msg as CommandInteraction).editReply(toSend) + : await (this.msg as Message).edit(toSend) + ); + const fetchedMsg = await ( + this.msg.client.channels.cache.get(this.msg.channelId!) as TextChannel + ).messages.fetch(msg.id); + if (pages.length < 2) return; + const collector = fetchedMsg.createMessageComponentCollector({ filter: i => { void i.deferUpdate(); - return DATAS.map(x => x.customId.toLowerCase()).includes(i.customId.toLowerCase()) && i.user.id === this.payload.author; + return DATAS.map( + x => x.customId.toLowerCase() + ).includes(i.customId.toLowerCase()) && i.user.id === this.payload.author; } }); collector.on("collect", async i => { - if (i.customId === "PREV10") { - index -= 10; - } else if (i.customId === "PREV") { - index--; - } else if (i.customId === "NEXT") { - index++; - } else if (i.customId === "NEXT10") { - index += 10; - } else { - await (msg as Message).delete(); - return; + switch (i.customId) { + case "PREV10": index -= 10; break; + case "PREV": index--; break; + case "NEXT": index++; break; + case "NEXT10": index += 10; break; + default: void (msg as Message).delete(); return; } index = ((index % pages.length) + Number(pages.length)) % pages.length; From 2dd56e5d9e85e78c21214d62ad5e8ee68601092d Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:12:21 +0900 Subject: [PATCH 040/411] style(chunk): better line styling --- src/utils/chunk.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/utils/chunk.ts b/src/utils/chunk.ts index 235e88a24..5647dd4df 100644 --- a/src/utils/chunk.ts +++ b/src/utils/chunk.ts @@ -3,6 +3,10 @@ export function chunk(arr: string, len: number): string[]; export function chunk(...args: any[]): any[] { const [arr, len] = args as [any, number]; const rest: (typeof arr)[] = []; - for (let i = 0; i < (arr as string).length; i += len) { rest.push((arr as string).slice(i, i + len)); } + + for (let i = 0; i < (arr as string).length; i += len) { + rest.push((arr as string).slice(i, i + len)); + } + return rest; } From 806dd6fd8c05ed4cf6243f3976e34e7542235ba5 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:15:55 +0900 Subject: [PATCH 041/411] style(ClientUtils): better line styling --- src/utils/ClientUtils.ts | 65 ++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/src/utils/ClientUtils.ts b/src/utils/ClientUtils.ts index b3eec178b..e76ddba96 100644 --- a/src/utils/ClientUtils.ts +++ b/src/utils/ClientUtils.ts @@ -8,21 +8,23 @@ export class ClientUtils { public constructor(public readonly client: Rawon) {} public async fetchMuteRole(guild: Guild): Promise { - return guild.roles.cache.find(x => x.name === this.client.config.muteRoleName) ?? guild.roles.create({ - mentionable: false, - name: this.client.config.muteRoleName, - permissions: ["VIEW_CHANNEL", "READ_MESSAGE_HISTORY"], - reason: "Create Muted role" - }); + return guild.roles.cache.find(x => x.name === this.client.config.muteRoleName) ?? + guild.roles.create({ + mentionable: false, + name: this.client.config.muteRoleName, + permissions: ["VIEW_CHANNEL", "READ_MESSAGE_HISTORY"], + reason: "Create Muted role" + }); } public async fetchDJRole(guild: Guild): Promise { - return guild.roles.cache.find(x => x.name === this.client.config.djRoleName) ?? guild.roles.create({ - mentionable: false, - name: this.client.config.djRoleName, - permissions: ["SEND_MESSAGES", "CONNECT"], - reason: "Create DJ role" - }); + return guild.roles.cache.find(x => x.name === this.client.config.djRoleName) ?? + guild.roles.create({ + mentionable: false, + name: this.client.config.djRoleName, + permissions: ["SEND_MESSAGES", "CONNECT"], + reason: "Create DJ role" + }); } public requiredVoters(memberAmount: number): number { @@ -53,20 +55,31 @@ export class ClientUtils { let arr: string[] = []; if (this.client.shard) { - const shardChannels = await this.client.shard.broadcastEval((c, t) => c.channels.cache.filter(ch => { - if (t) return ch.type === "GUILD_TEXT" || ch.type === "GUILD_PUBLIC_THREAD" || ch.type === "GUILD_PRIVATE_THREAD"; - - return true; - }).map(ch => ch.id), { - context: textOnly - }); + const shardChannels = await this.client.shard.broadcastEval( + (c, t) => c.channels.cache.filter(ch => { + if (t) { + return ch.type === "GUILD_TEXT" || + ch.type === "GUILD_PUBLIC_THREAD" || + ch.type === "GUILD_PRIVATE_THREAD"; + } + + return true; + }).map(ch => ch.id), + { + context: textOnly + } + ); for (const channels of shardChannels) { arr = arr.concat(channels); } } else { arr = this.client.channels.cache.filter(ch => { - if (textOnly) return ch.type === "GUILD_TEXT" || ch.type === "GUILD_PUBLIC_THREAD" || ch.type === "GUILD_PRIVATE_THREAD"; + if (textOnly) { + return ch.type === "GUILD_TEXT" || + ch.type === "GUILD_PUBLIC_THREAD" || + ch.type === "GUILD_PRIVATE_THREAD"; + } return true; }).map(ch => ch.id); @@ -87,7 +100,9 @@ export class ClientUtils { public async getPlayingCount(): Promise { if (this.client.shard) { - const playings = await this.client.shard.broadcastEval(c => c.guilds.cache.filter(x => x.queue?.playing === true).size); + const playings = await this.client.shard.broadcastEval( + c => c.guilds.cache.filter(x => x.queue?.playing === true).size + ); return playings.reduce((prev, curr) => prev + curr); } @@ -96,14 +111,18 @@ export class ClientUtils { } public async import(path: string, ...args: any[]): Promise { - const file = await import(resolve(path)).then(m => (m as Record T) | undefined>)[parse(path).name]); + const file = await import(resolve(path)) + .then( + m => (m as Record T) | undefined>)[parse(path).name] + ); return file ? new file(...(args as unknown[])) : undefined; } public getFFmpegVersion(): string { try { const ffmpeg = FFmpeg.getInfo(); - return ffmpeg.version.split(/_|-| /).find(x => (/[0-9.]/).test(x))?.replace(/[^0-9.]/g, "") ?? "Unknown"; + return ffmpeg.version.split(/_|-| /).find(x => (/[0-9.]/).test(x))?.replace(/[^0-9.]/g, "") ?? + "Unknown"; } catch { return "Unknown"; } From 5737152efa0fd4b4e7727aec81baf4c8e9d36256 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:23:01 +0900 Subject: [PATCH 042/411] refactor(CommandManager): better line styling and change from using forEach to for loop --- src/utils/CommandManager.ts | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/utils/CommandManager.ts b/src/utils/CommandManager.ts index a0a677d7a..7ef76f86b 100644 --- a/src/utils/CommandManager.ts +++ b/src/utils/CommandManager.ts @@ -36,12 +36,16 @@ export class CommandManager extends Collection { for (const file of files) { try { const path = resolve(this.path, category, file); - const command = await this.client.utils.import(path, this.client, { category, path }); + if (command === undefined) throw new Error(`File ${file} is not a valid command file.`); command.meta = Object.assign(command.meta, { path, category }); - if (Number(command.meta.aliases?.length) > 0) command.meta.aliases?.forEach(alias => this.aliases.set(alias, command.meta.name)); + if (Number(command.meta.aliases?.length) > 0) { + for (const alias of (command.meta.aliases ?? [])) { + this.aliases.set(alias, command.meta.name); + } + } this.set(command.meta.name, command); if (command.meta.contextChat) { @@ -85,12 +89,21 @@ export class CommandManager extends Collection { } } if (!allCmd.has(command.meta.name) && command.meta.slash && this.client.config.enableSlashCommand) { - if (!command.meta.slash.name) Object.assign(command.meta.slash, { name: command.meta.name }); - if (!command.meta.slash.description) Object.assign(command.meta.slash, { description: command.meta.description }); + if (!command.meta.slash.name) { + Object.assign(command.meta.slash, { + name: command.meta.name + }); + } + if (!command.meta.slash.description) { + Object.assign(command.meta.slash, { + description: command.meta.description + }); + } if (this.client.config.isDev) { for (const guild of this.client.config.devGuild as string) { const g = await this.client.guilds.fetch({ guild }); + await g.commands.create(command.meta.slash as ApplicationCommandData) .catch(() => this.client.logger.info(`Missing access on ${guild} [SLASH_COMMAND]`)); this.client.logger.info(`Registered ${command.meta.name} to slash command for ${guild}`); @@ -109,7 +122,12 @@ export class CommandManager extends Collection { return { disabledCount, files }; }) .then(data => { - this.categories.set(category, Object.assign(meta, { cmds: this.filter(c => c.meta.category === category) })); + this.categories.set( + category, + Object.assign(meta, { + cmds: this.filter(c => c.meta.category === category) + }) + ); this.client.logger.info(`Done loading ${data.files.length} commands in ${category} category.`); if (data.disabledCount !== 0) this.client.logger.info(`${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.`); }) @@ -131,11 +149,14 @@ export class CommandManager extends Collection { const args = message.content.substring(prefix.length).trim().split(/ +/); const cmd = args.shift()?.toLowerCase(); const command = this.get(cmd!) ?? this.get(this.aliases.get(cmd!)!); + if (!command || command.meta.disable) return; if (!this.cooldowns.has(command.meta.name)) this.cooldowns.set(command.meta.name, new Collection()); + const now = Date.now(); const timestamps = this.cooldowns.get(command.meta.name); const cooldownAmount = (command.meta.cooldown ?? 3) * 1000; + if (timestamps?.has(message.author.id)) { const expirationTime = timestamps.get(message.author.id)! + cooldownAmount; if (now < expirationTime) { @@ -152,14 +173,15 @@ export class CommandManager extends Collection { timestamps?.set(message.author.id, now); if (this.client.config.owners.includes(message.author.id)) timestamps?.delete(message.author.id); } + try { - if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return undefined; + if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return; command.execute(new CommandContext(message, args)); } catch (e) { this.client.logger.error("COMMAND_HANDLER_ERR:", e); } finally { // eslint-disable-next-line no-unsafe-finally - if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return undefined; + if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return; this.client.logger.info( `${message.author.tag} [${message.author.id}] is using ${command.meta.name} command from ${command.meta.category!} category ` + `on #${(message.channel as TextChannel).name} [${message.channel.id}] in guild: ${message.guild!.name} [${message.guild!.id}]` From 1950e755e961fb54a00ff6593276bd292e406dba Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:23:53 +0900 Subject: [PATCH 043/411] style(EventsLoader): better line styling --- src/utils/EventsLoader.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils/EventsLoader.ts b/src/utils/EventsLoader.ts index 979e8ddb8..43cb68964 100644 --- a/src/utils/EventsLoader.ts +++ b/src/utils/EventsLoader.ts @@ -10,7 +10,10 @@ export class EventsLoader { .then(async events => { this.client.logger.info(`Loading ${events.length} events...`); for (const file of events) { - const event = await this.client.utils.import(resolve(this.path, file), this.client); + const event = await this.client.utils.import( + resolve(this.path, file), + this.client + ); if (event === undefined) throw new Error(`File ${file} is not a valid event file.`); this.client.logger.info(`Events on listener ${event.name.toString()} has been added.`); this.client.on(event.name, (...args) => event.execute(...args)); From 23032834c6c8b905c7d78a9ab0eb5e60af0c4729 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:25:29 +0900 Subject: [PATCH 044/411] style(RawonLogger): better line styling --- src/utils/RawonLogger.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/utils/RawonLogger.ts b/src/utils/RawonLogger.ts index 6c9619b69..f6d11d725 100644 --- a/src/utils/RawonLogger.ts +++ b/src/utils/RawonLogger.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ import { IRawonLoggerOptions } from "../typings"; import { format } from "date-fns"; @@ -32,6 +33,16 @@ export class RawonLogger { if (this.options.prod && level === "debug") return; // eslint-disable-next-line no-nested-ternary - console[level](`${this.options.prod ? "" : level === "debug" ? Colors.Blue : level === "error" ? Colors.Red : level === "warn" ? Colors.Yellow : Colors.Green}[${format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)")}] [${level}]: ${messages.map(x => String(x)).join(" ")} ${Colors.Reset}`); + console[level](`${ + this.options.prod + ? "" + : level === "debug" + ? Colors.Blue + : level === "error" + ? Colors.Red + : level === "warn" + ? Colors.Yellow + : Colors.Green + }[${format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)")}] [${level}]: ${messages.map(x => String(x)).join(" ")} ${Colors.Reset}`); } } From d50ccdb61fab71dcf6856a5ca0b068923c81a832 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 08:27:15 +0900 Subject: [PATCH 045/411] style(SpotifyUtil): better line styling --- src/utils/handlers/SpotifyUtil.ts | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index c22023e33..6b87dba88 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -10,7 +10,12 @@ export class SpotifyUtil { public constructor(public client: Rawon) {} public async fetchToken(): Promise { - const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request.get("https://open.spotify.com/get_access_token?reason=transport&productType=embed", { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json(); + const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request + .get("https://open.spotify.com/get_access_token?reason=transport&productType=embed", { + headers: { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" + } + }).json(); if (!accessToken) throw new Error("Could not fetch self spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; @@ -35,10 +40,19 @@ export class SpotifyUtil { } public async getPlaylist(id: string): Promise<{ track: SpotifyTrack }[]> { - const playlistResponse = await this.client.request.get(`${this.baseURI}/playlists/${id}`, { headers: { Authorization: this.token } }).json(); + const playlistResponse = await this.client.request + .get(`${this.baseURI}/playlists/${id}`, { + headers: { + Authorization: this.token + } + }).json(); let next = playlistResponse.tracks.next; while (next) { - const nextPlaylistResponse = await this.client.request.get(next, { headers: { Authorization: this.token } }).json(); + const nextPlaylistResponse = await this.client.request.get(next, { + headers: { + Authorization: this.token + } + }).json(); next = nextPlaylistResponse.tracks.next; playlistResponse.tracks.items.push(...nextPlaylistResponse.tracks.items); } @@ -46,6 +60,11 @@ export class SpotifyUtil { } public getTrack(id: string): Promise { - return this.client.request.get(`${this.baseURI}/tracks/${id}`, { headers: { Authorization: this.token } }).json(); + return this.client.request + .get(`${this.baseURI}/tracks/${id}`, { + headers: { + Authorization: this.token + } + }).json(); } } From ba1d8e10b9aec965ee798f40fc2c6722e0390cf6 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Tue, 8 Feb 2022 07:47:05 +0700 Subject: [PATCH 046/411] chore(dependabot): use feature branch Version 3.0.0 --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b54b88050..8eb52aadb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,7 +8,7 @@ updates: interval: daily time: "06:00" timezone: Asia/Jakarta - target-branch: main + target-branch: feat/3.0.0 commit-message: include: scope prefix: chore @@ -22,7 +22,7 @@ updates: interval: daily time: "06:00" timezone: Asia/Jakarta - target-branch: main + target-branch: feat/3.0.0 commit-message: include: scope prefix: ci From 5fbbb5623a47962d1d56a84498f16973c1bf8714 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 13:43:50 +0900 Subject: [PATCH 047/411] refactor: separate GeneralUtil functions into files --- src/utils/handlers/GeneralUtil.ts | 406 +-------------------- src/utils/handlers/general/checkQuery.ts | 53 +++ src/utils/handlers/general/handleVideos.ts | 77 ++++ src/utils/handlers/general/play.ts | 118 ++++++ src/utils/handlers/general/searchTrack.ts | 216 +++++++++++ 5 files changed, 468 insertions(+), 402 deletions(-) create mode 100644 src/utils/handlers/general/checkQuery.ts create mode 100644 src/utils/handlers/general/handleVideos.ts create mode 100644 src/utils/handlers/general/play.ts create mode 100644 src/utils/handlers/general/searchTrack.ts diff --git a/src/utils/handlers/GeneralUtil.ts b/src/utils/handlers/GeneralUtil.ts index 766cc281e..17ce2aecf 100644 --- a/src/utils/handlers/GeneralUtil.ts +++ b/src/utils/handlers/GeneralUtil.ts @@ -1,402 +1,4 @@ -import { IQueueSong, ISong, QueryData, SearchTrackResult, SpotifyTrack } from "../../typings"; -import { CommandContext } from "../../structures/CommandContext"; -import { ServerQueue } from "../../structures/ServerQueue"; -import { parseHTMLElements } from "../parseHTMLElements"; -import { ButtonPagination } from "../ButtonPagination"; -import { getInfo, getStream } from "./YTDLUtil"; -import { createEmbed } from "../createEmbed"; -import { Rawon } from "../../structures/Rawon"; -import { youtube } from "./YouTubeUtil"; -import { chunk } from "../chunk"; -import i18n from "../../config"; -import { AudioPlayerError, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, createAudioResource, DiscordGatewayAdapterCreator, entersState, joinVoiceChannel, VoiceConnectionStatus } from "@discordjs/voice"; -import { Guild, Message, StageChannel, Util, VoiceChannel } from "discord.js"; -import { SearchResult, Video } from "youtubei"; -import { URL } from "url"; - -export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { - const result: SearchTrackResult = { - items: [] - }; - - const queryData = checkQuery(query); - if (queryData.isURL) { - const url = new URL(query); - result.type = "results"; - - if (queryData.sourceType === "soundcloud") { - let scUrl = url; - if (["www.soundcloud.app.goo.gl", "soundcloud.app.goo.gl"].includes(url.hostname)) { - const req = await client.request.get(url.toString()); - scUrl = new URL(req.url); - - for (const key of scUrl.searchParams.keys()) { - scUrl.searchParams.delete(key); - } - } - - const newQueryData = checkQuery(scUrl.toString()); - - if (newQueryData.type === "track") { - const track = await client.soundcloud.tracks.getV2(scUrl.toString()); - - result.items = [{ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }]; - } else if (newQueryData.type === "playlist") { - const playlist = await client.soundcloud.playlists.getV2(scUrl.toString()); - const tracks = await Promise.all(playlist.tracks.map((track): ISong => ({ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }))); - - result.items = tracks; - } - } else if (queryData.sourceType === "youtube") { - if (queryData.type === "track") { - const track = await youtube.getVideo((/youtu\.be/g).exec(url.hostname) ? url.pathname.replace("/", "") : url.toString()); - - if (track) { - result.items = [{ - duration: track.isLiveContent ? 0 : (track as Video).duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }]; - } - } else if (queryData.type === "playlist") { - const playlist = await youtube.getPlaylist(url.toString()); - - if (playlist) { - const tracks = await Promise.all(playlist.videos.map((track): ISong => ({ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }))); - - result.items = tracks; - } - } - } else if (queryData.sourceType === "spotify") { - // eslint-disable-next-line no-inner-declarations - function sortVideos(track: SpotifyTrack, videos: SearchResult<"video">): SearchResult<"video"> { - return videos.sort((a, b) => { - let aValue = 0; - let bValue = 0; - const aDurationDiff = a.duration ? a.duration - track.duration_ms : null; - const bDurationDiff = b.duration ? b.duration - track.duration_ms : null; - // "a" variable check - if (a.title.toLowerCase().includes(track.name.toLowerCase())) aValue--; - if (track.artists.some(x => a.channel?.name.toLowerCase().includes(x.name))) aValue--; - if (a.channel?.name.endsWith("- Topic")) aValue -= 2; - if (aDurationDiff ? aDurationDiff <= 5000 && aDurationDiff >= -5000 : false) aValue -= 2; - - // "b" variable check - if (b.title.toLowerCase().includes(track.name.toLowerCase())) bValue++; - if (track.artists.some(x => b.channel?.name.toLowerCase().includes(x.name))) bValue++; - if (b.channel?.name.endsWith(" - Topic")) bValue += 2; - if (bDurationDiff ? bDurationDiff <= 5000 && bDurationDiff >= -5000 : false) bValue += 2; - - return aValue + bValue; - }); - } - - if (queryData.type === "track") { - const songData = await client.spotify.resolveTracks(url.toString()) as unknown as SpotifyTrack; - const track = sortVideos(songData, await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { type: "video" }))[0]; - - result.items = [{ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }]; - } else if (queryData.type === "playlist") { - const songs = await client.spotify.resolveTracks(url.toString()) as unknown as { track: SpotifyTrack }[]; - const tracks = await Promise.all(songs.map(async (x): Promise => { - const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }))[0]; - return { - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }; - })); - - result.items = tracks; - } - } else { - const info = await getInfo(url.toString()).catch(() => undefined); - - result.items = [{ - duration: info?.duration ?? 0, - id: info?.id ?? "", - thumbnail: info?.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url ?? "", - title: info?.title ?? "Unknown Song", - url: info?.url ?? url.toString() - }]; - } - } else { - result.type = "selection"; - - if (source === "soundcloud") { - const searchRes = await client.soundcloud.tracks.searchV2({ - q: query - }); - const tracks = await Promise.all(searchRes.collection.map((track): ISong => ({ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }))); - - result.items = tracks; - } else { - const searchRes = (await youtube.search(query, { type: "video" })) as SearchResult<"video">; - const tracks = await Promise.all(searchRes.map((track): ISong => ({ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }))); - - result.items = tracks; - } - } - - return result; -} - -export function checkQuery(string: string): QueryData { - let url: URL; - try { - url = new URL(string); - } catch { - return { - isURL: false, - sourceType: "query" - }; - } - - const result: QueryData = { - isURL: true - }; - - if ((/soundcloud|snd/g).exec(url.hostname)) { - result.sourceType = "soundcloud"; - - if (url.pathname.includes("/sets/")) { - result.type = "playlist"; - } else { - result.type = "track"; - } - } else if ((/youtube|youtu\.be/g).exec(url.hostname)) { - result.sourceType = "youtube"; - - if (!(/youtu\.be/g).exec(url.hostname) && url.pathname.startsWith("/playlist")) { - result.type = "playlist"; - } else if (((/youtube/g).exec(url.hostname) && url.pathname.startsWith("/watch")) || ((/youtu\.be/g).exec(url.hostname) && url.pathname !== "")) { - result.type = "track"; - } else { - result.type = "unknown"; - } - } else if ((/spotify/g).exec(url.hostname)) { - result.sourceType = "spotify"; - - if (url.pathname.startsWith("/playlist")) { - result.type = "playlist"; - } else if (url.pathname.startsWith("/track")) { - result.type = "track"; - } else { - result.type = "unknown"; - } - } else { - result.sourceType = "unknown"; - result.type = "unknown"; - } - - return result; -} - -export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: ISong[], voiceChannel: StageChannel | VoiceChannel): Promise { - const wasIdle = ctx.guild?.queue?.idle; - - async function sendPagination(): Promise { - for (const song of toQueue) { - ctx.guild?.queue?.songs.addSong(song, ctx.member!); - } - - const opening = i18n.__mf("utils.generalHandler.handleVideoInitial", { length: toQueue.length }); - const pages = await Promise.all(chunk(toQueue, 10).map(async (v, i) => { - const texts = await Promise.all(v.map((song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown(parseHTMLElements(song.title))}`)); - - return texts.join("\n"); - })); - const embed = createEmbed("info", opening); - const msg = await ctx.reply({ embeds: [embed] }, true); - - return new ButtonPagination(msg, { - author: ctx.author.id, - edit: (i, e, p) => { - e.setDescription(`\`\`\`\n${opening}${p}\`\`\``).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); - }, - embed, - pages - }).start(); - } - - if (ctx.guild?.queue) { - await sendPagination(); - - if (wasIdle) { - void play(client, ctx.guild, undefined, wasIdle); - } - - return; - } - - ctx.guild!.queue = new ServerQueue(ctx.channel!); - await sendPagination(); - - try { - const connection = joinVoiceChannel({ - adapterCreator: ctx.guild!.voiceAdapterCreator as DiscordGatewayAdapterCreator, - channelId: voiceChannel.id, - guildId: ctx.guild!.id, - selfDeaf: true - }).on("debug", message => { - client.logger.debug(message); - }); - ctx.guild!.queue.connection = connection; - } catch (error) { - ctx.guild?.queue.songs.clear(); - delete ctx.guild!.queue; - - client.logger.error("PLAY_CMD_ERR:", error); - void ctx.channel!.send({ - embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), true)] - }).catch(e => { - client.logger.error("PLAY_CMD_ERR:", e); - }); - return; - } - - void play(client, ctx.guild!); -} - -export async function play(client: Rawon, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise { - const queue = guild.queue; - if (!queue) return; - if (queue.player === null) queue.player = createAudioPlayer(); - - const song = nextSong ? queue.songs.get(nextSong) : queue.songs.first(); - - clearTimeout(queue.dcTimeout!); - if (!song) { - queue.lastMusicMsg = null; - queue.lastVSUpdateMsg = null; - void queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.queueEnded", { usage: `\`${guild.client.config.mainPrefix}play\`` })}`)] }); - queue.dcTimeout = queue.stayInVC - ? null - : setTimeout(() => { - queue.destroy(); - void queue.textChannel.send({ embeds: [createEmbed("info", `👋 **|** ${i18n.__("utils.generalHandler.leftVC")}`)] }) - .then(msg => { - setTimeout(() => { - void msg.delete(); - }, 3500); - }); - }, 60000); - return; - } - - const resource = createAudioResource(await getStream(song.song.url), { inlineVolume: true, metadata: song }); - - queue.connection?.subscribe(queue.player); - - async function playResource(): Promise { - if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { - const suppressed = await guild.me?.voice.setSuppressed(false).catch(err => ({ error: err })); - if (suppressed && "error" in suppressed) { - queue?.player?.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); - return; - } - } - - queue?.player?.play(resource); - } - - const sendStartPlayingMsg = (newSong: IQueueSong["song"]): void => { - client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${guild.name} has started.`); - queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) - .then(m => queue.lastMusicMsg = m.id) - .catch(e => client.logger.error("PLAY_ERR:", e)); - }; - - if (wasIdle) { - void playResource(); - } else { - // eslint-disable-next-line max-lines - entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) - .then(async () => { - await playResource(); - }) - .catch((err: Error) => { - if (err.message === "The operation was aborted") err.message = "Cannot establish a voice connection within 15 seconds."; - queue.player?.emit("error", new AudioPlayerError(err, resource)); - }); - } - - queue.player.removeAllListeners(); - - queue.player.on("stateChange", (oldState, newState) => { - if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { - const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).song; - sendStartPlayingMsg(newSong); - } else if (newState.status === AudioPlayerStatus.Idle) { - client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${guild.name} has ended.`); - queue.skipVoters = []; - if (queue.loopMode === "OFF") { - queue.songs.delete(song.key); - } - - // eslint-disable-next-line no-nested-ternary - const nextS = queue.shuffle && queue.loopMode !== "SONG" ? queue.songs.random()?.key : queue.loopMode === "SONG" ? song.key : queue.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (queue.loopMode === "QUEUE" ? queue.songs.sortByIndex().first()?.key ?? "" : ""); - - queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) - .then(m => queue.lastMusicMsg = m.id) - .catch(e => client.logger.error("PLAY_ERR:", e)) - .finally(() => { - queue.player = null; - play(client, guild, nextS).catch(e => { - queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) - .catch(er => client.logger.error("PLAY_ERR:", er)); - queue.connection?.disconnect(); - return client.logger.error("PLAY_ERR:", e); - }); - }); - } - }) - .on("error", err => { - queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), true)] }).catch(e => client.logger.error("PLAY_CMD_ERR:", e)); - queue.destroy(); - client.logger.error("PLAY_ERR:", err); - }) - .on("debug", message => { - client.logger.debug(message); - }); -} +export { checkQuery } from "./general/checkQuery"; +export { handleVideos } from "./general/handleVideos"; +export { play } from "./general/play"; +export { searchTrack } from "./general/searchTrack"; diff --git a/src/utils/handlers/general/checkQuery.ts b/src/utils/handlers/general/checkQuery.ts new file mode 100644 index 000000000..6dacd69e5 --- /dev/null +++ b/src/utils/handlers/general/checkQuery.ts @@ -0,0 +1,53 @@ +import { QueryData } from "../../../typings"; +import { URL } from "url"; + +export function checkQuery(string: string): QueryData { + let url: URL; + try { + url = new URL(string); + } catch { + return { + isURL: false, + sourceType: "query" + }; + } + + const result: QueryData = { + isURL: true + }; + + if ((/soundcloud|snd/g).exec(url.hostname)) { + result.sourceType = "soundcloud"; + + if (url.pathname.includes("/sets/")) { + result.type = "playlist"; + } else { + result.type = "track"; + } + } else if ((/youtube|youtu\.be/g).exec(url.hostname)) { + result.sourceType = "youtube"; + + if (!(/youtu\.be/g).exec(url.hostname) && url.pathname.startsWith("/playlist")) { + result.type = "playlist"; + } else if (((/youtube/g).exec(url.hostname) && url.pathname.startsWith("/watch")) || ((/youtu\.be/g).exec(url.hostname) && url.pathname !== "")) { + result.type = "track"; + } else { + result.type = "unknown"; + } + } else if ((/spotify/g).exec(url.hostname)) { + result.sourceType = "spotify"; + + if (url.pathname.startsWith("/playlist")) { + result.type = "playlist"; + } else if (url.pathname.startsWith("/track")) { + result.type = "track"; + } else { + result.type = "unknown"; + } + } else { + result.sourceType = "unknown"; + result.type = "unknown"; + } + + return result; +} diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts new file mode 100644 index 000000000..82c0f0822 --- /dev/null +++ b/src/utils/handlers/general/handleVideos.ts @@ -0,0 +1,77 @@ +import { CommandContext } from "../../../structures/CommandContext"; +import { parseHTMLElements } from "../../parseHTMLElements"; +import { ButtonPagination } from "../../ButtonPagination"; +import { ServerQueue } from "../../../structures/ServerQueue"; +import { Rawon } from "../../../structures/Rawon"; +import { createEmbed } from "../../createEmbed"; +import { ISong } from "../../../typings"; +import { chunk } from "../../chunk"; +import { play } from "./play"; +import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; +import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; + +export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: ISong[], voiceChannel: StageChannel | VoiceChannel): Promise { + const wasIdle = ctx.guild?.queue?.idle; + + async function sendPagination(): Promise { + for (const song of toQueue) { + ctx.guild?.queue?.songs.addSong(song, ctx.member!); + } + + const opening = i18n.__mf("utils.generalHandler.handleVideoInitial", { length: toQueue.length }); + const pages = await Promise.all(chunk(toQueue, 10).map(async (v, i) => { + const texts = await Promise.all(v.map((song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown(parseHTMLElements(song.title))}`)); + + return texts.join("\n"); + })); + const embed = createEmbed("info", opening); + const msg = await ctx.reply({ embeds: [embed] }, true); + + return new ButtonPagination(msg, { + author: ctx.author.id, + edit: (i, e, p) => { + e.setDescription(`\`\`\`\n${opening}${p}\`\`\``).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); + }, + embed, + pages + }).start(); + } + + if (ctx.guild?.queue) { + await sendPagination(); + + if (wasIdle) { + void play(client, ctx.guild, undefined, wasIdle); + } + + return; + } + + ctx.guild!.queue = new ServerQueue(ctx.channel!); + await sendPagination(); + + try { + const connection = joinVoiceChannel({ + adapterCreator: ctx.guild!.voiceAdapterCreator as DiscordGatewayAdapterCreator, + channelId: voiceChannel.id, + guildId: ctx.guild!.id, + selfDeaf: true + }).on("debug", message => { + client.logger.debug(message); + }); + ctx.guild!.queue.connection = connection; + } catch (error) { + ctx.guild?.queue.songs.clear(); + delete ctx.guild!.queue; + + client.logger.error("PLAY_CMD_ERR:", error); + void ctx.channel!.send({ + embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), true)] + }).catch(e => { + client.logger.error("PLAY_CMD_ERR:", e); + }); + return; + } + + void play(client, ctx.guild!); +} diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts new file mode 100644 index 000000000..631b82711 --- /dev/null +++ b/src/utils/handlers/general/play.ts @@ -0,0 +1,118 @@ +import { IQueueSong } from "../../../typings"; +import { getStream } from "../YTDLUtil"; +import { createEmbed } from "../../createEmbed"; +import { Rawon } from "../../../structures/Rawon"; +import i18n from "../../../config"; +import { + AudioPlayerError, + AudioPlayerPlayingState, + AudioPlayerStatus, + createAudioPlayer, + createAudioResource, + entersState, + VoiceConnectionStatus +} from "@discordjs/voice"; +import { Guild } from "discord.js"; + +export async function play(client: Rawon, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise { + const queue = guild.queue; + if (!queue) return; + if (queue.player === null) queue.player = createAudioPlayer(); + + const song = nextSong ? queue.songs.get(nextSong) : queue.songs.first(); + + clearTimeout(queue.dcTimeout!); + if (!song) { + queue.lastMusicMsg = null; + queue.lastVSUpdateMsg = null; + void queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.queueEnded", { usage: `\`${guild.client.config.mainPrefix}play\`` })}`)] }); + queue.dcTimeout = queue.stayInVC + ? null + : setTimeout(() => { + queue.destroy(); + void queue.textChannel.send({ embeds: [createEmbed("info", `👋 **|** ${i18n.__("utils.generalHandler.leftVC")}`)] }) + .then(msg => { + setTimeout(() => { + void msg.delete(); + }, 3500); + }); + }, 60000); + return; + } + + const resource = createAudioResource(await getStream(song.song.url), { inlineVolume: true, metadata: song }); + + queue.connection?.subscribe(queue.player); + + async function playResource(): Promise { + if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { + const suppressed = await guild.me?.voice.setSuppressed(false).catch(err => ({ error: err })); + if (suppressed && "error" in suppressed) { + queue?.player?.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); + return; + } + } + + queue?.player?.play(resource); + } + + const sendStartPlayingMsg = (newSong: IQueueSong["song"]): void => { + client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${guild.name} has started.`); + queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) + .then(m => queue.lastMusicMsg = m.id) + .catch(e => client.logger.error("PLAY_ERR:", e)); + }; + + if (wasIdle) { + void playResource(); + } else { + // eslint-disable-next-line max-lines + entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) + .then(async () => { + await playResource(); + }) + .catch((err: Error) => { + if (err.message === "The operation was aborted") err.message = "Cannot establish a voice connection within 15 seconds."; + queue.player?.emit("error", new AudioPlayerError(err, resource)); + }); + } + + queue.player.removeAllListeners(); + + queue.player.on("stateChange", (oldState, newState) => { + if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { + const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).song; + sendStartPlayingMsg(newSong); + } else if (newState.status === AudioPlayerStatus.Idle) { + client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${guild.name} has ended.`); + queue.skipVoters = []; + if (queue.loopMode === "OFF") { + queue.songs.delete(song.key); + } + + // eslint-disable-next-line no-nested-ternary + const nextS = queue.shuffle && queue.loopMode !== "SONG" ? queue.songs.random()?.key : queue.loopMode === "SONG" ? song.key : queue.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (queue.loopMode === "QUEUE" ? queue.songs.sortByIndex().first()?.key ?? "" : ""); + + queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) + .then(m => queue.lastMusicMsg = m.id) + .catch(e => client.logger.error("PLAY_ERR:", e)) + .finally(() => { + queue.player = null; + play(client, guild, nextS).catch(e => { + queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) + .catch(er => client.logger.error("PLAY_ERR:", er)); + queue.connection?.disconnect(); + return client.logger.error("PLAY_ERR:", e); + }); + }); + } + }) + .on("error", err => { + queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), true)] }).catch(e => client.logger.error("PLAY_CMD_ERR:", e)); + queue.destroy(); + client.logger.error("PLAY_ERR:", err); + }) + .on("debug", message => { + client.logger.debug(message); + }); +} diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts new file mode 100644 index 000000000..421cee230 --- /dev/null +++ b/src/utils/handlers/general/searchTrack.ts @@ -0,0 +1,216 @@ +import { ISong, SearchTrackResult, SpotifyTrack } from "../../../typings"; +import { Rawon } from "../../../structures/Rawon"; +import { checkQuery } from "./checkQuery"; +import { youtube } from "../YoutubeUtil"; +import { getInfo } from "../YTDLUtil"; +import { SearchResult, Video } from "youtubei"; +import { URL } from "url"; + +export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { + const result: SearchTrackResult = { + items: [] + }; + + const queryData = checkQuery(query); + if (queryData.isURL) { + const url = new URL(query); + result.type = "results"; + + switch (queryData.sourceType) { + case "soundcloud": { + let scUrl = url; + if (["www.soundcloud.app.goo.gl", "soundcloud.app.goo.gl"].includes(url.hostname)) { + const req = await client.request.get(url.toString()); + scUrl = new URL(req.url); + + for (const key of scUrl.searchParams.keys()) { + scUrl.searchParams.delete(key); + } + } + + const newQueryData = checkQuery(scUrl.toString()); + switch (newQueryData.type) { + case "track": { + const track = await client.soundcloud.tracks.getV2(scUrl.toString()); + + result.items = [{ + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + }]; + break; + } + + case "playlist": { + const playlist = await client.soundcloud.playlists.getV2(scUrl.toString()); + const tracks = await Promise.all(playlist.tracks.map((track): ISong => ({ + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + }))); + + result.items = tracks; + break; + } + + default: break; + } + + break; + } + + case "youtube": { + switch (queryData.type) { + case "track": { + const track = await youtube.getVideo( + (/youtu\.be/g).exec(url.hostname) + ? url.pathname.replace("/", "") + : url.toString() + ); + + if (track) { + result.items = [{ + duration: track.isLiveContent ? 0 : (track as Video).duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }]; + } + break; + } + + case "playlist": { + const playlist = await youtube.getPlaylist(url.toString()); + + if (playlist) { + const tracks = await Promise.all(playlist.videos.map((track): ISong => ({ + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }))); + + result.items = tracks; + } + break; + } + + default: break; + } + + break; + } + + case "spotify": { + // eslint-disable-next-line no-inner-declarations + function sortVideos(track: SpotifyTrack, videos: SearchResult<"video">): SearchResult<"video"> { + return videos.sort((a, b) => { + let aValue = 0; + let bValue = 0; + const aDurationDiff = a.duration ? a.duration - track.duration_ms : null; + const bDurationDiff = b.duration ? b.duration - track.duration_ms : null; + // "a" variable check + if (a.title.toLowerCase().includes(track.name.toLowerCase())) aValue--; + if (track.artists.some(x => a.channel?.name.toLowerCase().includes(x.name))) aValue--; + if (a.channel?.name.endsWith("- Topic")) aValue -= 2; + if (aDurationDiff ? aDurationDiff <= 5000 && aDurationDiff >= -5000 : false) aValue -= 2; + + // "b" variable check + if (b.title.toLowerCase().includes(track.name.toLowerCase())) bValue++; + if (track.artists.some(x => b.channel?.name.toLowerCase().includes(x.name))) bValue++; + if (b.channel?.name.endsWith(" - Topic")) bValue += 2; + if (bDurationDiff ? bDurationDiff <= 5000 && bDurationDiff >= -5000 : false) bValue += 2; + + return aValue + bValue; + }); + } + + switch (queryData.type) { + case "track": { + const songData = await client.spotify.resolveTracks(url.toString()) as unknown as SpotifyTrack; + const track = sortVideos(songData, await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { type: "video" }))[0]; + + result.items = [{ + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }]; + break; + } + + case "playlist": { + const songs = await client.spotify.resolveTracks(url.toString()) as unknown as { track: SpotifyTrack }[]; + const tracks = await Promise.all(songs.map(async (x): Promise => { + const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }))[0]; + return { + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }; + })); + + result.items = tracks; + break; + } + + default: break; + } + + break; + } + + default: { + const info = await getInfo(url.toString()).catch(() => undefined); + + result.items = [{ + duration: info?.duration ?? 0, + id: info?.id ?? "", + thumbnail: info?.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url ?? "", + title: info?.title ?? "Unknown Song", + url: info?.url ?? url.toString() + }]; + break; + } + } + } else { + result.type = "selection"; + + if (source === "soundcloud") { + const searchRes = await client.soundcloud.tracks.searchV2({ + q: query + }); + const tracks = await Promise.all(searchRes.collection.map((track): ISong => ({ + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + }))); + + result.items = tracks; + } else { + const searchRes = (await youtube.search(query, { type: "video" })) as SearchResult<"video">; + const tracks = await Promise.all(searchRes.map((track): ISong => ({ + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }))); + + result.items = tracks; + } + } + + return result; +} From 8ad8b53a01ed3b038f832a37611e85f58ac12b67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 13:14:13 +0700 Subject: [PATCH 048/411] chore(deps-dev): bump @types/node from 17.0.15 to 17.0.16 (#754) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.15 to 17.0.16. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4ebbeaef..02be14cdd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rawon", - "version": "2.4.0", + "version": "3.0.0-dev", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "rawon", - "version": "2.4.0", + "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { "@discordjs/voice": "^0.8.0", @@ -25,7 +25,7 @@ }, "devDependencies": { "@types/i18n": "^0.13.2", - "@types/node": "^17.0.15", + "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", "@zhycorp/eslint-config": "^7.1.0", @@ -282,9 +282,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz", - "integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==" + "version": "17.0.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.16.tgz", + "integrity": "sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2740,9 +2740,9 @@ } }, "@types/node": { - "version": "17.0.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz", - "integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==" + "version": "17.0.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.16.tgz", + "integrity": "sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 4484dc795..b17cf2633 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ }, "devDependencies": { "@types/i18n": "^0.13.2", - "@types/node": "^17.0.15", + "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", "@zhycorp/eslint-config": "^7.1.0", From 83bbc48439aa8c0c14435fa4bdb092530b6f6a2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 13:14:36 +0700 Subject: [PATCH 049/411] chore(deps-dev): bump @typescript-eslint/parser from 5.10.2 to 5.11.0 (#756) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.10.2 to 5.11.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.11.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02be14cdd..6816b0f38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.10.2", - "@typescript-eslint/parser": "^5.10.2", + "@typescript-eslint/parser": "^5.11.0", "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", "typescript": "^4.5.5" @@ -358,14 +358,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", - "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", + "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/typescript-estree": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", "debug": "^4.3.2" }, "engines": { @@ -384,6 +384,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", + "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.11.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.10.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", @@ -2799,15 +2873,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", - "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", + "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/typescript-estree": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", + "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0" + } + }, + "@typescript-eslint/types": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.11.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index b17cf2633..a9cc06ec7 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.10.2", - "@typescript-eslint/parser": "^5.10.2", + "@typescript-eslint/parser": "^5.11.0", "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", "typescript": "^4.5.5" From ff2765936ca27016485e77e1fe083fdc9f688c0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 13:14:48 +0700 Subject: [PATCH 050/411] chore(deps): bump play-dl from 1.8.1 to 1.8.6 (#757) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.8.1 to 1.8.6. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.8.1...1.8.6) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 31 ++++++++++++++++--------------- package.json | 2 +- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6816b0f38..14ed6b340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "got": "^11.8.3", "i18n": "0.14.1", "opusscript": "^0.0.8", + "play-dl": "^1.8.6", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", "sucrase": "^3.20.3", @@ -36,7 +37,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.1", + "play-dl": "^1.8.6", "youtube-dl-exec": "^2.0.2" } }, @@ -2037,18 +2038,18 @@ } }, "node_modules/play-audio": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.4.9.tgz", - "integrity": "sha512-An88OAvbCcFZH00n9eq6+t2LmJUPJgBCz8ycKXdvUWQz3GcZ3U4o1ZsSHfVFIuoiKuovX+ue5gKNcfSs4ophew==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", "optional": true }, "node_modules/play-dl": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.1.tgz", - "integrity": "sha512-lUoxDJlPmZhcUv0LW1xg/uoQx0uxdGLppSDr8xM/oasfC/FUadA98JQzJMB6stri1ReFF96ftPQP+ZqhpVBVdQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.6.tgz", + "integrity": "sha512-NOnSmg6ikdrf6x6R4ML5QY6AJS4h4KkIIynlKuDx7RVDPE7C2kowgtS+e6RRMuuAXXXESkmlWrpUb+bnZFWy1w==", "optional": true, "dependencies": { - "play-audio": "^0.4.3" + "play-audio": "^0.5.2" }, "engines": { "node": ">=16.0.0" @@ -4052,18 +4053,18 @@ "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" }, "play-audio": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.4.9.tgz", - "integrity": "sha512-An88OAvbCcFZH00n9eq6+t2LmJUPJgBCz8ycKXdvUWQz3GcZ3U4o1ZsSHfVFIuoiKuovX+ue5gKNcfSs4ophew==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", "optional": true }, "play-dl": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.1.tgz", - "integrity": "sha512-lUoxDJlPmZhcUv0LW1xg/uoQx0uxdGLppSDr8xM/oasfC/FUadA98JQzJMB6stri1ReFF96ftPQP+ZqhpVBVdQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.6.tgz", + "integrity": "sha512-NOnSmg6ikdrf6x6R4ML5QY6AJS4h4KkIIynlKuDx7RVDPE7C2kowgtS+e6RRMuuAXXXESkmlWrpUb+bnZFWy1w==", "optional": true, "requires": { - "play-audio": "^0.4.3" + "play-audio": "^0.5.2" } }, "prelude-ls": { diff --git a/package.json b/package.json index a9cc06ec7..9c77cbbac 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.1", + "play-dl": "^1.8.6", "youtube-dl-exec": "^2.0.2" } } From a7ec90b53de01c4c05cb3101470c251459682aec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 16:08:54 +0700 Subject: [PATCH 051/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#755) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.10.2 to 5.11.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.11.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 244 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 64 insertions(+), 182 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14ed6b340..7d2e674d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "got": "^11.8.3", "i18n": "0.14.1", "opusscript": "^0.0.8", - "play-dl": "^1.8.6", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", "sucrase": "^3.20.3", @@ -27,7 +26,7 @@ "devDependencies": { "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", - "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", @@ -326,14 +325,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", - "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", + "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/type-utils": "5.10.2", - "@typescript-eslint/utils": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/type-utils": "5.11.0", + "@typescript-eslint/utils": "5.11.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -385,7 +384,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", @@ -402,87 +401,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.11.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", - "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/visitor-keys": "5.10.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", - "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", + "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.10.2", + "@typescript-eslint/utils": "5.11.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -503,9 +428,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", - "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -516,13 +441,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", - "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/visitor-keys": "5.10.2", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -543,15 +468,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", - "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", + "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/typescript-estree": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -567,12 +492,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", - "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/types": "5.11.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -2857,14 +2782,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", - "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", + "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/type-utils": "5.10.2", - "@typescript-eslint/utils": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/type-utils": "5.11.0", + "@typescript-eslint/utils": "5.11.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -2883,86 +2808,43 @@ "@typescript-eslint/types": "5.11.0", "@typescript-eslint/typescript-estree": "5.11.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" - } - }, - "@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.11.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", - "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", + "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/visitor-keys": "5.10.2" + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0" } }, "@typescript-eslint/type-utils": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", - "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", + "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.10.2", + "@typescript-eslint/utils": "5.11.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", - "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", - "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/visitor-keys": "5.10.2", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -2971,26 +2853,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", - "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", + "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.10.2", - "@typescript-eslint/types": "5.10.2", - "@typescript-eslint/typescript-estree": "5.10.2", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", - "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/types": "5.11.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 9c77cbbac..1121c537b 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "devDependencies": { "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", - "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", From c8be06b048a71ef1d84c8b477fd6e5a691314891 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Tue, 8 Feb 2022 16:15:16 +0700 Subject: [PATCH 052/411] chore: relocate project --- README.md | 6 +++--- app.json | 4 ++-- package.json | 2 +- src/commands/general/AboutCommand.ts | 2 +- src/commands/general/HelpCommand.ts | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2df465ea1..d28d10a3a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ -CI Status +CI Status ## Features - Interaction support. @@ -42,7 +42,7 @@ $ npm start ### Heroku You can host this bot to make it stay online on Heroku. -Deploy to Heroku +Deploy to Heroku ### Glitch You can use Glitch too for this project, featured with its code editor. @@ -55,7 +55,7 @@ You can use Glitch too for this project, featured with its code editor. 6. After specifying `.env`, open **Tools** > **Terminal** 7. Type `refresh`, and track the process from **Logs** -Remix on Glitch +Remix on Glitch ## Project Maintainer - [@Mednoob](https://github.com/Mednoob) diff --git a/app.json b/app.json index c3895c6de..699e352f7 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "Rawon", "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", - "logo": "https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/rawon.png", + "logo": "https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/rawon.png", "env": { "DISCORD_TOKEN": { "description": "What is your Discord bot's token? | Example: NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd", @@ -98,7 +98,7 @@ "value": "❌" } }, - "repository": "https://github.com/mzrtamp/rawon", + "repository": "https://github.com/Rahagia/rawon", "website": "https://rawon.tiramitzu.me", "formation": { "worker": { diff --git a/package.json b/package.json index 1121c537b..c04884f5c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "3.0.0-dev", "private": true, "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", - "repository": "https://github.com/mzrtamp/rawon", + "repository": "https://github.com/Rahagia/rawon", "license": "BSD-3-Clause", "author": "mzrtamp ", "main": "index.js", diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 5100534b4..e9178d2e1 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -32,7 +32,7 @@ export class AboutCommand extends BaseCommand { [i18n.__("commands.general.about.ffmpegVersionString"), this.client.utils.getFFmpegVersion()], [i18n.__("commands.general.about.botVersionString"), BotVersion], [""], - [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/mzrtamp/rawon"] + [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/Rahagia/rawon"] ]; const value = createTable(values); diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 5ae2ff5b0..30b42fc5d 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -17,11 +17,11 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), - iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/info.png" }); private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://raw.githubusercontent.com/mzrtamp/rawon/main/.github/images/question_mark.png"); + .setThumbnail("https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/question_mark.png"); public constructor(client: BaseCommand["client"]) { super(client, { @@ -148,7 +148,7 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), - iconURL: "https://raw.githubusercontent.com/mzrtamp/rawon/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/.github/images/info.png" }) ] }, "editReply"); From b8145b104e82d93f3a181796c8c86d56b52bda0b Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Tue, 8 Feb 2022 16:50:08 +0700 Subject: [PATCH 053/411] chore: update description --- README.md | 6 ++---- app.json | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d28d10a3a..fc7098713 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ -
- Splash -
+![Splash](https://repository-images.githubusercontent.com/236645319/8a781f4e-6955-499a-9e88-380c5adccfa5) # Rawon -> A dedicated open-source music and moderation Discord bot. Easy to use, and with no coding required. +> A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required. diff --git a/app.json b/app.json index 699e352f7..4433c0d64 100644 --- a/app.json +++ b/app.json @@ -1,6 +1,6 @@ { "name": "Rawon", - "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", + "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", "logo": "https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/rawon.png", "env": { "DISCORD_TOKEN": { diff --git a/package.json b/package.json index c04884f5c..1aee7fa2a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "rawon", "version": "3.0.0-dev", "private": true, - "description": "A dedicated open-sourced Discord bot with many features of utilization. Easy to use, and with no coding required.", + "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", "repository": "https://github.com/Rahagia/rawon", "license": "BSD-3-Clause", "author": "mzrtamp ", From 9e38586e0d58c77a79cd795a4b042d4379cf9d1b Mon Sep 17 00:00:00 2001 From: Mednoob Date: Tue, 8 Feb 2022 23:47:45 +0900 Subject: [PATCH 054/411] refactor: convert from CommonJS from ES Module --- index.js | 76 ++++++++++++---------- package-lock.json | 1 - package.json | 5 +- src/commands/developers/category.meta.ts | 2 +- src/commands/general/AboutCommand.ts | 4 +- src/commands/general/category.meta.ts | 2 +- src/commands/moderation/category.meta.ts | 2 +- src/commands/music/category.meta.ts | 2 +- src/index.ts | 3 +- src/structures/Rawon.ts | 5 +- src/utils/ClientUtils.ts | 8 ++- src/utils/CommandManager.ts | 7 +- src/utils/EventsLoader.ts | 3 +- src/utils/handlers/SoundCloudUtil.ts | 9 ++- src/utils/handlers/YTDLUtil.ts | 4 +- src/utils/handlers/YouTubeUtil.ts | 4 +- src/utils/handlers/general/handleVideos.ts | 1 + src/utils/importURLToString.ts | 8 +++ src/utils/pathStringToURLString.ts | 5 ++ test.js | 3 + tsconfig.json | 2 +- 21 files changed, 98 insertions(+), 58 deletions(-) create mode 100644 src/utils/importURLToString.ts create mode 100644 src/utils/pathStringToURLString.ts create mode 100644 test.js diff --git a/index.js b/index.js index f952a3e0f..f584783c3 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,8 @@ -const { execSync } = require("child_process"); -const { existsSync, rmSync } = require("fs"); -const { resolve } = require("path"); -const { Server } = require("https"); +import { execSync } from "child_process"; +import { existsSync, rmSync } from "fs"; +import { resolve } from "path"; +import { Server } from "https"; +import module from "module"; const isGlitch = ( process.env.PROJECT_DOMAIN !== undefined && @@ -58,6 +59,10 @@ function npmInstall(deleteDir = false, forceInstall = false, additionalArgs = [] execSync(`npm install${isGlitch ? " --only=prod" : ""}${forceInstall ? " --force" : ""} ${additionalArgs.join(" ")}`); } +function importURLToString(url) { + return new URL(url).pathname.split(/\/|\\/g).filter(Boolean).join("/"); +} + if (isGlitch) { try { console.info("[INFO] Trying to re-install modules..."); @@ -95,6 +100,8 @@ if (isGitHub) { console.warn("[WARN] Running this bot using GitHub is not recommended."); } +const require = module.createRequire(import.meta.url); + if (!isGlitch) { try { require("ffmpeg-static"); @@ -116,38 +123,37 @@ if (isGlitch || isReplit) { console.info("[INFO] Compiled."); } -(async () => { - const streamStrategy = process.env.STREAM_STRATEGY; - const isUnix = ["aix", "android", "darwin", "freebsd", "linux", "openbsd", "sunos"].includes(process.platform.toLowerCase()); - process.env.YOUTUBE_DL_HOST = "https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1"; - process.env.YOUTUBE_DL_FILENAME = "yt-dlp"; +const streamStrategy = process.env.STREAM_STRATEGY; +const isUnix = ["aix", "android", "darwin", "freebsd", "linux", "openbsd", "sunos"].includes(process.platform.toLowerCase()); - if (streamStrategy !== "play-dl") { - try { - require("youtube-dl-exec"); - } catch { - console.info("[INFO] Installing youtube-dl-exec..."); - npmInstall(false, false, ["youtube-dl-exec"]); - console.info("[INFO] Youtube-dl-exec has been installed."); - } +process.env.YOUTUBE_DL_HOST = "https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1"; +process.env.YOUTUBE_DL_FILENAME = "yt-dlp"; - const ytdlBinaryDir = resolve(__dirname, "node_modules", "youtube-dl-exec", "bin") - if (!existsSync(resolve(ytdlBinaryDir, isUnix ? "yt-dlp" : "yt-dlp.exe"))) { - console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); - if (existsSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe"))) rmSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe")); - await require("youtube-dl-exec/scripts/postinstall"); - console.info("[INFO] Yt-dlp has been downloaded."); - } +if (streamStrategy !== "play-dl") { + try { + require("youtube-dl-exec"); + } catch { + console.info("[INFO] Installing youtube-dl-exec..."); + npmInstall(false, false, ["youtube-dl-exec"]); + console.info("[INFO] Youtube-dl-exec has been installed."); } - if (streamStrategy === "play-dl") { - try { - require("play-dl"); - } catch { - console.info("[INFO] Installing play-dl..."); - npmInstall(false, false, ["play-dl"]); - console.info("[INFO] Play-dl has been installed."); - } + + const ytdlBinaryDir = resolve(importURLToString(import.meta.url), "node_modules", "youtube-dl-exec", "bin") + if (!existsSync(resolve(ytdlBinaryDir, isUnix ? "yt-dlp" : "yt-dlp.exe"))) { + console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); + if (existsSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe"))) rmSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe")); + require("youtube-dl-exec/scripts/postinstall"); + console.info("[INFO] Yt-dlp has been downloaded."); } - console.info("[INFO] Starting the bot..."); - require("./dist/index.js"); -})(); +} +if (streamStrategy === "play-dl") { + try { + require("play-dl"); + } catch { + console.info("[INFO] Installing play-dl..."); + npmInstall(false, false, ["play-dl"]); + console.info("[INFO] Play-dl has been installed."); + } +} +console.info("[INFO] Starting the bot..."); +import("./dist/index.js"); diff --git a/package-lock.json b/package-lock.json index 14ed6b340..32dc6b387 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { diff --git a/package.json b/package.json index 9c77cbbac..3fae4d58a 100644 --- a/package.json +++ b/package.json @@ -6,14 +6,15 @@ "repository": "https://github.com/mzrtamp/rawon", "license": "BSD-3-Clause", "author": "mzrtamp ", + "type": "module", "main": "index.js", "scripts": { "build": "npm run lint && npm run compile", - "compile": "npx sucrase src -d dist --transforms typescript,imports", + "compile": "npx sucrase src -d dist --transforms typescript", "tscompile": "tsc --build tsconfig.json", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", - "start": "node -r dotenv/config ." + "start": "node --es-module-specifier-resolution=node -r dotenv/config ." }, "eslintConfig": { "parserOptions": { diff --git a/src/commands/developers/category.meta.ts b/src/commands/developers/category.meta.ts index a07d333d2..a9e82d76e 100644 --- a/src/commands/developers/category.meta.ts +++ b/src/commands/developers/category.meta.ts @@ -5,4 +5,4 @@ const category = { hide: false }; -export = category; +export default category; diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 5100534b4..ce9ae8a64 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -1,13 +1,15 @@ import { CommandContext } from "../../structures/CommandContext"; import { createTable } from "../../utils/functions/createTable"; -import { version as BotVersion } from "../../../package.json"; import { BaseCommand } from "../../structures/BaseCommand"; import { createEmbed } from "../../utils/createEmbed"; import { formatMS } from "../../utils/formatMS"; +import rawonData from "../../../package.json"; import i18n from "../../config"; import { version as DJSVersion } from "discord.js"; import { uptime } from "os"; +const { version: BotVersion } = rawonData; + export class AboutCommand extends BaseCommand { public constructor(client: BaseCommand["client"]) { super(client, { diff --git a/src/commands/general/category.meta.ts b/src/commands/general/category.meta.ts index 798caec9e..1cfe71208 100644 --- a/src/commands/general/category.meta.ts +++ b/src/commands/general/category.meta.ts @@ -5,4 +5,4 @@ const category = { hide: false }; -export = category; +export default category; diff --git a/src/commands/moderation/category.meta.ts b/src/commands/moderation/category.meta.ts index 8e1568efb..27ffe7382 100644 --- a/src/commands/moderation/category.meta.ts +++ b/src/commands/moderation/category.meta.ts @@ -5,4 +5,4 @@ const category = { hide: false }; -export = category; +export default category; diff --git a/src/commands/music/category.meta.ts b/src/commands/music/category.meta.ts index f2d229351..433a93619 100644 --- a/src/commands/music/category.meta.ts +++ b/src/commands/music/category.meta.ts @@ -5,4 +5,4 @@ const category = { hide: false }; -export = category; +export default category; diff --git a/src/index.ts b/src/index.ts index df8fc7d19..1cde16d75 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,5 @@ import "dotenv/config"; +import { importURLToString } from "./utils/importURLToString"; import { isProd, shardingMode, shardsCount } from "./config"; import { RawonLogger } from "./utils/RawonLogger"; import { ShardingManager } from "discord.js"; @@ -6,7 +7,7 @@ import { resolve } from "path"; const log = new RawonLogger({ prod: isProd }); -const manager = new ShardingManager(resolve(__dirname, "bot.js"), { +const manager = new ShardingManager(resolve(importURLToString(import.meta.url), "bot.js"), { totalShards: shardsCount, respawn: true, token: process.env.DISCORD_TOKEN, diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 2e29255e0..40f8dfd1e 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,6 +1,7 @@ import { soundcloud } from "../utils/handlers/SoundCloudUtil"; import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; import { CommandManager } from "../utils/CommandManager"; +import { importURLToString } from "../utils/importURLToString"; import { EventsLoader } from "../utils/EventsLoader"; import { ClientUtils } from "../utils/ClientUtils"; import { RawonLogger } from "../utils/RawonLogger"; @@ -14,8 +15,8 @@ export class Rawon extends Client { public readonly config = config; public readonly logger = new RawonLogger({ prod: this.config.isProd }); public readonly request = got; - public readonly commands = new CommandManager(this, resolve(__dirname, "..", "commands")); - public readonly events = new EventsLoader(this, resolve(__dirname, "..", "events")); + public readonly commands = new CommandManager(this, resolve(importURLToString(import.meta.url), "..", "commands")); + public readonly events = new EventsLoader(this, resolve(importURLToString(import.meta.url), "..", "events")); public readonly soundcloud = soundcloud; public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); diff --git a/src/utils/ClientUtils.ts b/src/utils/ClientUtils.ts index e76ddba96..2544f48ce 100644 --- a/src/utils/ClientUtils.ts +++ b/src/utils/ClientUtils.ts @@ -1,8 +1,10 @@ /* eslint-disable class-methods-use-this */ import { Rawon } from "../structures/Rawon"; import { Guild, Role } from "discord.js"; -import { parse, resolve } from "path"; -import { FFmpeg } from "prism-media"; +import { parse } from "path"; +import prism from "prism-media"; + +const { FFmpeg } = prism; export class ClientUtils { public constructor(public readonly client: Rawon) {} @@ -111,7 +113,7 @@ export class ClientUtils { } public async import(path: string, ...args: any[]): Promise { - const file = await import(resolve(path)) + const file = await import(path) .then( m => (m as Record T) | undefined>)[parse(path).name] ); diff --git a/src/utils/CommandManager.ts b/src/utils/CommandManager.ts index 7ef76f86b..2563c4a1e 100644 --- a/src/utils/CommandManager.ts +++ b/src/utils/CommandManager.ts @@ -1,3 +1,4 @@ +import { pathStringToURLString } from "./pathStringToURLString"; import { CommandContext } from "../structures/CommandContext"; import { ICategoryMeta, ICommandComponent } from "../typings"; import { createEmbed } from "./createEmbed"; @@ -20,7 +21,7 @@ export class CommandManager extends Collection { .then(async categories => { this.client.logger.info(`Found ${categories.length} categories, registering...`); for (const category of categories) { - const meta = await import(resolve(this.path, category, "category.meta.js")) as ICategoryMeta; + const meta = await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as ICategoryMeta; this.categories.set(category, meta); this.client.logger.info(`Registering ${category} category...`); @@ -35,7 +36,7 @@ export class CommandManager extends Collection { for (const file of files) { try { - const path = resolve(this.path, category, file); + const path = pathStringToURLString(resolve(this.path, category, file)); const command = await this.client.utils.import(path, this.client, { category, path }); if (command === undefined) throw new Error(`File ${file} is not a valid command file.`); @@ -135,7 +136,7 @@ export class CommandManager extends Collection { .finally(() => this.client.logger.info(`Done registering ${category} category.`)); } }) - .catch(err => this.client.logger.error("CMD_LOADER_ERR:", err)) + .catch((err: Error) => this.client.logger.error("CMD_LOADER_ERR:", err)) .finally(() => { this.client.logger.info("All categories has been registered."); this.client.logger.info(`Current bot language is ${this.client.config.lang.toUpperCase()}`); diff --git a/src/utils/EventsLoader.ts b/src/utils/EventsLoader.ts index 43cb68964..9ea846960 100644 --- a/src/utils/EventsLoader.ts +++ b/src/utils/EventsLoader.ts @@ -1,3 +1,4 @@ +import { pathStringToURLString } from "./pathStringToURLString"; import { Rawon } from "../structures/Rawon"; import { IEvent } from "../typings"; import { promises as fs } from "fs"; @@ -11,7 +12,7 @@ export class EventsLoader { this.client.logger.info(`Loading ${events.length} events...`); for (const file of events) { const event = await this.client.utils.import( - resolve(this.path, file), + pathStringToURLString(resolve(this.path, file)), this.client ); if (event === undefined) throw new Error(`File ${file} is not a valid event file.`); diff --git a/src/utils/handlers/SoundCloudUtil.ts b/src/utils/handlers/SoundCloudUtil.ts index 519e1cd65..530125a49 100644 --- a/src/utils/handlers/SoundCloudUtil.ts +++ b/src/utils/handlers/SoundCloudUtil.ts @@ -1,3 +1,8 @@ -import Soundcloud from "soundcloud.ts"; +import SC from "soundcloud.ts"; +import { createRequire } from "module"; -export const soundcloud = new Soundcloud(); +// temporary solution +const require = createRequire(import.meta.url); +const Soundcloud = require("soundcloud.ts"); + +export const soundcloud = new (Soundcloud as { default: typeof SC }).default(); diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index ca76de8bb..fd9d0a500 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -3,9 +3,11 @@ import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; import { stream as pldlStream, video_basic_info } from "play-dl"; -import ytdl, { exec } from "youtube-dl-exec"; +import * as YTDLExec from "youtube-dl-exec"; import { Readable } from "stream"; +const { exec, default: ytdl } = YTDLExec; + export async function getStream(url: string): Promise { if (streamStrategy === "play-dl") { const isSoundcloudUrl = checkQuery(url); diff --git a/src/utils/handlers/YouTubeUtil.ts b/src/utils/handlers/YouTubeUtil.ts index 32e3d579b..aeb6f378e 100644 --- a/src/utils/handlers/YouTubeUtil.ts +++ b/src/utils/handlers/YouTubeUtil.ts @@ -1,3 +1,5 @@ -import { Client } from "youtubei"; +import YTinfo from "youtubei"; + +const { Client } = YTinfo; export const youtube = new Client(); diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index 82c0f0822..30ac4ac86 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -6,6 +6,7 @@ import { Rawon } from "../../../structures/Rawon"; import { createEmbed } from "../../createEmbed"; import { ISong } from "../../../typings"; import { chunk } from "../../chunk"; +import i18n from "../../../config"; import { play } from "./play"; import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; diff --git a/src/utils/importURLToString.ts b/src/utils/importURLToString.ts new file mode 100644 index 000000000..a574e93b1 --- /dev/null +++ b/src/utils/importURLToString.ts @@ -0,0 +1,8 @@ +import { URL } from "url"; + +export function importURLToString(url: string): string { + const paths = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); + + paths.pop(); + return decodeURIComponent(paths.join("/")); +} diff --git a/src/utils/pathStringToURLString.ts b/src/utils/pathStringToURLString.ts new file mode 100644 index 000000000..a93e50679 --- /dev/null +++ b/src/utils/pathStringToURLString.ts @@ -0,0 +1,5 @@ +export function pathStringToURLString(path: string): string { + const urlStr = new URL(`file://${path}`).toString(); + + return urlStr; +} diff --git a/test.js b/test.js new file mode 100644 index 000000000..17de6619c --- /dev/null +++ b/test.js @@ -0,0 +1,3 @@ +console.log(new URL(`file://${(await import("path")).resolve("M:/abc", "abc", "bot.js")}`).toString()); + +export const a = ""; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index cc6af3539..3e409e9d9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "ES2021", - "module": "commonjs", + "module": "ES2020", "moduleResolution": "node", "lib": ["ES2021", "ESNext.Array"], "strict": true, From 65eb44cc2f786f3bb58d3a5206e9ca01f21d3c78 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 08:39:24 +0900 Subject: [PATCH 055/411] fix(YoutubeUtil): trying to fix linter issue on github --- src/utils/handlers/YouTubeUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/handlers/YouTubeUtil.ts b/src/utils/handlers/YouTubeUtil.ts index aeb6f378e..53eb3a189 100644 --- a/src/utils/handlers/YouTubeUtil.ts +++ b/src/utils/handlers/YouTubeUtil.ts @@ -2,4 +2,4 @@ import YTinfo from "youtubei"; const { Client } = YTinfo; -export const youtube = new Client(); +export const youtube: YTinfo.Client = new Client(); From 692ce1e36953bc9062e3f4fe98be702b8943a3c9 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 09:32:44 +0900 Subject: [PATCH 056/411] feat: change compiler from sucrase to SWC --- .swcrc | 12 + package-lock.json | 654 +++++++++++++++++++++++++++++----------------- package.json | 5 +- 3 files changed, 428 insertions(+), 243 deletions(-) create mode 100644 .swcrc diff --git a/.swcrc b/.swcrc new file mode 100644 index 000000000..757c11daa --- /dev/null +++ b/.swcrc @@ -0,0 +1,12 @@ +{ + "jsc": { + "parser": { + "syntax": "typescript", + "tsx": false + }, + "target": "es2021" + }, + "module": { + "type": "es6" + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6b5881857..ff283a02b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "license": "BSD-3-Clause", "dependencies": { "@discordjs/voice": "^0.8.0", + "@swc/cli": "^0.1.55", + "@swc/core": "^1.2.138", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -17,7 +19,6 @@ "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", - "sucrase": "^3.20.3", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.28" @@ -182,7 +183,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -195,7 +195,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -204,7 +203,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -233,6 +231,255 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@swc/cli": { + "version": "0.1.55", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.55.tgz", + "integrity": "sha512-akkLuRexFq8XTi6JNZ27mXD4wcKXLDSLj4g7YMU+/upFM8IeD1IEp1Mxtre7MzCZn+QOQgPF8N8IReJoHuSn3g==", + "dependencies": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js" + }, + "engines": { + "node": ">= 12.13" + }, + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^3.5.1" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@swc/core": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.138.tgz", + "integrity": "sha512-XMbpq6y2BiTju5KCtveM3h32Ma3chGm/fQEjErZmWNOcPIpupGLPosSU1bH35Udee4GHNJH3NfkZIDR0cjHWIg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-android-arm-eabi": "1.2.138", + "@swc/core-android-arm64": "1.2.138", + "@swc/core-darwin-arm64": "1.2.138", + "@swc/core-darwin-x64": "1.2.138", + "@swc/core-freebsd-x64": "1.2.138", + "@swc/core-linux-arm-gnueabihf": "1.2.138", + "@swc/core-linux-arm64-gnu": "1.2.138", + "@swc/core-linux-arm64-musl": "1.2.138", + "@swc/core-linux-x64-gnu": "1.2.138", + "@swc/core-linux-x64-musl": "1.2.138", + "@swc/core-win32-arm64-msvc": "1.2.138", + "@swc/core-win32-ia32-msvc": "1.2.138", + "@swc/core-win32-x64-msvc": "1.2.138" + } + }, + "node_modules/@swc/core-android-arm-eabi": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", + "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-android-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", + "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", + "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", + "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-freebsd-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", + "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", + "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", + "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", + "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", + "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", + "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", + "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", + "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", + "integrity": "sha512-wYrARtnPg/svsQd0oovbth2JAhOugAgbnaOS0CMiWB4vaFBx+1GHJl5wzdhh9jt1kzsu4xZ4237tUeMH+s6d0A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -595,11 +842,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -631,7 +873,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/boolean": { "version": "3.1.4", @@ -642,6 +885,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -651,7 +895,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -747,17 +990,18 @@ } }, "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -1179,7 +1423,6 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1195,7 +1438,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1230,7 +1472,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -1251,7 +1492,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1313,7 +1553,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -1518,6 +1759,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1526,13 +1768,13 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1541,7 +1783,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1553,7 +1794,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -1635,11 +1875,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -1689,7 +1924,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -1698,7 +1932,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.2.3" @@ -1747,6 +1980,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1784,16 +2018,6 @@ "mustache": "bin/mustache" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -1842,14 +2066,6 @@ "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1919,6 +2135,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1945,7 +2162,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -1953,14 +2169,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/play-audio": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", @@ -2035,7 +2243,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -2100,7 +2307,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2125,7 +2331,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -2195,7 +2400,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { "node": ">=8" } @@ -2208,6 +2412,14 @@ "axios": "^0.21.1" } }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2241,45 +2453,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sucrase": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", - "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", - "dependencies": { - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2298,25 +2471,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tiny-typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", @@ -2326,7 +2480,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2339,11 +2492,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, "node_modules/ts-mixer": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", @@ -2662,7 +2810,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2671,14 +2818,12 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2694,6 +2839,115 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.3.0.tgz", "integrity": "sha512-wwOvh0eO3PiTEivGJWiZ+b946SlMSb4pe+y+Ur/4S87cwo09pYi+FWHHnbrM3W9W7cBYKDqQXcrFYjYUCOJUEQ==" }, + "@swc/cli": { + "version": "0.1.55", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.55.tgz", + "integrity": "sha512-akkLuRexFq8XTi6JNZ27mXD4wcKXLDSLj4g7YMU+/upFM8IeD1IEp1Mxtre7MzCZn+QOQgPF8N8IReJoHuSn3g==", + "requires": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + } + }, + "@swc/core": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.138.tgz", + "integrity": "sha512-XMbpq6y2BiTju5KCtveM3h32Ma3chGm/fQEjErZmWNOcPIpupGLPosSU1bH35Udee4GHNJH3NfkZIDR0cjHWIg==", + "requires": { + "@swc/core-android-arm-eabi": "1.2.138", + "@swc/core-android-arm64": "1.2.138", + "@swc/core-darwin-arm64": "1.2.138", + "@swc/core-darwin-x64": "1.2.138", + "@swc/core-freebsd-x64": "1.2.138", + "@swc/core-linux-arm-gnueabihf": "1.2.138", + "@swc/core-linux-arm64-gnu": "1.2.138", + "@swc/core-linux-arm64-musl": "1.2.138", + "@swc/core-linux-x64-gnu": "1.2.138", + "@swc/core-linux-x64-musl": "1.2.138", + "@swc/core-win32-arm64-msvc": "1.2.138", + "@swc/core-win32-ia32-msvc": "1.2.138", + "@swc/core-win32-x64-msvc": "1.2.138" + } + }, + "@swc/core-android-arm-eabi": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", + "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "optional": true + }, + "@swc/core-android-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", + "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "optional": true + }, + "@swc/core-darwin-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", + "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", + "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "optional": true + }, + "@swc/core-freebsd-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", + "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", + "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", + "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", + "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", + "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", + "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", + "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", + "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", + "integrity": "sha512-wYrARtnPg/svsQd0oovbth2JAhOugAgbnaOS0CMiWB4vaFBx+1GHJl5wzdhh9jt1kzsu4xZ4237tUeMH+s6d0A==", + "optional": true + }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -2924,11 +3178,6 @@ "color-convert": "^2.0.1" } }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2957,7 +3206,8 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "boolean": { "version": "3.1.4", @@ -2968,6 +3218,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2977,7 +3228,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -3049,14 +3299,15 @@ } }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "cross-spawn": { "version": "7.0.3", @@ -3363,7 +3614,6 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3376,7 +3626,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -3407,7 +3656,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -3425,7 +3673,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -3464,7 +3711,8 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -3609,6 +3857,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -3617,19 +3866,18 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -3637,8 +3885,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-stream": { "version": "2.0.1", @@ -3702,11 +3949,6 @@ "type-check": "~0.4.0" } }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3746,14 +3988,12 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" @@ -3787,6 +4027,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3812,16 +4053,6 @@ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3850,11 +4081,6 @@ "path-key": "^3.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3908,7 +4134,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-key": { "version": "3.1.1", @@ -3925,13 +4152,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "play-audio": { "version": "0.5.2", @@ -3978,8 +4199,7 @@ "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-lru": { "version": "5.1.1", @@ -4014,8 +4234,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { "version": "3.0.2", @@ -4030,7 +4249,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -4073,8 +4291,7 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "soundcloud.ts": { "version": "0.4.5", @@ -4084,6 +4301,11 @@ "axios": "^0.21.1" } }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4105,34 +4327,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "sucrase": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", - "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", - "requires": { - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4148,22 +4342,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, "tiny-typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", @@ -4173,7 +4351,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -4183,11 +4360,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, "ts-mixer": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", diff --git a/package.json b/package.json index 7cf0fd8f2..387823636 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "main": "index.js", "scripts": { "build": "npm run lint && npm run compile", - "compile": "npx sucrase src -d dist --transforms typescript", + "compile": "npx swc src -d dist", "tscompile": "tsc --build tsconfig.json", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", @@ -27,6 +27,8 @@ }, "dependencies": { "@discordjs/voice": "^0.8.0", + "@swc/cli": "^0.1.55", + "@swc/core": "^1.2.138", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -35,7 +37,6 @@ "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.1", - "sucrase": "^3.20.3", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.28" From 3a5d46b66a91980a7c462a492d5ca7c3f4b52bba Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 09:33:38 +0900 Subject: [PATCH 057/411] chore(workflows/test): manual installation of typescript is not needed --- .github/workflows/test.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aa60ff3e7..4aca49c62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,12 +45,6 @@ jobs: with: node-version: ${{ matrix.node-version }} check-latest: true - - - name: Install typescript - run: npm i --save-dev typescript - - - name: Delete node modules folder - run: rm -rf node_modules - name: Install dependencies run: npm ci From 870fad469bb3b36f3d57ffb44db590fdb75e9bea Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 15:01:44 +0900 Subject: [PATCH 058/411] fix(CommandManager): fix run-time error --- src/utils/CommandManager.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/utils/CommandManager.ts b/src/utils/CommandManager.ts index 2563c4a1e..527b0b6da 100644 --- a/src/utils/CommandManager.ts +++ b/src/utils/CommandManager.ts @@ -123,12 +123,10 @@ export class CommandManager extends Collection { return { disabledCount, files }; }) .then(data => { - this.categories.set( - category, - Object.assign(meta, { - cmds: this.filter(c => c.meta.category === category) - }) - ); + this.categories.set(category, { + ...meta, + cmds: this.filter(c => c.meta.category === category) + }); this.client.logger.info(`Done loading ${data.files.length} commands in ${category} category.`); if (data.disabledCount !== 0) this.client.logger.info(`${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.`); }) From 3aadb3cd0a713de2e56adf526378c1bc359b3c5a Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 16:48:03 +0900 Subject: [PATCH 059/411] chore(deps): update deps --- package-lock.json | 242 +++++++++++++++++++++++++++------------------- package.json | 10 +- 2 files changed, 150 insertions(+), 102 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff283a02b..ef7127585 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,21 +14,21 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^11.8.3", + "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", "prism-media": "^1.3.2", - "soundcloud.ts": "^0.4.1", + "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { + "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", - "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", "typescript": "^4.5.5" }, @@ -37,7 +37,7 @@ }, "optionalDependencies": { "play-dl": "^1.8.6", - "youtube-dl-exec": "^2.0.2" + "youtube-dl-exec": "^2.0.3" } }, "node_modules/@discordjs/builders": { @@ -211,6 +211,33 @@ "node": ">= 8" } }, + "node_modules/@rahagia/eslint-config": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-8.1.1.tgz", + "integrity": "sha512-e8+X2C4h4OyRrwaWKPw4nwrDVT+DhWArv/kDnSHS5YNDtU7qjB77c1/MGvGNQ/iGqw38FT0grY8TkQitYtmDtA==", + "dev": true, + "dependencies": { + "strip-json-comments": "^3.1.1" + }, + "peerDependencies": { + "@types/node": "^17.0.16", + "@typescript-eslint/eslint-plugin": ">=5.11.0", + "@typescript-eslint/parser": ">=5.11.0", + "eslint": ">=8.7.0", + "typescript": ">=3.3.1 <4.6.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, "node_modules/@sapphire/async-queue": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", @@ -481,14 +508,14 @@ } }, "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, "node_modules/@types/cacheable-request": { @@ -754,33 +781,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@zhycorp/eslint-config": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-7.1.0.tgz", - "integrity": "sha512-KtiTkDduw8l0ctbEp+bzXISLyRmiGvCblgl7lhW0L0pjw2kXmKar03cVH+v8ULLICw6vTSCn6k0O3jp+8zgwbg==", - "dev": true, - "dependencies": { - "strip-json-comments": "^3.1.1" - }, - "peerDependencies": { - "@types/node": "^17.0.9", - "@typescript-eslint/eslint-plugin": ">=5.10.0", - "@typescript-eslint/parser": ">=5.10.0", - "eslint": ">=8.7.0", - "typescript": ">=3.3.1 <4.6.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "@typescript-eslint/parser": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -903,9 +903,9 @@ } }, "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", "engines": { "node": ">=10.6.0" } @@ -1550,6 +1550,11 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1644,29 +1649,53 @@ } }, "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", + "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", + "@sindresorhus/is": "^4.2.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", + "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.9", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", "responselike": "^2.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1682,12 +1711,12 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -2112,11 +2141,11 @@ "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/parent-module": { @@ -2650,9 +2679,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.2.tgz", - "integrity": "sha512-sRRjq+eifuqloLMb3OWdpIMZzeYf19iv+4ZFICZYPOeZR2AkawOOve9uCUtmRa1gc6pFBkh4+MMgPiIJUwk+Sg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.3.tgz", + "integrity": "sha512-m0eeu05V2z/lj98Z2a8W1IPDqBTUWKUd0fFOFdmfs+c5HoBwOyoar6ktDJS/Vg5rBy0A2qLkfLJ/9qpPDag5pA==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -2829,6 +2858,15 @@ "fastq": "^1.6.0" } }, + "@rahagia/eslint-config": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-8.1.1.tgz", + "integrity": "sha512-e8+X2C4h4OyRrwaWKPw4nwrDVT+DhWArv/kDnSHS5YNDtU7qjB77c1/MGvGNQ/iGqw38FT0grY8TkQitYtmDtA==", + "dev": true, + "requires": { + "strip-json-comments": "^3.1.1" + } + }, "@sapphire/async-queue": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", @@ -2949,11 +2987,11 @@ "optional": true }, "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "requires": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" } }, "@types/cacheable-request": { @@ -3129,15 +3167,6 @@ "eslint-visitor-keys": "^3.0.0" } }, - "@zhycorp/eslint-config": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-7.1.0.tgz", - "integrity": "sha512-KtiTkDduw8l0ctbEp+bzXISLyRmiGvCblgl7lhW0L0pjw2kXmKar03cVH+v8ULLICw6vTSCn6k0O3jp+8zgwbg==", - "dev": true, - "requires": { - "strip-json-comments": "^3.1.1" - } - }, "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -3233,9 +3262,9 @@ } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" }, "cacheable-request": { "version": "7.0.2", @@ -3708,6 +3737,11 @@ "mime-types": "^2.1.12" } }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3775,21 +3809,35 @@ } }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", + "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", + "@sindresorhus/is": "^4.2.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", + "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.9", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + } } }, "has-flag": { @@ -3804,12 +3852,12 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", "requires": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" } }, "human-signals": { @@ -4118,9 +4166,9 @@ "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" }, "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" }, "parent-module": { "version": "1.0.1", @@ -4475,9 +4523,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.2.tgz", - "integrity": "sha512-sRRjq+eifuqloLMb3OWdpIMZzeYf19iv+4ZFICZYPOeZR2AkawOOve9uCUtmRa1gc6pFBkh4+MMgPiIJUwk+Sg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.3.tgz", + "integrity": "sha512-m0eeu05V2z/lj98Z2a8W1IPDqBTUWKUd0fFOFdmfs+c5HoBwOyoar6ktDJS/Vg5rBy0A2qLkfLJ/9qpPDag5pA==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index 387823636..d73099f03 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": "@zhycorp/eslint-config/typescript", + "extends": "@rahagia/eslint-config/typescript", "rules": { "@typescript-eslint/no-extra-parens": "off" } @@ -32,21 +32,21 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^11.8.3", + "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", "prism-media": "^1.3.2", - "soundcloud.ts": "^0.4.1", + "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { + "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.16", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", - "@zhycorp/eslint-config": "^7.1.0", "eslint": "^8.8.0", "typescript": "^4.5.5" }, @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.8.6", - "youtube-dl-exec": "^2.0.2" + "youtube-dl-exec": "^2.0.3" } } From 78e1c8ff77a322ca68735522a001ecdfa1c53171 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 16:48:13 +0900 Subject: [PATCH 060/411] chore: delete test.js --- test.js | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 test.js diff --git a/test.js b/test.js deleted file mode 100644 index 17de6619c..000000000 --- a/test.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log(new URL(`file://${(await import("path")).resolve("M:/abc", "abc", "bot.js")}`).toString()); - -export const a = ""; \ No newline at end of file From 479d291610537a9193368d859d513418ada26f65 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Wed, 9 Feb 2022 16:48:36 +0900 Subject: [PATCH 061/411] chore(tsconfig): add rootDir in compiler options --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index 3e409e9d9..9a910d371 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "lib": ["ES2021", "ESNext.Array"], "strict": true, "outDir": "dist", + "rootDir": "src", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "experimentalDecorators": true, From a2b1eae1a1ee3c5aefa506fed6475ce41faf19f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Feb 2022 08:48:51 +0700 Subject: [PATCH 062/411] chore(deps): bump play-dl from 1.8.6 to 1.8.7 (#762) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.8.6 to 1.8.7. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.8.6...1.8.7) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef7127585..3f59fdcf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", + "play-dl": "^1.8.7", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -36,7 +37,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.6", + "play-dl": "^1.8.7", "youtube-dl-exec": "^2.0.3" } }, @@ -2205,9 +2206,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.6.tgz", - "integrity": "sha512-NOnSmg6ikdrf6x6R4ML5QY6AJS4h4KkIIynlKuDx7RVDPE7C2kowgtS+e6RRMuuAXXXESkmlWrpUb+bnZFWy1w==", + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.7.tgz", + "integrity": "sha512-hGjK3LR85fCWmpLqTKhNh0uBqHA17E71G0ln0kvijQcHQffpeDmYH6lCaoCiHH8t72TohAPuJu4apUYmv5r2fw==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4209,9 +4210,9 @@ "optional": true }, "play-dl": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.6.tgz", - "integrity": "sha512-NOnSmg6ikdrf6x6R4ML5QY6AJS4h4KkIIynlKuDx7RVDPE7C2kowgtS+e6RRMuuAXXXESkmlWrpUb+bnZFWy1w==", + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.7.tgz", + "integrity": "sha512-hGjK3LR85fCWmpLqTKhNh0uBqHA17E71G0ln0kvijQcHQffpeDmYH6lCaoCiHH8t72TohAPuJu4apUYmv5r2fw==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index d73099f03..d223af676 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.6", + "play-dl": "^1.8.7", "youtube-dl-exec": "^2.0.3" } } From 37ceda0dbfea99a2a477ffb92f291d259b2e90a6 Mon Sep 17 00:00:00 2001 From: KagChi <59391215+KagChi@users.noreply.github.com> Date: Thu, 10 Feb 2022 09:08:40 +0700 Subject: [PATCH 063/411] fix: remove unused params (#763) Co-authored-by: Ahmad Yaqdhan --- src/utils/handlers/SpotifyUtil.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 6b87dba88..f5b88157a 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -10,12 +10,7 @@ export class SpotifyUtil { public constructor(public client: Rawon) {} public async fetchToken(): Promise { - const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request - .get("https://open.spotify.com/get_access_token?reason=transport&productType=embed", { - headers: { - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" - } - }).json(); + const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request.get("https://open.spotify.com/get_access_token", { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json(); if (!accessToken) throw new Error("Could not fetch self spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; From ffa14743f2edce5193f55749bc3069ede51199c3 Mon Sep 17 00:00:00 2001 From: Tiara Renata Date: Thu, 10 Feb 2022 11:11:09 +0700 Subject: [PATCH 064/411] chore(readme): add button for railway deployment (#765) --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index fc7098713..97e1d9b92 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,12 @@ You can host this bot to make it stay online on Heroku. Deploy to Heroku +### Railway +Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. + +Deploy on Railway + ### Glitch You can use Glitch too for this project, featured with its code editor. From 937f5e6a09a2ae009ca68f86f05dd16f54cbc45f Mon Sep 17 00:00:00 2001 From: Mednoob Date: Thu, 10 Feb 2022 15:04:46 +0900 Subject: [PATCH 065/411] chore: create list of disclaimers --- DISCLAIMERS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 DISCLAIMERS.md diff --git a/DISCLAIMERS.md b/DISCLAIMERS.md new file mode 100644 index 000000000..694cf0bd0 --- /dev/null +++ b/DISCLAIMERS.md @@ -0,0 +1,10 @@ +# Disclaimers +List of disclaimers. + +## Copyright, DMCA, and/or Intellectual Properties +1. Any intellectual properties used, played, or displayed by the bot is not owned by us, the maintainer of the bot, or any of the bot's contributors. This includes, but is not limited to, the audio, video and image files displayed or used in the bot's commands. +2. As railway stated in their legal fair-use page (refer to https://railway.app/legal/fair-use), they won't allow any kind of Hosting/Distribution of DMCA Protected Content. That includes hosting a discord music bot that plays music/video under a copyright license. **Deploy to Railway at your own risk.** + +## Code modifications +1. The bot is open source and can be modified and redistributed under the [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) license. +2. As written in the license, we are not responsible for any damages or losses when you are attempting to modify the code and redistribute or use it. From 48a4b83027169020a86553265a632b4a95fd8164 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Thu, 10 Feb 2022 15:07:13 +0900 Subject: [PATCH 066/411] chore(readme): add disclaimer information --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 97e1d9b92..b43ca1cd2 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,8 @@ You can host this bot to make it stay online on Heroku. ### Railway Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. +**IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. + Deploy on Railway @@ -65,4 +67,7 @@ You can use Glitch too for this project, featured with its code editor. - [@Mednoob](https://github.com/Mednoob) - [@mzrtamp](https://github.com/mzrtamp) +## Disclaimers +Disclaimers are listed on the [DISCLAIMERS.md](./DISCLAIMERS.md) file. + > © 2022 RB Project From 285632492f914c78544a498439e9e9419a559d22 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Thu, 10 Feb 2022 20:13:41 +0900 Subject: [PATCH 067/411] chore: change utils folder structures --- src/bot.ts | 2 +- src/commands/developers/EvalCommand.ts | 2 +- src/commands/general/AboutCommand.ts | 4 ++-- src/commands/general/HelpCommand.ts | 10 ++++++++-- src/commands/general/InviteCommand.ts | 2 +- src/commands/general/PingCommand.ts | 2 +- src/commands/moderation/BanCommand.ts | 2 +- src/commands/moderation/KickCommand.ts | 2 +- src/commands/moderation/MuteCommand.ts | 2 +- src/commands/moderation/PurgeCommand.ts | 2 +- src/commands/moderation/UnBanCommand.ts | 2 +- src/commands/moderation/UnMuteCommand.ts | 2 +- src/commands/moderation/WarnCommand.ts | 2 +- src/commands/music/LyricsCommand.ts | 6 +++--- src/commands/music/NowPlayingCommand.ts | 2 +- src/commands/music/PauseCommand.ts | 2 +- src/commands/music/PlayCommand.ts | 2 +- src/commands/music/QueueCommand.ts | 6 +++--- src/commands/music/RemoveCommand.ts | 8 ++++---- src/commands/music/RepeatCommand.ts | 2 +- src/commands/music/ResumeCommand.ts | 2 +- src/commands/music/SearchCommand.ts | 4 ++-- src/commands/music/ShuffleCommand.ts | 2 +- src/commands/music/SkipCommand.ts | 4 ++-- src/commands/music/SkipToCommand.ts | 2 +- src/commands/music/StayInQueueCommand.ts | 2 +- src/commands/music/StopCommand.ts | 2 +- src/commands/music/VolumeCommand.ts | 2 +- src/config.ts | 18 ++++++++++++++++-- src/events/ChannelUpdateEvent.ts | 2 +- src/events/InteractionCreateEvent.ts | 2 +- src/events/MessageCreateEvent.ts | 2 +- src/events/VoiceStateUpdateEvent.ts | 4 ++-- src/index.ts | 4 ++-- src/structures/CommandContext.ts | 19 ++++++++++++++++++- src/structures/Rawon.ts | 12 ++++++------ src/structures/ServerQueue.ts | 2 +- src/utils/decorators/MusicUtil.ts | 2 +- src/utils/{ => functions}/chunk.ts | 0 src/utils/{ => functions}/createEmbed.ts | 2 +- src/utils/{ => functions}/formatMS.ts | 2 +- .../{ => functions}/importURLToString.ts | 0 .../{ => functions}/parseHTMLElements.ts | 0 .../{ => functions}/pathStringToURLString.ts | 0 src/utils/handlers/SpotifyUtil.ts | 7 ++++++- src/utils/handlers/general/handleVideos.ts | 8 ++++---- src/utils/handlers/general/play.ts | 4 ++-- .../{ => structures}/ButtonPagination.ts | 2 +- src/utils/{ => structures}/ClientUtils.ts | 2 +- src/utils/{ => structures}/CommandManager.ts | 19 +++++++++---------- src/utils/{ => structures}/EventsLoader.ts | 6 +++--- src/utils/{ => structures}/NoStackError.ts | 0 .../{ => structures}/OperationManager.ts | 0 src/utils/{ => structures}/RawonLogger.ts | 2 +- src/utils/{ => structures}/SongManager.ts | 2 +- tsconfig.json | 1 - 56 files changed, 124 insertions(+), 84 deletions(-) rename src/utils/{ => functions}/chunk.ts (100%) rename src/utils/{ => functions}/createEmbed.ts (91%) rename src/utils/{ => functions}/formatMS.ts (93%) rename src/utils/{ => functions}/importURLToString.ts (100%) rename src/utils/{ => functions}/parseHTMLElements.ts (100%) rename src/utils/{ => functions}/pathStringToURLString.ts (100%) rename src/utils/{ => structures}/ButtonPagination.ts (98%) rename src/utils/{ => structures}/ClientUtils.ts (98%) rename src/utils/{ => structures}/CommandManager.ts (94%) rename src/utils/{ => structures}/EventsLoader.ts (86%) rename src/utils/{ => structures}/NoStackError.ts (100%) rename src/utils/{ => structures}/OperationManager.ts (100%) rename src/utils/{ => structures}/RawonLogger.ts (96%) rename src/utils/{ => structures}/SongManager.ts (91%) diff --git a/src/bot.ts b/src/bot.ts index 74e79f54d..6cfb27e7c 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -1,4 +1,4 @@ -import { NoStackError } from "./utils/NoStackError"; +import { NoStackError } from "./utils/structures/NoStackError"; import { clientOptions } from "./config"; import { Rawon } from "./structures/Rawon"; diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index d8bb2a915..e713ac583 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars, no-eval, prefer-named-capture-group */ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; import { inspect } from "util"; diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 74e435131..6cd5e3f45 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -1,8 +1,8 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { createTable } from "../../utils/functions/createTable"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; -import { formatMS } from "../../utils/formatMS"; +import { formatMS } from "../../utils/functions/formatMS"; import rawonData from "../../../package.json"; import i18n from "../../config"; import { version as DJSVersion } from "discord.js"; diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 30b42fc5d..7b05b92e3 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -1,9 +1,15 @@ /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain, @typescript-eslint/no-unnecessary-condition */ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; -import { Message, MessageActionRow, MessageSelectMenu, MessageSelectOptionData, SelectMenuInteraction } from "discord.js"; +import { + Message, + MessageActionRow, + MessageSelectMenu, + MessageSelectOptionData, + SelectMenuInteraction +} from "discord.js"; export class HelpCommand extends BaseCommand { private readonly listEmbed = createEmbed("info") diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index 68352846b..797ecd4e1 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Permissions } from "discord.js"; diff --git a/src/commands/general/PingCommand.ts b/src/commands/general/PingCommand.ts index 22b464f04..62aee650b 100644 --- a/src/commands/general/PingCommand.ts +++ b/src/commands/general/PingCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { ColorResolvable } from "discord.js"; diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index 9a1bbf408..c9022a9f4 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index fdff923d8..eadaed44c 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index e38f28d08..d23744bde 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 3a2f92413..45463170b 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { TextChannel, Message } from "discord.js"; diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index cd464e423..2c3b0f6bf 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index 20e263fbb..d55549aec 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 91a45a3b7..4614ebf65 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 6d7cbb9c9..56b5b584d 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -1,9 +1,9 @@ +import { ButtonPagination } from "../../utils/structures/ButtonPagination"; import { CommandContext } from "../../structures/CommandContext"; -import { ButtonPagination } from "../../utils/ButtonPagination"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { ILyricsAPIResult, IQueueSong } from "../../typings"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; -import { chunk } from "../../utils/chunk"; +import { chunk } from "../../utils/functions/chunk"; import i18n from "../../config"; import { AudioPlayerPlayingState, AudioResource } from "@discordjs/voice"; import { Message } from "discord.js"; diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index 6ed278c1a..be205efbe 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -1,7 +1,7 @@ import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { MessageActionRow, MessageButton, MessageEmbed } from "discord.js"; diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index 4d8787942..2fcb467ac 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -1,7 +1,7 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 3cc6b4f97..95b1e858f 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -1,8 +1,8 @@ import { checkQuery, handleVideos, searchTrack } from "../../utils/handlers/GeneralUtil"; import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import { ISong } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index f4a8ef140..f2f521eb3 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -1,10 +1,10 @@ +import { ButtonPagination } from "../../utils/structures/ButtonPagination"; import { CommandContext } from "../../structures/CommandContext"; -import { ButtonPagination } from "../../utils/ButtonPagination"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; +import { chunk } from "../../utils/functions/chunk"; import { IQueueSong } from "../../typings"; -import { chunk } from "../../utils/chunk"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index ee56e1e3e..1ad292f41 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -1,11 +1,11 @@ +import { parseHTMLElements } from "../../utils/functions/parseHTMLElements"; +import { ButtonPagination } from "../../utils/structures/ButtonPagination"; import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; -import { parseHTMLElements } from "../../utils/parseHTMLElements"; import { CommandContext } from "../../structures/CommandContext"; -import { ButtonPagination } from "../../utils/ButtonPagination"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; +import { chunk } from "../../utils/functions/chunk"; import { IQueueSong } from "../../typings"; -import { chunk } from "../../utils/chunk"; import i18n from "../../config"; import { AudioPlayerState, AudioResource } from "@discordjs/voice"; import { Util } from "discord.js"; diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 4e15dff83..15150864c 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -1,7 +1,7 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import { LoopMode } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index a7988f419..d3e9a63d4 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -1,7 +1,7 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index cd758dba9..55e17997c 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -1,9 +1,9 @@ +import { parseHTMLElements } from "../../utils/functions/parseHTMLElements"; import { checkQuery, searchTrack } from "../../utils/handlers/GeneralUtil"; import { inVC, validVC, sameVC } from "../../utils/decorators/MusicUtil"; -import { parseHTMLElements } from "../../utils/parseHTMLElements"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import { ISong } from "../../typings"; import i18n from "../../config"; import { diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index caeb73dd5..3de3e171b 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -1,7 +1,7 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; export class ShuffleCommand extends BaseCommand { diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index d0f6dc4df..04d8f6a65 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -1,8 +1,8 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; +import { OperationManager } from "../../utils/structures/OperationManager"; import { CommandContext } from "../../structures/CommandContext"; -import { OperationManager } from "../../utils/OperationManager"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index b962d5d07..dc00d86fe 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -1,8 +1,8 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { play } from "../../utils/handlers/GeneralUtil"; -import { createEmbed } from "../../utils/createEmbed"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 618d98994..5654c9dd1 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -1,7 +1,7 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { Message } from "discord.js"; diff --git a/src/commands/music/StopCommand.ts b/src/commands/music/StopCommand.ts index e95afa88c..79c8c7857 100644 --- a/src/commands/music/StopCommand.ts +++ b/src/commands/music/StopCommand.ts @@ -1,7 +1,7 @@ import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; export class StopCommand extends BaseCommand { diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index aed946bc7..658b28da1 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -1,7 +1,7 @@ import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createEmbed } from "../../utils/createEmbed"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { Message } from "discord.js"; diff --git a/src/config.ts b/src/config.ts index bd0b2d17b..84db3df0a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,11 +1,25 @@ import { IpresenceData } from "./typings"; -import { ActivityType, ClientOptions, ClientPresenceStatus, Intents, Options, ShardingManagerMode, Sweepers } from "discord.js"; +import { + ActivityType, + ClientOptions, + ClientPresenceStatus, + Intents, + Options, + ShardingManagerMode, + Sweepers +} from "discord.js"; import { join } from "path"; import i18n from "i18n"; export const clientOptions: ClientOptions = { allowedMentions: { parse: ["users"], repliedUser: true }, - intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, Intents.FLAGS.GUILD_VOICE_STATES, Intents.FLAGS.GUILD_BANS], + intents: [ + Intents.FLAGS.GUILDS, + Intents.FLAGS.GUILD_MESSAGES, + Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, + Intents.FLAGS.GUILD_VOICE_STATES, + Intents.FLAGS.GUILD_BANS + ], makeCache: Options.cacheWithLimits({ MessageManager: { maxSize: Infinity, diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index 6081b7c40..d5c031800 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -1,5 +1,5 @@ +import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; -import { createEmbed } from "../utils/createEmbed"; import { entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { GuildChannel, VoiceChannel } from "discord.js"; import i18n from "i18n"; diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index cee3f2764..bc897824c 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -1,6 +1,6 @@ import { CommandContext } from "../structures/CommandContext"; +import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; -import { createEmbed } from "../utils/createEmbed"; import i18n from "../config"; import { BitFieldResolvable, Interaction, Permissions, PermissionString } from "discord.js"; diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index c20382305..430180e1a 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -1,5 +1,5 @@ +import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; -import { createEmbed } from "../utils/createEmbed"; import i18n from "../config"; import { Message, User } from "discord.js"; diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 937f17a43..766f2ebfb 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -1,7 +1,7 @@ +import { createEmbed } from "../utils/functions/createEmbed"; import { ServerQueue } from "../structures/ServerQueue"; +import { formatMS } from "../utils/functions/formatMS"; import { BaseEvent } from "../structures/BaseEvent"; -import { createEmbed } from "../utils/createEmbed"; -import { formatMS } from "../utils/formatMS"; import { IQueueSong } from "../typings"; import i18n from "../config"; import { AudioPlayerPausedState, entersState, VoiceConnectionStatus } from "@discordjs/voice"; diff --git a/src/index.ts b/src/index.ts index 1cde16d75..2862cee10 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,7 @@ import "dotenv/config"; -import { importURLToString } from "./utils/importURLToString"; +import { importURLToString } from "./utils/functions/importURLToString"; import { isProd, shardingMode, shardsCount } from "./config"; -import { RawonLogger } from "./utils/RawonLogger"; +import { RawonLogger } from "./utils/structures/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 9f969c247..6055a20d9 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -2,7 +2,24 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ import { InteractionTypes, MessageComponentTypes } from "../typings/enum"; import { MessageInteractionAction } from "../typings"; -import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageMentions, MessageOptions, MessagePayload, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; +import { + ButtonInteraction, + Collection, + CommandInteraction, + ContextMenuInteraction, + GuildMember, + Interaction, + InteractionReplyOptions, + Message, + MessageActionRow, + MessageButton, + MessageMentions, + MessageOptions, + MessagePayload, + SelectMenuInteraction, + TextBasedChannel, + User +} from "discord.js"; export class CommandContext { public additionalArgs: Collection = new Collection(); diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 40f8dfd1e..3631c49e0 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,11 +1,11 @@ +import { importURLToString } from "../utils/functions/importURLToString"; +import { CommandManager } from "../utils/structures/CommandManager"; +import { EventsLoader } from "../utils/structures/EventsLoader"; +import { ClientUtils } from "../utils/structures/ClientUtils"; +import { RawonLogger } from "../utils/structures/RawonLogger"; import { soundcloud } from "../utils/handlers/SoundCloudUtil"; import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; -import { CommandManager } from "../utils/CommandManager"; -import { importURLToString } from "../utils/importURLToString"; -import { EventsLoader } from "../utils/EventsLoader"; -import { ClientUtils } from "../utils/ClientUtils"; -import { RawonLogger } from "../utils/RawonLogger"; -import { formatMS } from "../utils/formatMS"; +import { formatMS } from "../utils/functions/formatMS"; import * as config from "../config"; import { Client, ClientOptions } from "discord.js"; import { resolve } from "path"; diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 96bad99a4..92c9c63a4 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,4 +1,4 @@ -import { SongManager } from "../utils/SongManager"; +import { SongManager } from "../utils/structures/SongManager"; import { LoopMode } from "../typings"; import { AudioPlayer, AudioPlayerStatus, VoiceConnection } from "@discordjs/voice"; import { TextBasedChannel, Snowflake } from "discord.js"; diff --git a/src/utils/decorators/MusicUtil.ts b/src/utils/decorators/MusicUtil.ts index 8d347853c..36d741986 100644 --- a/src/utils/decorators/MusicUtil.ts +++ b/src/utils/decorators/MusicUtil.ts @@ -1,5 +1,5 @@ import { CommandContext } from "../../structures/CommandContext"; -import { createEmbed } from "../createEmbed"; +import { createEmbed } from "../functions/createEmbed"; import i18n from "../../config"; export function haveQueue(ctx: CommandContext): boolean { diff --git a/src/utils/chunk.ts b/src/utils/functions/chunk.ts similarity index 100% rename from src/utils/chunk.ts rename to src/utils/functions/chunk.ts diff --git a/src/utils/createEmbed.ts b/src/utils/functions/createEmbed.ts similarity index 91% rename from src/utils/createEmbed.ts rename to src/utils/functions/createEmbed.ts index 2d01e0ea0..855b11443 100644 --- a/src/utils/createEmbed.ts +++ b/src/utils/functions/createEmbed.ts @@ -1,4 +1,4 @@ -import { embedColor, noEmoji, yesEmoji } from "../config"; +import { embedColor, noEmoji, yesEmoji } from "../../config"; import { ColorResolvable, MessageEmbed } from "discord.js"; type hexColorsType = "error" | "info" | "success" | "warn"; diff --git a/src/utils/formatMS.ts b/src/utils/functions/formatMS.ts similarity index 93% rename from src/utils/formatMS.ts rename to src/utils/functions/formatMS.ts index 43ddc6129..30b94037b 100644 --- a/src/utils/formatMS.ts +++ b/src/utils/functions/formatMS.ts @@ -1,4 +1,4 @@ -import { lang } from "../config"; +import { lang } from "../../config"; import { formatDuration, intervalToDuration } from "date-fns"; import * as locales from "date-fns/locale"; diff --git a/src/utils/importURLToString.ts b/src/utils/functions/importURLToString.ts similarity index 100% rename from src/utils/importURLToString.ts rename to src/utils/functions/importURLToString.ts diff --git a/src/utils/parseHTMLElements.ts b/src/utils/functions/parseHTMLElements.ts similarity index 100% rename from src/utils/parseHTMLElements.ts rename to src/utils/functions/parseHTMLElements.ts diff --git a/src/utils/pathStringToURLString.ts b/src/utils/functions/pathStringToURLString.ts similarity index 100% rename from src/utils/pathStringToURLString.ts rename to src/utils/functions/pathStringToURLString.ts diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index f5b88157a..622ae02f8 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -10,7 +10,12 @@ export class SpotifyUtil { public constructor(public client: Rawon) {} public async fetchToken(): Promise { - const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request.get("https://open.spotify.com/get_access_token", { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json(); + const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request + .get("https://open.spotify.com/get_access_token", { + headers: { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" + } + }).json(); if (!accessToken) throw new Error("Could not fetch self spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index 30ac4ac86..e7731be58 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -1,11 +1,11 @@ +import { parseHTMLElements } from "../../functions/parseHTMLElements"; +import { ButtonPagination } from "../../structures/ButtonPagination"; import { CommandContext } from "../../../structures/CommandContext"; -import { parseHTMLElements } from "../../parseHTMLElements"; -import { ButtonPagination } from "../../ButtonPagination"; import { ServerQueue } from "../../../structures/ServerQueue"; +import { createEmbed } from "../../functions/createEmbed"; import { Rawon } from "../../../structures/Rawon"; -import { createEmbed } from "../../createEmbed"; +import { chunk } from "../../functions/chunk"; import { ISong } from "../../../typings"; -import { chunk } from "../../chunk"; import i18n from "../../../config"; import { play } from "./play"; import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index 631b82711..3e1f6d7f4 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -1,7 +1,7 @@ +import { createEmbed } from "../../functions/createEmbed"; +import { Rawon } from "../../../structures/Rawon"; import { IQueueSong } from "../../../typings"; import { getStream } from "../YTDLUtil"; -import { createEmbed } from "../../createEmbed"; -import { Rawon } from "../../../structures/Rawon"; import i18n from "../../../config"; import { AudioPlayerError, diff --git a/src/utils/ButtonPagination.ts b/src/utils/structures/ButtonPagination.ts similarity index 98% rename from src/utils/ButtonPagination.ts rename to src/utils/structures/ButtonPagination.ts index 706f87d37..261cea960 100644 --- a/src/utils/ButtonPagination.ts +++ b/src/utils/structures/ButtonPagination.ts @@ -9,7 +9,7 @@ import { SelectMenuInteraction, TextChannel } from "discord.js"; -import { PaginationPayload } from "../typings"; +import { PaginationPayload } from "../../typings"; const DATAS: InteractionButtonOptions[] = [ { diff --git a/src/utils/ClientUtils.ts b/src/utils/structures/ClientUtils.ts similarity index 98% rename from src/utils/ClientUtils.ts rename to src/utils/structures/ClientUtils.ts index 2544f48ce..9042f5866 100644 --- a/src/utils/ClientUtils.ts +++ b/src/utils/structures/ClientUtils.ts @@ -1,5 +1,5 @@ /* eslint-disable class-methods-use-this */ -import { Rawon } from "../structures/Rawon"; +import { Rawon } from "../../structures/Rawon"; import { Guild, Role } from "discord.js"; import { parse } from "path"; import prism from "prism-media"; diff --git a/src/utils/CommandManager.ts b/src/utils/structures/CommandManager.ts similarity index 94% rename from src/utils/CommandManager.ts rename to src/utils/structures/CommandManager.ts index 527b0b6da..3364b023a 100644 --- a/src/utils/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -1,9 +1,9 @@ -import { pathStringToURLString } from "./pathStringToURLString"; -import { CommandContext } from "../structures/CommandContext"; -import { ICategoryMeta, ICommandComponent } from "../typings"; -import { createEmbed } from "./createEmbed"; -import { Rawon } from "../structures/Rawon"; -import i18n from "../config"; +import { pathStringToURLString } from "../functions/pathStringToURLString"; +import { CommandContext } from "../../structures/CommandContext"; +import { ICategoryMeta, ICommandComponent } from "../../typings"; +import { createEmbed } from "../functions/createEmbed"; +import { Rawon } from "../../structures/Rawon"; +import i18n from "../../config"; import { ApplicationCommandData, Collection, Message, Snowflake, TextChannel } from "discord.js"; import { promises as fs } from "fs"; import { resolve } from "path"; @@ -21,7 +21,7 @@ export class CommandManager extends Collection { .then(async categories => { this.client.logger.info(`Found ${categories.length} categories, registering...`); for (const category of categories) { - const meta = await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as ICategoryMeta; + const meta = (await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as { default: ICategoryMeta }).default; this.categories.set(category, meta); this.client.logger.info(`Registering ${category} category...`); @@ -123,10 +123,9 @@ export class CommandManager extends Collection { return { disabledCount, files }; }) .then(data => { - this.categories.set(category, { - ...meta, + this.categories.set(category, Object.assign(meta, { cmds: this.filter(c => c.meta.category === category) - }); + })); this.client.logger.info(`Done loading ${data.files.length} commands in ${category} category.`); if (data.disabledCount !== 0) this.client.logger.info(`${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.`); }) diff --git a/src/utils/EventsLoader.ts b/src/utils/structures/EventsLoader.ts similarity index 86% rename from src/utils/EventsLoader.ts rename to src/utils/structures/EventsLoader.ts index 9ea846960..713872007 100644 --- a/src/utils/EventsLoader.ts +++ b/src/utils/structures/EventsLoader.ts @@ -1,6 +1,6 @@ -import { pathStringToURLString } from "./pathStringToURLString"; -import { Rawon } from "../structures/Rawon"; -import { IEvent } from "../typings"; +import { pathStringToURLString } from "../functions/pathStringToURLString"; +import { Rawon } from "../../structures/Rawon"; +import { IEvent } from "../../typings"; import { promises as fs } from "fs"; import { resolve } from "path"; diff --git a/src/utils/NoStackError.ts b/src/utils/structures/NoStackError.ts similarity index 100% rename from src/utils/NoStackError.ts rename to src/utils/structures/NoStackError.ts diff --git a/src/utils/OperationManager.ts b/src/utils/structures/OperationManager.ts similarity index 100% rename from src/utils/OperationManager.ts rename to src/utils/structures/OperationManager.ts diff --git a/src/utils/RawonLogger.ts b/src/utils/structures/RawonLogger.ts similarity index 96% rename from src/utils/RawonLogger.ts rename to src/utils/structures/RawonLogger.ts index f6d11d725..4879130d2 100644 --- a/src/utils/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -1,5 +1,5 @@ /* eslint-disable no-nested-ternary */ -import { IRawonLoggerOptions } from "../typings"; +import { IRawonLoggerOptions } from "../../typings"; import { format } from "date-fns"; enum Colors { diff --git a/src/utils/SongManager.ts b/src/utils/structures/SongManager.ts similarity index 91% rename from src/utils/SongManager.ts rename to src/utils/structures/SongManager.ts index 5a17536c6..704300a78 100644 --- a/src/utils/SongManager.ts +++ b/src/utils/structures/SongManager.ts @@ -1,4 +1,4 @@ -import { ISong, IQueueSong } from "../typings"; +import { ISong, IQueueSong } from "../../typings"; import { Collection, GuildMember, Snowflake, SnowflakeUtil } from "discord.js"; export class SongManager extends Collection { diff --git a/tsconfig.json b/tsconfig.json index 9a910d371..3e409e9d9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,6 @@ "lib": ["ES2021", "ESNext.Array"], "strict": true, "outDir": "dist", - "rootDir": "src", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "experimentalDecorators": true, From b7e6e9d0162ec5d81a8a4d5782e394b80e76c39d Mon Sep 17 00:00:00 2001 From: Mednoob Date: Thu, 10 Feb 2022 23:55:24 +0900 Subject: [PATCH 068/411] feat: class decorators are back!!!! (method/cmd decorators will be added soon) --- .swcrc | 3 +- src/commands/developers/EvalCommand.ts | 20 +++--- src/commands/general/AboutCommand.ts | 22 +++---- src/commands/general/HelpCommand.ts | 34 +++++----- src/commands/general/InviteCommand.ts | 22 +++---- src/commands/general/PingCommand.ts | 22 +++---- src/commands/moderation/BanCommand.ts | 48 +++++++------- src/commands/moderation/KickCommand.ts | 48 +++++++------- src/commands/moderation/MuteCommand.ts | 48 +++++++------- src/commands/moderation/PurgeCommand.ts | 34 +++++----- src/commands/moderation/UnBanCommand.ts | 46 +++++++------ src/commands/moderation/UnMuteCommand.ts | 48 +++++++------- src/commands/moderation/WarnCommand.ts | 46 +++++++------ src/commands/music/LyricsCommand.ts | 36 +++++----- src/commands/music/NowPlayingCommand.ts | 22 +++---- src/commands/music/PauseCommand.ts | 20 +++--- src/commands/music/PlayCommand.ts | 38 +++++------ src/commands/music/QueueCommand.ts | 22 +++---- src/commands/music/RemoveCommand.ts | 34 +++++----- src/commands/music/RepeatCommand.ts | 54 ++++++++------- src/commands/music/ResumeCommand.ts | 20 +++--- src/commands/music/SearchCommand.ts | 64 +++++++++--------- src/commands/music/ShuffleCommand.ts | 52 +++++++-------- src/commands/music/SkipCommand.ts | 22 +++---- src/commands/music/SkipToCommand.ts | 66 +++++++++---------- src/commands/music/StayInQueueCommand.ts | 54 ++++++++------- src/commands/music/StopCommand.ts | 22 +++---- src/commands/music/VolumeCommand.ts | 36 +++++----- src/events/ChannelUpdateEvent.ts | 6 +- src/events/DebugEvent.ts | 6 +- src/events/ErrorEvent.ts | 6 +- src/events/InteractionCreateEvent.ts | 6 +- src/events/MessageCreateEvent.ts | 6 +- src/events/ReadyEvent.ts | 6 +- src/events/VoiceStateUpdateEvent.ts | 6 +- src/events/WarnEvent.ts | 6 +- src/structures/BaseCommand.ts | 2 + src/structures/BaseEvent.ts | 2 + src/typings/index.d.ts | 12 ++++ src/utils/decorators/Command.ts | 13 ++++ src/utils/decorators/Event.ts | 13 ++++ .../decorators/createCmdExecuteDecorator.ts | 17 +++++ src/utils/structures/CommandManager.ts | 2 +- 43 files changed, 551 insertions(+), 561 deletions(-) create mode 100644 src/utils/decorators/Command.ts create mode 100644 src/utils/decorators/Event.ts create mode 100644 src/utils/decorators/createCmdExecuteDecorator.ts diff --git a/.swcrc b/.swcrc index 757c11daa..fb3bb912c 100644 --- a/.swcrc +++ b/.swcrc @@ -2,7 +2,8 @@ "jsc": { "parser": { "syntax": "typescript", - "tsx": false + "tsx": false, + "decorators": true }, "target": "es2021" }, diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index e713ac583..a526b9ee2 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -2,22 +2,20 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; import { inspect } from "util"; +@Command({ + aliases: ["evaluate", "ev", "js-exec"], + cooldown: 0, + description: i18n.__("commands.developers.eval.description"), + devOnly: true, + name: "eval", + usage: i18n.__("commands.developers.eval.usage") +}) export class EvalCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["evaluate", "ev", "js-exec"], - cooldown: 0, - description: i18n.__("commands.developers.eval.description"), - devOnly: true, - name: "eval", - usage: i18n.__("commands.developers.eval.usage") - }); - } - public async execute(ctx: CommandContext): Promise { const msg = ctx; const client = this.client; diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 6cd5e3f45..13360e1b6 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -3,6 +3,7 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { createTable } from "../../utils/functions/createTable"; import { BaseCommand } from "../../structures/BaseCommand"; import { formatMS } from "../../utils/functions/formatMS"; +import { Command } from "../../utils/decorators/Command"; import rawonData from "../../../package.json"; import i18n from "../../config"; import { version as DJSVersion } from "discord.js"; @@ -10,19 +11,16 @@ import { uptime } from "os"; const { version: BotVersion } = rawonData; +@Command({ + aliases: ["information", "info", "botinfo", "stats"], + description: i18n.__("commands.general.about.description"), + name: "about", + slash: { + options: [] + }, + usage: "{prefix}about" +}) export class AboutCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["information", "info", "botinfo", "stats"], - description: i18n.__("commands.general.about.description"), - name: "about", - slash: { - options: [] - }, - usage: "{prefix}about" - }); - } - public execute(ctx: CommandContext): void { const values = [ [i18n.__("commands.general.about.osUptimeString"), formatMS(uptime() * 1000)], diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 7b05b92e3..1adb5198e 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -2,6 +2,7 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message, @@ -11,6 +12,21 @@ import { SelectMenuInteraction } from "discord.js"; +@Command({ + aliases: ["h", "command", "commands", "cmd", "cmds"], + description: i18n.__("commands.general.help.description"), + name: "help", + slash: { + options: [ + { + type: "STRING", + name: "command", + description: i18n.__("commands.general.help.slashDescription") + } + ] + }, + usage: i18n.__("commands.general.help.usage") +}) export class HelpCommand extends BaseCommand { private readonly listEmbed = createEmbed("info") .setAuthor({ @@ -29,24 +45,6 @@ export class HelpCommand extends BaseCommand { private readonly infoEmbed = createEmbed("info") .setThumbnail("https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/question_mark.png"); - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["h", "command", "commands", "cmd", "cmds"], - description: i18n.__("commands.general.help.description"), - name: "help", - slash: { - options: [ - { - type: "STRING", - name: "command", - description: i18n.__("commands.general.help.slashDescription") - } - ] - }, - usage: i18n.__("commands.general.help.usage") - }); - } - public async execute(ctx: CommandContext): Promise { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); this.infoEmbed.fields = []; diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index 797ecd4e1..72d8e3c81 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -1,22 +1,20 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Permissions } from "discord.js"; +@Command({ + aliases: ["inv"], + description: i18n.__("commands.general.invite.description"), + name: "invite", + slash: { + options: [] + }, + usage: "{prefix}invite" +}) export class InviteCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["inv"], - description: i18n.__("commands.general.invite.description"), - name: "invite", - slash: { - options: [] - }, - usage: "{prefix}invite" - }); - } - public async execute(ctx: CommandContext): Promise { const invite = this.client.generateInvite({ permissions: [ diff --git a/src/commands/general/PingCommand.ts b/src/commands/general/PingCommand.ts index 62aee650b..15c1ad901 100644 --- a/src/commands/general/PingCommand.ts +++ b/src/commands/general/PingCommand.ts @@ -1,22 +1,20 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { ColorResolvable } from "discord.js"; +@Command({ + aliases: ["pang", "pung", "peng", "pong"], + description: i18n.__("commands.general.ping.description"), + name: "ping", + slash: { + options: [] + }, + usage: "{prefix}ping" +}) export class PingCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["pang", "pung", "peng", "pong"], - description: i18n.__("commands.general.ping.description"), - name: "ping", - slash: { - options: [] - }, - usage: "{prefix}ping" - }); - } - public async execute(ctx: CommandContext): Promise { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); const before = Date.now(); diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index c9022a9f4..a883d05fe 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -1,35 +1,33 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class BanCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - contextUser: "Ban Member", - description: i18n.__("commands.moderation.ban.description"), - name: "ban", - slash: { - options: [ - { - description: i18n.__("commands.moderation.ban.slashMemberIDDescription"), - name: "memberid", - required: true, - type: "STRING" - }, - { - description: i18n.__("commands.moderation.ban.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + contextUser: "Ban Member", + description: i18n.__("commands.moderation.ban.description"), + name: "ban", + slash: { + options: [ + { + description: i18n.__("commands.moderation.ban.slashMemberIDDescription"), + name: "memberid", + required: true, + type: "STRING" }, - usage: i18n.__("commands.moderation.ban.usage") - }); - } - + { + description: i18n.__("commands.moderation.ban.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.ban.usage") +}) +export class BanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index eadaed44c..30d9cfeba 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -1,35 +1,33 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class KickCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - contextUser: "Kick Member", - description: i18n.__("commands.moderation.kick.description"), - name: "kick", - slash: { - options: [ - { - description: i18n.__("commands.moderation.kick.slashMemberDescription"), - name: "member", - required: true, - type: "USER" - }, - { - description: i18n.__("commands.moderation.kick.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + contextUser: "Kick Member", + description: i18n.__("commands.moderation.kick.description"), + name: "kick", + slash: { + options: [ + { + description: i18n.__("commands.moderation.kick.slashMemberDescription"), + name: "member", + required: true, + type: "USER" }, - usage: i18n.__("commands.moderation.kick.usage") - }); - } - + { + description: i18n.__("commands.moderation.kick.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.kick.usage") +}) +export class KickCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("KICK_MEMBERS")) { return ctx.reply({ diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index d23744bde..b08c39d5b 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -1,35 +1,33 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class MuteCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - contextUser: "Mute Member", - description: i18n.__("commands.moderation.mute.description"), - name: "mute", - slash: { - options: [ - { - description: i18n.__("commands.moderation.mute.slashMemberDescription"), - name: "member", - required: true, - type: "USER" - }, - { - description: i18n.__("commands.moderation.mute.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + contextUser: "Mute Member", + description: i18n.__("commands.moderation.mute.description"), + name: "mute", + slash: { + options: [ + { + description: i18n.__("commands.moderation.mute.slashMemberDescription"), + name: "member", + required: true, + type: "USER" }, - usage: i18n.__("commands.moderation.mute.usage") - }); - } - + { + description: i18n.__("commands.moderation.mute.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.mute.usage") +}) +export class MuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 45463170b..d31242122 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -1,28 +1,26 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { TextChannel, Message } from "discord.js"; +@Command({ + description: i18n.__("commands.moderation.purge.description"), + name: "purge", + slash: { + options: [ + { + description: i18n.__("commands.moderation.purge.slashAmountDescription"), + name: "amount", + required: true, + type: "NUMBER" + } + ] + }, + usage: i18n.__("commands.moderation.purge.usage") +}) export class PurgeCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.moderation.purge.description"), - name: "purge", - slash: { - options: [ - { - description: i18n.__("commands.moderation.purge.slashAmountDescription"), - name: "amount", - required: true, - type: "NUMBER" - } - ] - }, - usage: i18n.__("commands.moderation.purge.usage") - }); - } - public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) { return ctx.reply({ diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index 2c3b0f6bf..7c714bb85 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -1,34 +1,32 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class UnBanCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.moderation.unban.description"), - name: "unban", - slash: { - options: [ - { - description: i18n.__("commands.moderation.unban.slashMemberDescription"), - name: "memberid", - required: true, - type: "STRING" - }, - { - description: i18n.__("commands.moderation.unban.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + description: i18n.__("commands.moderation.unban.description"), + name: "unban", + slash: { + options: [ + { + description: i18n.__("commands.moderation.unban.slashMemberDescription"), + name: "memberid", + required: true, + type: "STRING" }, - usage: i18n.__("commands.moderation.unban.usage") - }); - } - + { + description: i18n.__("commands.moderation.unban.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.unban.usage") +}) +export class UnBanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index d55549aec..a33f48903 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -1,35 +1,33 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class UnMuteCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - contextUser: "Un-mute Member", - description: i18n.__("commands.moderation.unmute.description"), - name: "unmute", - slash: { - options: [ - { - description: i18n.__("commands.moderation.unmute.slashMemberDescription"), - name: "member", - required: true, - type: "USER" - }, - { - description: i18n.__("commands.moderation.unmute.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + contextUser: "Un-mute Member", + description: i18n.__("commands.moderation.unmute.description"), + name: "unmute", + slash: { + options: [ + { + description: i18n.__("commands.moderation.unmute.slashMemberDescription"), + name: "member", + required: true, + type: "USER" }, - usage: i18n.__("commands.moderation.unmute.usage") - }); - } - + { + description: i18n.__("commands.moderation.unmute.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.unmute.usage") +}) +export class UnMuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 4614ebf65..0aa5f71a6 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -1,34 +1,32 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class WarnCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.moderation.warn.description"), - name: "warn", - slash: { - options: [ - { - description: i18n.__("commands.moderation.warn.slashMemberDescription"), - name: "member", - required: true, - type: "USER" - }, - { - description: i18n.__("commands.moderation.warn.slashReasonDescription"), - name: "reason", - required: false, - type: "STRING" - } - ] +@Command({ + description: i18n.__("commands.moderation.warn.description"), + name: "warn", + slash: { + options: [ + { + description: i18n.__("commands.moderation.warn.slashMemberDescription"), + name: "member", + required: true, + type: "USER" }, - usage: i18n.__("commands.moderation.warn.usage") - }); - } - + { + description: i18n.__("commands.moderation.warn.slashReasonDescription"), + name: "reason", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.moderation.warn.usage") +}) +export class WarnCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!ctx.member?.permissions.has("MANAGE_GUILD")) { return ctx.reply({ diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 56b5b584d..d25121f91 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -3,31 +3,29 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { ILyricsAPIResult, IQueueSong } from "../../typings"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; import i18n from "../../config"; import { AudioPlayerPlayingState, AudioResource } from "@discordjs/voice"; import { Message } from "discord.js"; +@Command({ + aliases: ["ly", "lyric"], + description: i18n.__("commands.music.lyrics.description"), + name: "lyrics", + slash: { + options: [ + { + description: i18n.__("commands.music.lyrics.slashDescription"), + name: "query", + type: "STRING", + required: false + } + ] + }, + usage: i18n.__("commands.music.lyrics.usage") +}) export class LyricsCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["ly", "lyric"], - description: i18n.__("commands.music.lyrics.description"), - name: "lyrics", - slash: { - options: [ - { - description: i18n.__("commands.music.lyrics.slashDescription"), - name: "query", - type: "STRING", - required: false - } - ] - }, - usage: i18n.__("commands.music.lyrics.usage") - }); - } - public execute(ctx: CommandContext): Promise | undefined { // eslint-disable-next-line no-nested-ternary const query = ctx.args.length >= 1 diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index be205efbe..f6d7bcdc8 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -2,24 +2,22 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { MessageActionRow, MessageButton, MessageEmbed } from "discord.js"; import { AudioPlayerState, AudioResource } from "@discordjs/voice"; +@Command({ + aliases: ["np"], + description: i18n.__("commands.music.nowplaying.description"), + name: "nowplaying", + slash: { + options: [] + }, + usage: "{prefix}nowplaying" +}) export class NowPlayingCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["np"], - description: i18n.__("commands.music.nowplaying.description"), - name: "nowplaying", - slash: { - options: [] - }, - usage: "{prefix}nowplaying" - }); - } - public async execute(ctx: CommandContext): Promise { if (!haveQueue(ctx)) return; diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index 2fcb467ac..c7c12c67f 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -2,21 +2,19 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; +@Command({ + description: i18n.__("commands.music.pause.description"), + name: "pause", + slash: { + options: [] + }, + usage: "{prefix}pause" +}) export class PauseCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.music.pause.description"), - name: "pause", - slash: { - options: [] - }, - usage: "{prefix}pause" - }); - } - public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 95b1e858f..b006e26f9 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -3,31 +3,29 @@ import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { ISong } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; +@Command({ + aliases: ["p", "add"], + description: i18n.__("commands.music.play.description"), + name: "play", + slash: { + description: i18n.__("commands.music.play.description"), + options: [ + { + description: i18n.__("commands.music.play.slashQueryDescription"), + name: "query", + type: "STRING", + required: true + } + ] + }, + usage: i18n.__("commands.music.play.usage") +}) export class PlayCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["p", "add"], - description: i18n.__("commands.music.play.description"), - name: "play", - slash: { - description: i18n.__("commands.music.play.description"), - options: [ - { - description: i18n.__("commands.music.play.slashQueryDescription"), - name: "query", - type: "STRING", - required: true - } - ] - }, - usage: i18n.__("commands.music.play.usage") - }); - } - public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!validVC(ctx)) return; diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index f2f521eb3..1b124dc88 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -3,24 +3,22 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; +@Command({ + aliases: ["q"], + description: i18n.__("commands.music.queue.description"), + name: "queue", + slash: { + options: [] + }, + usage: "{prefix}queue" +}) export class QueueCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["q"], - description: i18n.__("commands.music.queue.description"), - name: "queue", - slash: { - options: [] - }, - usage: "{prefix}queue" - }); - } - public async execute(ctx: CommandContext): Promise { if (!haveQueue(ctx)) return; diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 1ad292f41..2c036d81e 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -4,31 +4,29 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerState, AudioResource } from "@discordjs/voice"; import { Util } from "discord.js"; +@Command({ + description: i18n.__("commands.music.remove.description"), + name: "remove", + slash: { + options: [ + { + description: i18n.__("commands.music.remove.slashPositionsDescription"), + name: "positions", + required: true, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.music.remove.usage") +}) export class RemoveCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.music.remove.description"), - name: "remove", - slash: { - options: [ - { - description: i18n.__("commands.music.remove.slashPositionsDescription"), - name: "positions", - required: true, - type: "STRING" - } - ] - }, - usage: i18n.__("commands.music.remove.usage") - }); - } - public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 15150864c..1f2539be2 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -2,39 +2,37 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { LoopMode } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; -export class RepeatCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["loop", "music-repeat", "music-loop"], - description: i18n.__("commands.music.repeat.description"), - name: "repeat", - slash: { - options: [ - { - description: i18n.__("commands.music.repeat.slashQueue"), - name: "queue", - type: "SUB_COMMAND" - }, - { - description: i18n.__("commands.music.repeat.slashQueue"), - name: "song", - type: "SUB_COMMAND" - }, - { - description: i18n.__("commands.music.repeat.slashDisable"), - name: "disable", - type: "SUB_COMMAND" - } - ] +@Command({ + aliases: ["loop", "music-repeat", "music-loop"], + description: i18n.__("commands.music.repeat.description"), + name: "repeat", + slash: { + options: [ + { + description: i18n.__("commands.music.repeat.slashQueue"), + name: "queue", + type: "SUB_COMMAND" }, - usage: i18n.__("commands.music.repeat.usage", { options: "queue | one | disable" }) - }); - } - + { + description: i18n.__("commands.music.repeat.slashQueue"), + name: "song", + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.music.repeat.slashDisable"), + name: "disable", + type: "SUB_COMMAND" + } + ] + }, + usage: i18n.__("commands.music.repeat.usage", { options: "queue | one | disable" }) +}) +export class RepeatCommand extends BaseCommand { public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index d3e9a63d4..1f5c9e78e 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -2,21 +2,19 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; +@Command({ + description: i18n.__("commands.music.resume.description"), + name: "resume", + slash: { + options: [] + }, + usage: "{prefix}resume" +}) export class ResumeCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.music.resume.description"), - name: "resume", - slash: { - options: [] - }, - usage: "{prefix}resume" - }); - } - public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 55e17997c..103c58082 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -4,6 +4,7 @@ import { inVC, validVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { ISong } from "../../typings"; import i18n from "../../config"; import { @@ -16,43 +17,40 @@ import { Util } from "discord.js"; -export class SearchCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["sc"], - contextChat: "Add to queue", - description: i18n.__("commands.music.search.description"), - name: "search", - slash: { - description: i18n.__("commands.music.search.slashDescription"), - options: [ +@Command({ + aliases: ["sc"], + contextChat: "Add to queue", + description: i18n.__("commands.music.search.description"), + name: "search", + slash: { + description: i18n.__("commands.music.search.slashDescription"), + options: [ + { + description: i18n.__("commands.music.search.slashQueryDescription"), + name: "query", + type: "STRING" + }, + { + choices: [ { - description: i18n.__("commands.music.search.slashQueryDescription"), - name: "query", - type: "STRING" + name: "YouTube", + value: "youtube" }, { - choices: [ - { - name: "YouTube", - value: "youtube" - }, - { - name: "SoundCloud", - value: "soundcloud" - } - ], - description: i18n.__("commands.music.search.slashSourceDescription"), - name: "source", - required: false, - type: "STRING" + name: "SoundCloud", + value: "soundcloud" } - ] - }, - usage: i18n.__("commands.music.search.usage") - }); - } - + ], + description: i18n.__("commands.music.search.slashSourceDescription"), + name: "source", + required: false, + type: "STRING" + } + ] + }, + usage: i18n.__("commands.music.search.usage") +}) +export class SearchCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!validVC(ctx)) return; diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index 3de3e171b..78a10d784 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -2,37 +2,35 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; -export class ShuffleCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - description: i18n.__("commands.music.shuffle.description"), - name: "shuffle", - slash: { - options: [ +@Command({ + description: i18n.__("commands.music.shuffle.description"), + name: "shuffle", + slash: { + options: [ + { + choices: [ + { + name: "ENABLE", + value: "enable" + }, { - choices: [ - { - name: "ENABLE", - value: "enable" - }, - { - name: "DISABLE", - value: "disable" - } - ], - description: i18n.__("commands.music.shuffle.description"), - name: "state", - required: false, - type: "STRING" + name: "DISABLE", + value: "disable" } - ] - }, - usage: "{prefix}shuffle [enable | disable]" - }); - } - + ], + description: i18n.__("commands.music.shuffle.description"), + name: "state", + required: false, + type: "STRING" + } + ] + }, + usage: "{prefix}shuffle [enable | disable]" +}) +export class ShuffleCommand extends BaseCommand { public execute(ctx: CommandContext): void { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 04d8f6a65..4e9dd0fcd 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -3,26 +3,24 @@ import { OperationManager } from "../../utils/structures/OperationManager"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { GuildMember } from "discord.js"; +@Command({ + aliases: ["s"], + description: i18n.__("commands.music.skip.description"), + name: "skip", + slash: { + options: [] + }, + usage: "{prefix}skip" +}) export class SkipCommand extends BaseCommand { private readonly manager = new OperationManager(); - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["s"], - description: i18n.__("commands.music.skip.description"), - name: "skip", - slash: { - options: [] - }, - usage: "{prefix}skip" - }); - } - public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index dc00d86fe..6afb55f5b 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -2,49 +2,47 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import { play } from "../../utils/handlers/GeneralUtil"; import { IQueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { Message } from "discord.js"; -export class SkipToCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["st"], - description: i18n.__("commands.music.skipTo.description"), - name: "skipto", - slash: { +@Command({ + aliases: ["st"], + description: i18n.__("commands.music.skipTo.description"), + name: "skipto", + slash: { + options: [ + { + description: i18n.__("commands.music.skipTo.slashFirstDescription"), + name: "first", + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.music.skipTo.slashLastDescription"), + name: "last", + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.music.skipTo.slashSpecificDescription"), + name: "specific", options: [ { - description: i18n.__("commands.music.skipTo.slashFirstDescription"), - name: "first", - type: "SUB_COMMAND" - }, - { - description: i18n.__("commands.music.skipTo.slashLastDescription"), - name: "last", - type: "SUB_COMMAND" - }, - { - description: i18n.__("commands.music.skipTo.slashSpecificDescription"), - name: "specific", - options: [ - { - description: i18n.__("commands.music.skipTo.slashPositionDescription"), - name: "position", - required: true, - type: "NUMBER" - } - ], - type: "SUB_COMMAND" + description: i18n.__("commands.music.skipTo.slashPositionDescription"), + name: "position", + required: true, + type: "NUMBER" } - ] - }, - usage: i18n.__("commands.music.skipTo.usage", { options: "first | last" }) - }); - } - + ], + type: "SUB_COMMAND" + } + ] + }, + usage: i18n.__("commands.music.skipTo.usage", { options: "first | last" }) +}) +export class SkipToCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 5654c9dd1..8011ca974 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -2,39 +2,37 @@ import { haveQueue, inVC, sameVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { Message } from "discord.js"; -export class StayInQueueCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["stayinvc", "stay", "24/7"], - description: i18n.__("commands.music.stayInQueue.description"), - name: "stayinvoice", - slash: { - options: [ +@Command({ + aliases: ["stayinvc", "stay", "24/7"], + description: i18n.__("commands.music.stayInQueue.description"), + name: "stayinvoice", + slash: { + options: [ + { + choices: [ + { + name: "ENABLE", + value: "enable" + }, { - choices: [ - { - name: "ENABLE", - value: "enable" - }, - { - name: "DISABLE", - value: "disable" - } - ], - description: i18n.__("commands.music.stayInQueue.slashDescription"), - name: "state", - required: false, - type: "STRING" + name: "DISABLE", + value: "disable" } - ] - }, - usage: "{prefix}stayinvc [enable | disable]" - }); - } - + ], + description: i18n.__("commands.music.stayInQueue.slashDescription"), + name: "state", + required: false, + type: "STRING" + } + ] + }, + usage: "{prefix}stayinvc [enable | disable]" +}) +export class StayInQueueCommand extends BaseCommand { public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!haveQueue(ctx)) return; diff --git a/src/commands/music/StopCommand.ts b/src/commands/music/StopCommand.ts index 79c8c7857..e775d2951 100644 --- a/src/commands/music/StopCommand.ts +++ b/src/commands/music/StopCommand.ts @@ -2,21 +2,19 @@ import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; +@Command({ + aliases: ["disconnect", "dc"], + description: i18n.__("commands.music.stop.description"), + name: "stop", + slash: { + options: [] + }, + usage: "{prefix}stop" +}) export class StopCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["disconnect", "dc"], - description: i18n.__("commands.music.stop.description"), - name: "stop", - slash: { - options: [] - }, - usage: "{prefix}stop" - }); - } - public execute(ctx: CommandContext): void { if (!inVC(ctx)) return; if (!validVC(ctx)) return; diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index 658b28da1..de66f0a2e 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -2,30 +2,28 @@ import { inVC, sameVC, validVC } from "../../utils/decorators/MusicUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { Message } from "discord.js"; +@Command({ + aliases: ["vol"], + description: i18n.__("commands.music.volume.description"), + name: "volume", + slash: { + options: [ + { + description: i18n.__("commands.music.volume.slashDescription"), + name: "volume", + type: "NUMBER", + required: false + } + ] + }, + usage: i18n.__("commands.music.volume.usage") +}) export class VolumeCommand extends BaseCommand { - public constructor(client: BaseCommand["client"]) { - super(client, { - aliases: ["vol"], - description: i18n.__("commands.music.volume.description"), - name: "volume", - slash: { - options: [ - { - description: i18n.__("commands.music.volume.slashDescription"), - name: "volume", - type: "NUMBER", - required: false - } - ] - }, - usage: i18n.__("commands.music.volume.usage") - }); - } - public execute(ctx: CommandContext): Promise | undefined { if (!inVC(ctx)) return; if (!validVC(ctx)) return; diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index d5c031800..791e853e4 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -1,14 +1,12 @@ import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; import { entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { GuildChannel, VoiceChannel } from "discord.js"; import i18n from "i18n"; +@Event("channelUpdate") export class ChannelUpdateEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "channelUpdate"); - } - public async execute(oldChannel: GuildChannel, newChannel: GuildChannel): Promise { if (!newChannel.guild.queue || newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || diff --git a/src/events/DebugEvent.ts b/src/events/DebugEvent.ts index 6018f0453..bb35d21b8 100644 --- a/src/events/DebugEvent.ts +++ b/src/events/DebugEvent.ts @@ -1,10 +1,8 @@ import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; +@Event("debug") export class DebugEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "debug"); - } - public execute(message: string): void { this.client.logger.debug(message); } diff --git a/src/events/ErrorEvent.ts b/src/events/ErrorEvent.ts index f38f0f75f..208ce7f35 100644 --- a/src/events/ErrorEvent.ts +++ b/src/events/ErrorEvent.ts @@ -1,10 +1,8 @@ import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; +@Event("error") export class ErrorEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "error"); - } - public execute(error: string): void { this.client.logger.error("CLIENT_ERROR:", error); } diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index bc897824c..b42958420 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -1,14 +1,12 @@ import { CommandContext } from "../structures/CommandContext"; import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; import i18n from "../config"; import { BitFieldResolvable, Interaction, Permissions, PermissionString } from "discord.js"; +@Event("interactionCreate") export class InteractionCreateEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "interactionCreate"); - } - public async execute(interaction: Interaction): Promise { if (!interaction.inGuild() || !this.client.commands.isReady) return; diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index 430180e1a..b1e48a89c 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -1,13 +1,11 @@ import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; import i18n from "../config"; import { Message, User } from "discord.js"; +@Event("messageCreate") export class MessageCreateEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "messageCreate"); - } - public execute(message: Message): Message | undefined { if (message.author.bot || message.channel.type === "DM" || diff --git a/src/events/ReadyEvent.ts b/src/events/ReadyEvent.ts index 63e7714ba..c7ebb24de 100644 --- a/src/events/ReadyEvent.ts +++ b/src/events/ReadyEvent.ts @@ -1,11 +1,9 @@ import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; import { Presence } from "discord.js"; +@Event("ready") export class ReadyEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "ready"); - } - public async execute(): Promise { if (this.client.application?.owner) { this.client.config.owners.push(this.client.application.owner.id); diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 766f2ebfb..8d166e4b2 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -2,16 +2,14 @@ import { createEmbed } from "../utils/functions/createEmbed"; import { ServerQueue } from "../structures/ServerQueue"; import { formatMS } from "../utils/functions/formatMS"; import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; import { IQueueSong } from "../typings"; import i18n from "../config"; import { AudioPlayerPausedState, entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { Message, StageChannel, VoiceState, VoiceChannel } from "discord.js"; +@Event("voiceStateUpdate") export class VoiceStateUpdateEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "voiceStateUpdate"); - } - public async execute(oldState: VoiceState, newState: VoiceState): Promise { const queue = newState.guild.queue; if (!queue) return; diff --git a/src/events/WarnEvent.ts b/src/events/WarnEvent.ts index 10b896ce2..8cba6dd75 100644 --- a/src/events/WarnEvent.ts +++ b/src/events/WarnEvent.ts @@ -1,10 +1,8 @@ import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; +@Event("warn") export class WarnEvent extends BaseEvent { - public constructor(client: BaseEvent["client"]) { - super(client, "warn"); - } - public execute(warn: string): void { this.client.logger.warn("CLIENT_WARN:", warn); } diff --git a/src/structures/BaseCommand.ts b/src/structures/BaseCommand.ts index 1eac42ca5..c22bfc219 100644 --- a/src/structures/BaseCommand.ts +++ b/src/structures/BaseCommand.ts @@ -7,3 +7,5 @@ export abstract class BaseCommand implements ICommandComponent { public abstract execute(ctx: CommandContext): any; } + +export type ExtendedCommandConstructor = new (...args: ConstructorParameters) => BaseCommand; diff --git a/src/structures/BaseEvent.ts b/src/structures/BaseEvent.ts index 7674a8e74..9c12c7b44 100644 --- a/src/structures/BaseEvent.ts +++ b/src/structures/BaseEvent.ts @@ -6,3 +6,5 @@ export abstract class BaseEvent implements IEvent { public abstract execute(...args: any): any; } + +export type ExtendedEventConstructor = new (...args: ConstructorParameters) => BaseEvent; diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 6f01202e2..76792b7d5 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -182,3 +182,15 @@ export interface SpotifyTrack { export interface SpotifyArtist { tracks: SpotifyTrack[]; } + +export type NonAbstractConstructor = new (...args: any[]) => Result; +export type Constructor = + | NonAbstractConstructor + | (abstract new (...args: any[]) => Result); + +export type MethodDecorator = ( + target: Target, + propertyKey: string, + descriptor: PropertyDescriptor) => Result; +export type ClassDecorator = (target: Target) => Result; +export type Promisable = Output | Promise; diff --git a/src/utils/decorators/Command.ts b/src/utils/decorators/Command.ts new file mode 100644 index 000000000..8cf52ecd9 --- /dev/null +++ b/src/utils/decorators/Command.ts @@ -0,0 +1,13 @@ +import { BaseCommand, ExtendedCommandConstructor } from "../../structures/BaseCommand"; +import { ClassDecorator, NonAbstractConstructor, ICommandComponent } from "../../typings"; + +export function Command = ExtendedCommandConstructor>( + meta: ICommandComponent["meta"] +): ClassDecorator { + return target => new Proxy(target, { + construct: ( + trgt, + args: [BaseCommand["client"]] + ) => new trgt(...args, meta) + }); +} diff --git a/src/utils/decorators/Event.ts b/src/utils/decorators/Event.ts new file mode 100644 index 000000000..c957193b7 --- /dev/null +++ b/src/utils/decorators/Event.ts @@ -0,0 +1,13 @@ +import { BaseEvent, ExtendedEventConstructor } from "../../structures/BaseEvent"; +import { ClassDecorator, IEvent, NonAbstractConstructor } from "../../typings"; + +export function Event = ExtendedEventConstructor>( + event: IEvent["name"] +): ClassDecorator { + return target => new Proxy(target, { + construct: ( + trgt, + args: [BaseEvent["client"]] + ) => new trgt(...args, event) + }); +} diff --git a/src/utils/decorators/createCmdExecuteDecorator.ts b/src/utils/decorators/createCmdExecuteDecorator.ts new file mode 100644 index 000000000..d1911a6b9 --- /dev/null +++ b/src/utils/decorators/createCmdExecuteDecorator.ts @@ -0,0 +1,17 @@ +import { BaseCommand } from "../../structures/BaseCommand"; +import { MethodDecorator, Promisable } from "../../typings"; + +export function createCmdExecuteDecorator( + func: (...args: Parameters) => Promisable +): MethodDecorator { + return (target, _, descriptor) => { + const originalMethod = descriptor.value as BaseCommand["execute"]; + + descriptor.value = async function value(...args: Parameters) { + const res = await func(...args); + if (res === false) return; + + return originalMethod.apply(this, args); + }; + }; +} diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index 3364b023a..dca9d99ad 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -37,7 +37,7 @@ export class CommandManager extends Collection { for (const file of files) { try { const path = pathStringToURLString(resolve(this.path, category, file)); - const command = await this.client.utils.import(path, this.client, { category, path }); + const command = await this.client.utils.import(path, this.client); if (command === undefined) throw new Error(`File ${file} is not a valid command file.`); From 78b857b9c2c72cbf81d8cad7cc3eb2088a37e6b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 09:37:40 +0700 Subject: [PATCH 069/411] chore(deps-dev): bump @types/node from 17.0.16 to 17.0.17 (#766) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.16 to 17.0.17. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 +++++++-------- package.json | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f59fdcf8..4d821c14f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", - "play-dl": "^1.8.7", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -27,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.16", + "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", "eslint": "^8.8.0", @@ -556,9 +555,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.16.tgz", - "integrity": "sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==" + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -3032,9 +3031,9 @@ } }, "@types/node": { - "version": "17.0.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.16.tgz", - "integrity": "sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==" + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index d223af676..a0d5e823e 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.16", + "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", "eslint": "^8.8.0", From 6d54a2228d38b1eec3712d62f15193c0ae70cdd2 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 09:53:17 +0700 Subject: [PATCH 070/411] chore(deps): regenerate lockfile --- package-lock.json | 253 +--------------------------------------------- 1 file changed, 1 insertion(+), 252 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d821c14f..32bb5ee97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { @@ -312,186 +313,6 @@ "@swc/core-win32-x64-msvc": "1.2.138" } }, - "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", - "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-android-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", - "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", - "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", - "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", - "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", - "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", - "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", - "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", - "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", - "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", - "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", - "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/core-win32-x64-msvc": { "version": "1.2.138", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", @@ -2908,78 +2729,6 @@ "@swc/core-win32-x64-msvc": "1.2.138" } }, - "@swc/core-android-arm-eabi": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", - "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", - "optional": true - }, - "@swc/core-android-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", - "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", - "optional": true - }, - "@swc/core-darwin-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", - "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", - "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", - "optional": true - }, - "@swc/core-freebsd-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", - "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", - "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", - "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", - "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", - "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", - "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", - "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", - "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", - "optional": true - }, "@swc/core-win32-x64-msvc": { "version": "1.2.138", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", From 1ff1dec116721a2bb84db8203f3eeffe8a774b39 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 09:56:30 +0700 Subject: [PATCH 071/411] chore(readme): reorder Hosting field --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b43ca1cd2..59666029e 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,6 @@ You can host this bot to make it stay online on Heroku. Deploy to Heroku -### Railway -Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. - -**IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. - -Deploy on Railway - ### Glitch You can use Glitch too for this project, featured with its code editor. @@ -63,6 +55,14 @@ You can use Glitch too for this project, featured with its code editor. Remix on Glitch +### Railway +Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. + +**IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. + +Deploy on Railway + ## Project Maintainer - [@Mednoob](https://github.com/Mednoob) - [@mzrtamp](https://github.com/mzrtamp) From a5a8dfa3b7c7c164f71e91bc14dcf1ce3f6ebb86 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:06:27 +0700 Subject: [PATCH 072/411] fix(ci): resolve eslint errors Stress --- src/utils/handlers/general/searchTrack.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index 421cee230..d5374bbcf 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -1,3 +1,5 @@ +// eslint-disable-next-line max-len +/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions */ import { ISong, SearchTrackResult, SpotifyTrack } from "../../../typings"; import { Rawon } from "../../../structures/Rawon"; import { checkQuery } from "./checkQuery"; From dbfd98957f8d1b3cd82a6482329699d82dc8fdad Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:09:34 +0700 Subject: [PATCH 073/411] revert: fix(ci): resolve eslint errors Gajelas ajg --- src/utils/handlers/general/searchTrack.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index d5374bbcf..421cee230 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -1,5 +1,3 @@ -// eslint-disable-next-line max-len -/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions */ import { ISong, SearchTrackResult, SpotifyTrack } from "../../../typings"; import { Rawon } from "../../../structures/Rawon"; import { checkQuery } from "./checkQuery"; From f8fcba1f9fd6cf3175650959b969c8b1fbf12cc9 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:17:37 +0700 Subject: [PATCH 074/411] chore(config): tidy up the file --- src/config.ts | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/config.ts b/src/config.ts index 84db3df0a..efc543dc4 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,13 +1,5 @@ +import { ActivityType, ClientOptions, ClientPresenceStatus, Intents, Options, ShardingManagerMode, Sweepers } from "discord.js"; import { IpresenceData } from "./typings"; -import { - ActivityType, - ClientOptions, - ClientPresenceStatus, - Intents, - Options, - ShardingManagerMode, - Sweepers -} from "discord.js"; import { join } from "path"; import i18n from "i18n"; @@ -42,14 +34,15 @@ export const clientOptions: ClientOptions = { }; export const shardsCount: number | "auto" = "auto"; export const shardingMode: ShardingManagerMode = "worker"; -export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; -export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; -export const owners: string[] = JSON.parse(process.env.OWNERS ?? "[]"); -export const devGuild = JSON.parse(process.env.DEV_GUILD ?? "[]"); export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const isProd = !isDev; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; export const altPrefixes: string[] = (JSON.parse(process.env.ALT_PREFIX! || "[\"{mention}\"]") as string[]).filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); +export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; +export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; +export const owners: string[] = JSON.parse(process.env.OWNERS ?? "[]"); +export const devGuild = JSON.parse(process.env.DEV_GUILD ?? "[]"); +export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; @@ -58,7 +51,6 @@ export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; -export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; export const presenceData: IpresenceData = { activities: (JSON.parse(process.env.ACTIVITIES! || "[]") as string[]).map((x, i) => ({ From 9647b219f990d6db5d2f5d1760432bf563e2d066 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:29:23 +0700 Subject: [PATCH 075/411] chore(deps): regenerate lockfile --- package-lock.json | 587 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 405 insertions(+), 182 deletions(-) diff --git a/package-lock.json b/package-lock.json index 32bb5ee97..c8328180d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -112,9 +112,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -132,23 +132,18 @@ "dev": true }, "node_modules/@messageformat/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.0.tgz", - "integrity": "sha512-mzMCyADGweNmnMwV/xjKxtXtkXJNVcK5ATOHx4Q0GVr2Z3++in1VfrB/y6jM43nleK27tFO0Y/9pds5vxWqDvQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", "dependencies": { "@messageformat/date-skeleton": "^1.0.0", "@messageformat/number-skeleton": "^1.0.0", "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.0", - "make-plural": "^6.2.1", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", "safe-identifier": "^0.4.1" } }, - "node_modules/@messageformat/core/node_modules/make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - }, "node_modules/@messageformat/date-skeleton": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", @@ -168,18 +163,13 @@ } }, "node_modules/@messageformat/runtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.0.tgz", - "integrity": "sha512-boV0oH8jnJM/qoynQKnIbnKK5M7JPpKM0y9QUB9nQMMt16qSlgi5FfUo8usgoq6wEYqxDmIqtUfBewcj2VP+yQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", "dependencies": { - "make-plural": "^6.2.1" + "make-plural": "^7.0.0" } }, - "node_modules/@messageformat/runtime/node_modules/make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -240,18 +230,18 @@ } }, "node_modules/@sapphire/async-queue": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", - "integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", + "integrity": "sha512-O5ND5Ljpef86X5oy8zXorQ754TMjWALcPSAgPBu4+76HLtDTrNoDyzU2uGE2G4A8Wv51u0MXHzGQ0WZ4GMtpIw==", "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, "node_modules/@sindresorhus/is": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.3.0.tgz", - "integrity": "sha512-wwOvh0eO3PiTEivGJWiZ+b946SlMSb4pe+y+Ur/4S87cwo09pYi+FWHHnbrM3W9W7cBYKDqQXcrFYjYUCOJUEQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz", + "integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==", "engines": { "node": ">=10" }, @@ -313,6 +303,186 @@ "@swc/core-win32-x64-msvc": "1.2.138" } }, + "node_modules/@swc/core-android-arm-eabi": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", + "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-android-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", + "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", + "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", + "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-freebsd-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", + "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", + "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", + "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", + "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", + "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", + "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", + "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", + "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/core-win32-x64-msvc": { "version": "1.2.138", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", @@ -748,6 +918,28 @@ "node": ">=8" } }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1222,18 +1414,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1334,15 +1514,15 @@ } }, "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "funding": [ { "type": "individual", @@ -1389,14 +1569,11 @@ "dev": true }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1435,9 +1612,9 @@ } }, "node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1495,28 +1672,6 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1705,9 +1860,9 @@ "dev": true }, "node_modules/keyv": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", - "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", + "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", "dependencies": { "json-buffer": "3.0.1" } @@ -1732,11 +1887,14 @@ "dev": true }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -1752,9 +1910,9 @@ } }, "node_modules/make-plural": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.0.0.tgz", - "integrity": "sha512-OTuzMnuhrc7G3LJU5upkhKy7EIAq/dRqANqTUh0B8au7jM5mXq9kVdla3sn3g2GCRIxgooCDQtSJ3s1fAjasbQ==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" }, "node_modules/math-interval-parser": { "version": "2.0.1", @@ -1827,9 +1985,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -2153,6 +2311,14 @@ "lowercase-keys": "^2.0.0" } }, + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -2241,9 +2407,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "optional": true }, "node_modules/slash": { @@ -2474,9 +2640,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", "engines": { "node": ">=10.0.0" }, @@ -2587,9 +2753,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2604,23 +2770,16 @@ "dev": true }, "@messageformat/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.0.tgz", - "integrity": "sha512-mzMCyADGweNmnMwV/xjKxtXtkXJNVcK5ATOHx4Q0GVr2Z3++in1VfrB/y6jM43nleK27tFO0Y/9pds5vxWqDvQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", "requires": { "@messageformat/date-skeleton": "^1.0.0", "@messageformat/number-skeleton": "^1.0.0", "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.0", - "make-plural": "^6.2.1", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", "safe-identifier": "^0.4.1" - }, - "dependencies": { - "make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - } } }, "@messageformat/date-skeleton": { @@ -2642,18 +2801,11 @@ } }, "@messageformat/runtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.0.tgz", - "integrity": "sha512-boV0oH8jnJM/qoynQKnIbnKK5M7JPpKM0y9QUB9nQMMt16qSlgi5FfUo8usgoq6wEYqxDmIqtUfBewcj2VP+yQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", "requires": { - "make-plural": "^6.2.1" - }, - "dependencies": { - "make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - } + "make-plural": "^7.0.0" } }, "@nodelib/fs.scandir": { @@ -2689,14 +2841,14 @@ } }, "@sapphire/async-queue": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", - "integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", + "integrity": "sha512-O5ND5Ljpef86X5oy8zXorQ754TMjWALcPSAgPBu4+76HLtDTrNoDyzU2uGE2G4A8Wv51u0MXHzGQ0WZ4GMtpIw==" }, "@sindresorhus/is": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.3.0.tgz", - "integrity": "sha512-wwOvh0eO3PiTEivGJWiZ+b946SlMSb4pe+y+Ur/4S87cwo09pYi+FWHHnbrM3W9W7cBYKDqQXcrFYjYUCOJUEQ==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz", + "integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==" }, "@swc/cli": { "version": "0.1.55", @@ -2729,6 +2881,78 @@ "@swc/core-win32-x64-msvc": "1.2.138" } }, + "@swc/core-android-arm-eabi": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", + "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "optional": true + }, + "@swc/core-android-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", + "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "optional": true + }, + "@swc/core-darwin-arm64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", + "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", + "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "optional": true + }, + "@swc/core-freebsd-x64": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", + "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", + "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", + "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", + "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", + "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", + "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", + "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.2.138", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", + "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "optional": true + }, "@swc/core-win32-x64-msvc": { "version": "1.2.138", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", @@ -3027,6 +3251,21 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^6.0.1", "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } } }, "callsites": { @@ -3372,14 +3611,6 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "optional": true - } } }, "fast-deep-equal": { @@ -3466,15 +3697,15 @@ } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" }, "form-data": { "version": "4.0.0", @@ -3504,12 +3735,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "glob": { "version": "7.2.0", @@ -3535,9 +3763,9 @@ } }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -3575,18 +3803,6 @@ "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - } } }, "has-flag": { @@ -3729,9 +3945,9 @@ "dev": true }, "keyv": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", - "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", + "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", "requires": { "json-buffer": "3.0.1" } @@ -3753,9 +3969,9 @@ "dev": true }, "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, "lru-cache": { "version": "6.0.0", @@ -3767,9 +3983,9 @@ } }, "make-plural": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.0.0.tgz", - "integrity": "sha512-OTuzMnuhrc7G3LJU5upkhKy7EIAq/dRqANqTUh0B8au7jM5mXq9kVdla3sn3g2GCRIxgooCDQtSJ3s1fAjasbQ==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" }, "math-interval-parser": { "version": "2.0.1", @@ -3821,9 +4037,9 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -4026,6 +4242,13 @@ "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } } }, "reusify": { @@ -4080,9 +4303,9 @@ "devOptional": true }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "optional": true }, "slash": { @@ -4260,9 +4483,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", "requires": {} }, "yallist": { From d8c73dcbe32e9bf37b50b78d90b712967d65de55 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:30:14 +0700 Subject: [PATCH 076/411] ci(test): use npm i instead of npm ci --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4aca49c62..0ee0249d9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: check-latest: true - name: Install dependencies - run: npm ci + run: npm i - name: Lint code run: npm run lint @@ -47,7 +47,7 @@ jobs: check-latest: true - name: Install dependencies - run: npm ci + run: npm i - name: Test compile run: npm run tscompile && rm -rf dist From a76ce5a849afb30f37ae06009d4a80b0485e71c7 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 10:38:56 +0700 Subject: [PATCH 077/411] revert: ci(test): use npm i instead of npm ci --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0ee0249d9..4aca49c62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: check-latest: true - name: Install dependencies - run: npm i + run: npm ci - name: Lint code run: npm run lint @@ -47,7 +47,7 @@ jobs: check-latest: true - name: Install dependencies - run: npm i + run: npm ci - name: Test compile run: npm run tscompile && rm -rf dist From 45b20cd97d1d344b622d4493caba85973fc82bee Mon Sep 17 00:00:00 2001 From: Mednoob Date: Fri, 11 Feb 2022 14:58:25 +0900 Subject: [PATCH 078/411] fix: trying to fix github linter bug --- src/utils/handlers/YouTubeUtil.ts | 6 +++--- src/utils/handlers/general/searchTrack.ts | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/utils/handlers/YouTubeUtil.ts b/src/utils/handlers/YouTubeUtil.ts index 53eb3a189..91ec3bfac 100644 --- a/src/utils/handlers/YouTubeUtil.ts +++ b/src/utils/handlers/YouTubeUtil.ts @@ -1,5 +1,5 @@ -import YTinfo from "youtubei"; +import YTI from "youtubei"; -const { Client } = YTinfo; +const { Client } = YTI; -export const youtube: YTinfo.Client = new Client(); +export const youtube = new Client(); diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index 421cee230..8149f0cca 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -3,9 +3,11 @@ import { Rawon } from "../../../structures/Rawon"; import { checkQuery } from "./checkQuery"; import { youtube } from "../YoutubeUtil"; import { getInfo } from "../YTDLUtil"; -import { SearchResult, Video } from "youtubei"; +import { Client, SearchResult, Video } from "youtubei"; import { URL } from "url"; +const ytClient: Client = youtube; + export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { const result: SearchTrackResult = { items: [] @@ -66,7 +68,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "youtube": { switch (queryData.type) { case "track": { - const track = await youtube.getVideo( + const track = await ytClient.getVideo( (/youtu\.be/g).exec(url.hostname) ? url.pathname.replace("/", "") : url.toString() @@ -85,7 +87,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl } case "playlist": { - const playlist = await youtube.getPlaylist(url.toString()); + const playlist = await ytClient.getPlaylist(url.toString()); if (playlist) { const tracks = await Promise.all(playlist.videos.map((track): ISong => ({ From fc6cf63c4572a6a208eaffac7f9115478f143332 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Fri, 11 Feb 2022 15:05:44 +0900 Subject: [PATCH 079/411] fix(searchTrack): trying to fix github linter issue --- src/utils/handlers/general/searchTrack.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index 8149f0cca..e0fae7df7 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -136,7 +136,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl switch (queryData.type) { case "track": { const songData = await client.spotify.resolveTracks(url.toString()) as unknown as SpotifyTrack; - const track = sortVideos(songData, await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { type: "video" }))[0]; + const track = sortVideos(songData, await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { type: "video" }) as SearchResult<"video">)[0]; result.items = [{ duration: track.duration === null ? 0 : track.duration, @@ -151,7 +151,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "playlist": { const songs = await client.spotify.resolveTracks(url.toString()) as unknown as { track: SpotifyTrack }[]; const tracks = await Promise.all(songs.map(async (x): Promise => { - const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }))[0]; + const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }) as SearchResult<"video">)[0]; return { duration: track.duration === null ? 0 : track.duration, id: track.id, From f5ed4caaf9ebbcabe5e3a59d920c9e55d36290c4 Mon Sep 17 00:00:00 2001 From: Mednoob Date: Fri, 11 Feb 2022 15:23:35 +0900 Subject: [PATCH 080/411] fix(searchTrack): finally found the reason why it's having error --- src/utils/handlers/general/searchTrack.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index e0fae7df7..009fbde66 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -1,13 +1,11 @@ import { ISong, SearchTrackResult, SpotifyTrack } from "../../../typings"; import { Rawon } from "../../../structures/Rawon"; import { checkQuery } from "./checkQuery"; -import { youtube } from "../YoutubeUtil"; +import { youtube } from "../YouTubeUtil"; import { getInfo } from "../YTDLUtil"; -import { Client, SearchResult, Video } from "youtubei"; +import { SearchResult, Video } from "youtubei"; import { URL } from "url"; -const ytClient: Client = youtube; - export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise { const result: SearchTrackResult = { items: [] @@ -68,7 +66,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "youtube": { switch (queryData.type) { case "track": { - const track = await ytClient.getVideo( + const track = await youtube.getVideo( (/youtu\.be/g).exec(url.hostname) ? url.pathname.replace("/", "") : url.toString() @@ -87,7 +85,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl } case "playlist": { - const playlist = await ytClient.getPlaylist(url.toString()); + const playlist = await youtube.getPlaylist(url.toString()); if (playlist) { const tracks = await Promise.all(playlist.videos.map((track): ISong => ({ From 28a3a49cbd6d99810694d84bb057b4354617be45 Mon Sep 17 00:00:00 2001 From: mzrtamp Date: Fri, 11 Feb 2022 15:14:44 +0700 Subject: [PATCH 081/411] chore(github): reduce unnecessary enhancement label usage --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index d8a2c11cc..d36c64d4b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,7 @@ name: Feature Request title: "[Features] " description: Suggest an idea for this project -labels: [enhancement] +labels: [] body: - type: textarea From 32891a0e28b1fbb7fea9881f2b5861f9aee0e2b8 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 11 Feb 2022 15:15:56 +0700 Subject: [PATCH 082/411] chore(*): tidy up, respect eslint, reorder, and more --- src/bot.ts | 2 +- src/commands/developers/EvalCommand.ts | 4 +- src/commands/general/AboutCommand.ts | 12 ++- src/commands/general/HelpCommand.ts | 86 ++++++++----------- src/commands/general/InviteCommand.ts | 21 ++--- src/commands/moderation/BanCommand.ts | 61 ++++--------- src/commands/moderation/KickCommand.ts | 39 +++------ src/commands/moderation/MuteCommand.ts | 46 ++++------ src/commands/moderation/PurgeCommand.ts | 24 ++---- src/commands/moderation/UnBanCommand.ts | 28 ++---- src/commands/moderation/UnMuteCommand.ts | 72 ++++++---------- src/commands/moderation/WarnCommand.ts | 20 +---- src/commands/music/LyricsCommand.ts | 18 ++-- src/commands/music/NowPlayingCommand.ts | 21 ++--- src/commands/music/PauseCommand.ts | 8 +- src/commands/music/PlayCommand.ts | 35 +++----- src/commands/music/RemoveCommand.ts | 13 +-- src/commands/music/RepeatCommand.ts | 26 +++--- src/commands/music/ResumeCommand.ts | 8 +- src/commands/music/SearchCommand.ts | 45 +++------- src/commands/music/ShuffleCommand.ts | 26 ++---- src/commands/music/SkipCommand.ts | 12 +-- src/commands/music/SkipToCommand.ts | 36 +++----- src/commands/music/StayInQueueCommand.ts | 27 ++---- src/commands/music/StopCommand.ts | 4 +- src/commands/music/VolumeCommand.ts | 35 +++----- src/events/ChannelUpdateEvent.ts | 16 +--- src/events/InteractionCreateEvent.ts | 24 ++---- src/events/MessageCreateEvent.ts | 13 +-- src/events/VoiceStateUpdateEvent.ts | 78 ++++------------- src/index.ts | 2 +- src/structures/CommandContext.ts | 4 +- src/typings/index.d.ts | 12 +-- src/utils/decorators/Command.ts | 2 +- .../decorators/createCmdExecuteDecorator.ts | 2 +- src/utils/handlers/GeneralUtil.ts | 4 +- src/utils/handlers/SoundCloudUtil.ts | 4 +- src/utils/handlers/SpotifyUtil.ts | 2 +- src/utils/handlers/YTDLUtil.ts | 2 +- src/utils/handlers/general/handleVideos.ts | 2 +- src/utils/handlers/general/play.ts | 10 +-- src/utils/structures/ButtonPagination.ts | 12 +-- src/utils/structures/RawonLogger.ts | 1 - 43 files changed, 283 insertions(+), 636 deletions(-) diff --git a/src/bot.ts b/src/bot.ts index 6cfb27e7c..d1658f7d9 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -1,6 +1,6 @@ import { NoStackError } from "./utils/structures/NoStackError"; -import { clientOptions } from "./config"; import { Rawon } from "./structures/Rawon"; +import { clientOptions } from "./config"; const client = new Rawon(clientOptions); diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index a526b9ee2..7547328b3 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -27,9 +27,7 @@ export class EvalCommand extends BaseCommand { const code = ctx.args.join(" "); if (!code) { return await ctx.send({ - embeds: [ - createEmbed("error", i18n.__("commands.developers.eval.noCode"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.developers.eval.noCode"), true)] }); } diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 13360e1b6..49c74f9dd 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -37,14 +37,12 @@ export class AboutCommand extends BaseCommand { const value = createTable(values); void ctx.reply({ - embeds: [ - createEmbed("info", `\`\`\`asciidoc\n${value}\n\`\`\``) - .setAuthor({ - name: i18n.__mf("commands.general.about.aboutFooter", { - botname: this.client.user?.username ?? "Unknown" - }) + embeds: [createEmbed("info", `\`\`\`asciidoc\n${value}\n\`\`\``) + .setAuthor({ + name: i18n.__mf("commands.general.about.aboutFooter", { + botname: this.client.user?.username ?? "Unknown" }) - ] + })] }).catch(e => this.client.logger.error("ABOUT_CMD_ERR:", e)); } } diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 1adb5198e..b570d50f2 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -4,13 +4,7 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; -import { - Message, - MessageActionRow, - MessageSelectMenu, - MessageSelectOptionData, - SelectMenuInteraction -} from "discord.js"; +import { Message, MessageActionRow, MessageSelectMenu, MessageSelectOptionData, SelectMenuInteraction } from "discord.js"; @Command<typeof HelpCommand>({ aliases: ["h", "command", "commands", "cmd", "cmds"], @@ -80,9 +74,7 @@ export class HelpCommand extends BaseCommand { const matching = this.generateSelectMenu(val, ctx.author.id); if (!matching.length) { return ctx.send({ - embeds: [ - createEmbed("error", i18n.__("commands.general.help.noCommand"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.general.help.noCommand"), true)] }, "editReply"); } @@ -117,44 +109,42 @@ export class HelpCommand extends BaseCommand { } // Return information embed return ctx.send({ - embeds: [ - this.infoEmbed - .setAuthor({ - name: i18n.__mf("commands.general.help.commandDetailTitle", { - username: this.client.user!.username, - command: command.meta.name - }), - iconURL: this.client.user?.displayAvatarURL()! - }) - .addField( - i18n.__("commands.general.help.nameString"), - `**\`${command.meta.name}\`**`, - false - ) - .addField( - i18n.__("commands.general.help.descriptionString"), - `${command.meta.description!}`, - true - ) - .addField( - i18n.__("commands.general.help.aliasesString"), - Number(command.meta.aliases?.length) > 0 - ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! - : "None." - , false - ) - .addField( - i18n.__("commands.general.help.usageString"), - `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, - true - ) - .setFooter({ - text: i18n.__mf("commands.general.help.commandUsageFooter", { - devOnly: command.meta.devOnly ? "(developer-only command)" : "" - }), - iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/.github/images/info.png" - }) - ] + embeds: [this.infoEmbed + .setAuthor({ + name: i18n.__mf("commands.general.help.commandDetailTitle", { + username: this.client.user!.username, + command: command.meta.name + }), + iconURL: this.client.user?.displayAvatarURL()! + }) + .addField( + i18n.__("commands.general.help.nameString"), + `**\`${command.meta.name}\`**`, + false + ) + .addField( + i18n.__("commands.general.help.descriptionString"), + `${command.meta.description!}`, + true + ) + .addField( + i18n.__("commands.general.help.aliasesString"), + Number(command.meta.aliases?.length) > 0 + ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! + : "None." + , false + ) + .addField( + i18n.__("commands.general.help.usageString"), + `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, + true + ) + .setFooter({ + text: i18n.__mf("commands.general.help.commandUsageFooter", { + devOnly: command.meta.devOnly ? "(developer-only command)" : "" + }), + iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/.github/images/info.png" + })] }, "editReply"); } diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index 72d8e3c81..873a5139a 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -36,19 +36,14 @@ export class InviteCommand extends BaseCommand { scopes: ["bot", "applications.commands"] }); await ctx.send({ - embeds: [ - createEmbed( - "info", - i18n.__mf("commands.general.invite.clickURL", { - url: invite - }) - ).setAuthor({ - name: i18n.__mf("commands.general.invite.inviteTitle", { - bot: this.client.user?.username - }), - iconURL: this.client.user!.displayAvatarURL() - }) - ] + embeds: [createEmbed("info", i18n.__mf("commands.general.invite.clickURL", { + url: invite + })).setAuthor({ + name: i18n.__mf("commands.general.invite.inviteTitle", { + bot: this.client.user?.username + }), + iconURL: this.client.user!.displayAvatarURL() + })] }).catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); } } diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index a883d05fe..81e3ad834 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -31,16 +31,12 @@ export class BanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] }); } @@ -52,16 +48,12 @@ export class BanCommand extends BaseCommand { if (!user) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } if (!resolved?.bannable) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.ban.userNoBannable"), true) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.ban.userNoBannable"), true)] }); } @@ -72,24 +64,19 @@ export class BanCommand extends BaseCommand { const dm = await user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [ - createEmbed( - "error", - i18n.__mf("commands.moderation.ban.userBanned", { - guildName: ctx.guild.name - }) - ) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf( - "commands.moderation.ban.bannedByString", { - guildName: ctx.author.tag - } - ), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now()) - ] + embeds: [createEmbed("error", i18n.__mf("commands.moderation.ban.userBanned", { + guildName: ctx.guild.name + })) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf( + "commands.moderation.ban.bannedByString", { + guildName: ctx.author.tag + } + ), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now())] }); } } @@ -100,23 +87,13 @@ export class BanCommand extends BaseCommand { if (ban instanceof Error) { return ctx.reply({ embeds: [ - createEmbed( - "error", - i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), - true - ) + createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true) ] }); } return ctx.reply({ - embeds: [ - createEmbed( - "success", - i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), - true - ) - ] + embeds: [createEmbed("success", i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), true)] }); } } diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index 30d9cfeba..a397b09de 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -31,16 +31,12 @@ export class KickCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("KICK_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.kick.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.kick.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("KICK_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.kick.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.kick.botNoPermission"), true)] }); } @@ -51,16 +47,12 @@ export class KickCommand extends BaseCommand { if (!member) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } if (!member.kickable) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.kick.userNoKickable"), true) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.kick.userNoKickable"), true)] }); } @@ -70,20 +62,15 @@ export class KickCommand extends BaseCommand { const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [ - createEmbed( - "error", - i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name }) - ) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.kick.kickedByString", { - author: ctx.author.tag - }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now()) - ] + embeds: [createEmbed("error", i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name })) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.kick.kickedByString", { + author: ctx.author.tag + }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now())] }); } diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index b08c39d5b..7d828d679 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -31,16 +31,12 @@ export class MuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] }); } @@ -51,32 +47,24 @@ export class MuteCommand extends BaseCommand { if (!member) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } if (ctx.guild.ownerId === member.id) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.mute.cantMuteOwner")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.cantMuteOwner"))] }); } const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); if (!muteRole) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.mute.unableToCreateMuteRole")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.unableToCreateMuteRole"))] }); } if (member.roles.cache.has(muteRole.id)) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.mute.alreadyMuted")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.alreadyMuted"))] }); } @@ -86,18 +74,16 @@ export class MuteCommand extends BaseCommand { const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.mute.userMuted")) - .setColor("LIGHT_GREY") - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.mute.mutedByString", { - author: ctx.author.tag - }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now()) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userMuted")) + .setColor("LIGHT_GREY") + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.mute.mutedByString", { + author: ctx.author.tag + }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now())] }); } diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index d31242122..3a9b8cb5b 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -24,25 +24,19 @@ export class PurgeCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("MANAGE_MESSAGES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true)] }); } const amount = Number(ctx.options?.getString("amount") ?? ctx.args.shift()); if (isNaN(amount)) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.purge.invalidAmount")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.purge.invalidAmount"))] }); } @@ -50,15 +44,9 @@ export class PurgeCommand extends BaseCommand { .catch(err => new Error(err as string | undefined)); if (purge instanceof Error) { return ctx.reply({ - embeds: [ - createEmbed( - "warn", - i18n.__mf("commands.moderation.purge.purgeFail", { - message: purge.message - }), - true - ) - ] + embeds: [createEmbed("warn", i18n.__mf("commands.moderation.purge.purgeFail", { + message: purge.message + }), true)] }); } diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index 7c714bb85..ee7fe808e 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -30,16 +30,12 @@ export class UnBanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] }); } @@ -51,16 +47,12 @@ export class UnBanCommand extends BaseCommand { if (!user) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } if (!resolved) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban"))] }); } @@ -75,15 +67,9 @@ export class UnBanCommand extends BaseCommand { .catch(err => new Error(err as string | undefined)); if (unban instanceof Error) { return ctx.reply({ - embeds: [ - createEmbed( - "error", - i18n.__mf("commands.moderation.unban.unbanFail", { - message: unban.message - }), - true - ) - ] + embeds: [createEmbed("error", i18n.__mf("commands.moderation.unban.unbanFail", { + message: unban.message + }), true)] }); } diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index a33f48903..2723969d8 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -31,16 +31,12 @@ export class UnMuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] }); } if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] }); } @@ -51,25 +47,19 @@ export class UnMuteCommand extends BaseCommand { if (!member) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); if (!muteRole) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.unmute.unableToCreateMuteRole")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.unableToCreateMuteRole"))] }); } if (!member.roles.cache.has(muteRole.id)) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.unmute.noMuted")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.noMuted"))] }); } @@ -79,20 +69,16 @@ export class UnMuteCommand extends BaseCommand { const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [ - createEmbed( - "info", - i18n.__mf("commands.moderation.unmute.userUnmuted", { - guildName: ctx.guild.name - }) - ) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now()) - ] + embeds: [createEmbed("info", + i18n.__mf("commands.moderation.unmute.userUnmuted", { + guildName: ctx.guild.name + })) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now())] }); } @@ -100,28 +86,20 @@ export class UnMuteCommand extends BaseCommand { .catch(err => new Error(err as string | undefined)); if (unmute instanceof Error) { return ctx.reply({ - embeds: [ - createEmbed( - "error", - i18n.__mf("commands.moderation.unmute.unmuteFail", { - message: unmute.message - }), - true - ) - ] + embeds: [createEmbed( + "error", + i18n.__mf("commands.moderation.unmute.unmuteFail", { + message: unmute.message + }), + true + )] }); } return ctx.reply({ - embeds: [ - createEmbed( - "success", - i18n.__mf("commands.moderation.unmute.unmuteSuccess", { - user: member.user.tag - }), - true - ) - ] + embeds: [createEmbed("success", i18n.__mf("commands.moderation.unmute.unmuteSuccess", { + user: member.user.tag + }), true)] }); } } diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 0aa5f71a6..f7af6313f 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -30,9 +30,7 @@ export class WarnCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message> { if (!ctx.member?.permissions.has("MANAGE_GUILD")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true)] }); } @@ -41,18 +39,14 @@ export class WarnCommand extends BaseCommand { )?.user ?? ctx.options?.getUser("member", true); if (!member) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] }); } const dm = await member.createDM().catch(() => undefined); if (!dm) { await ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.moderation.warn.noDM")) - ] + embeds: [createEmbed("warn", i18n.__("commands.moderation.warn.noDM"))] }); } @@ -74,13 +68,7 @@ export class WarnCommand extends BaseCommand { await dm?.send({ embeds: [embed] }); return ctx.reply({ - embeds: [ - createEmbed( - "success", - i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), - true - ) - ] + embeds: [createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true)] }); } } diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index d25121f91..2b703b517 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -35,9 +35,7 @@ export class LyricsCommand extends BaseCommand { : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title; if (!query) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] }); } @@ -50,16 +48,10 @@ export class LyricsCommand extends BaseCommand { .then(async data => { if ((data as { error: boolean }).error) { return ctx.reply({ - embeds: [ - createEmbed( - "error", - i18n.__mf("commands.music.lyrics.apiError", { - song: `\`${song}\``, - message: `\`${(data as { message?: string }).message!}\`` - }), - true - ) - ] + embeds: [createEmbed("error", i18n.__mf("commands.music.lyrics.apiError", { + song: `\`${song}\``, + message: `\`${(data as { message?: string }).message!}\`` + }), true)] }); } diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index f6d7bcdc8..e1e07556b 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -26,18 +26,15 @@ export class NowPlayingCommand extends BaseCommand { resource: AudioResource | undefined; }) | undefined)?.resource?.metadata as IQueueSong | undefined)?.song; - return createEmbed( - "info", - `${ - ctx.guild?.queue?.playing - ? "▶" - : "⏸" - } **|** ${ - song - ? `**[${song.title}](${song.url})**` - : i18n.__("commands.music.nowplaying.emptyQueue") - }` - ).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); + return createEmbed("info", `${ + ctx.guild?.queue?.playing + ? "▶" + : "⏸" + } **|** ${ + song + ? `**[${song.title}](${song.url})**` + : i18n.__("commands.music.nowplaying.emptyQueue") + }`).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); } const buttons = new MessageActionRow() diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index c7c12c67f..62a19ace0 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -22,18 +22,14 @@ export class PauseCommand extends BaseCommand { if (!ctx.guild?.queue?.playing) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.music.pause.alreadyPause")) - ] + embeds: [createEmbed("warn", i18n.__("commands.music.pause.alreadyPause"))] }); } ctx.guild.queue.playing = false; return ctx.reply({ - embeds: [ - createEmbed("success", `⏸ **|** ${i18n.__("commands.music.pause.pauseMessage")}`) - ] + embeds: [createEmbed("success", `⏸ **|** ${i18n.__("commands.music.pause.pauseMessage")}`)] }); } } diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index b006e26f9..f5672be3b 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -57,15 +57,10 @@ export class PlayCommand extends BaseCommand { if (!query) { return ctx.reply({ - embeds: [ - createEmbed( - "warn", - i18n.__mf("reusable.invalidUsage", { - prefix: `${this.client.config.mainPrefix}help`, - name: `${this.meta.name}` - }) - ) - ] + embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }))] }); } @@ -74,16 +69,14 @@ export class PlayCommand extends BaseCommand { if (ctx.guild?.queue && voiceChannel.id !== ctx.guild.queue.connection?.joinConfig.channelId) { return ctx.reply({ - embeds: [ - createEmbed( - "warn", - i18n.__mf("commands.music.play.alreadyPlaying", { - voiceChannel: ctx.guild.channels.cache - .get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? - "#unknown-channel" - }) - ) - ] + embeds: [createEmbed( + "warn", + i18n.__mf("commands.music.play.alreadyPlaying", { + voiceChannel: ctx.guild.channels.cache + .get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? + "#unknown-channel" + }) + )] }); } @@ -91,9 +84,7 @@ export class PlayCommand extends BaseCommand { const songs = await searchTrack(this.client, url).catch(() => undefined); if (!songs || songs.items.length <= 0) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.play.noSongData"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.play.noSongData"), true)] }); } diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 2c036d81e..d753fafe8 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -35,9 +35,7 @@ export class RemoveCommand extends BaseCommand { const djRole = await this.client.utils.fetchDJRole(ctx.guild!); if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { void ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.remove.noPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.remove.noPermission"), true)] }); return; } @@ -48,9 +46,7 @@ export class RemoveCommand extends BaseCommand { ).split(/[, ]/).filter(Boolean); if (!positions.length) { void ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.remove.noPositions"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.remove.noPositions"), true)] }); return; } @@ -80,10 +76,7 @@ export class RemoveCommand extends BaseCommand { return texts.join("\n"); })); const getText = (page: string): string => `\`\`\`\n${opening}\n\n${page}\`\`\``; - const embed = createEmbed( - "info", - getText(pages[0]) - ).setFooter({ + const embed = createEmbed("info", getText(pages[0])).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: 1, total: pages.length diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 1f2539be2..54208ee9a 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -64,14 +64,11 @@ export class RepeatCommand extends BaseCommand { if (!selection) { return ctx.reply({ embeds: [ - createEmbed( - "info", - `${mode[ - ctx.guild!.queue!.loopMode - ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { - mode: `\`${ctx.guild!.queue!.loopMode}\`` - })}` - ) + createEmbed("info", `${mode[ + ctx.guild!.queue!.loopMode + ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + })}`) ] }); } @@ -79,14 +76,11 @@ export class RepeatCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed( - "success", - `${mode[ - ctx.guild!.queue!.loopMode - ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { - mode: `\`${ctx.guild!.queue!.loopMode}\`` - })}` - ) + createEmbed("success", `${mode[ + ctx.guild!.queue!.loopMode + ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + })}`) ] }); } diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index 1f5c9e78e..dd577ba49 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -21,17 +21,13 @@ export class ResumeCommand extends BaseCommand { if (!sameVC(ctx)) return; if (ctx.guild?.queue?.playing) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("commands.music.resume.alreadyResume")) - ] + embeds: [createEmbed("warn", i18n.__("commands.music.resume.alreadyResume"))] }); } ctx.guild!.queue!.playing = true; return ctx.reply({ - embeds: [ - createEmbed("success", `▶ **|** ${i18n.__("commands.music.resume.resumeMessage")}`) - ] + embeds: [createEmbed("success", `▶ **|** ${i18n.__("commands.music.resume.resumeMessage")}`)] }); } } diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 103c58082..b81e121ee 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -7,15 +7,7 @@ import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { ISong } from "../../typings"; import i18n from "../../config"; -import { - CommandInteractionOptionResolver, - Message, - MessageActionRow, - MessageSelectOptionData, - MessageSelectMenu, - SelectMenuInteraction, - Util -} from "discord.js"; +import { CommandInteractionOptionResolver, Message, MessageActionRow, MessageSelectOptionData, MessageSelectMenu, SelectMenuInteraction, Util } from "discord.js"; @Command<typeof SearchCommand>({ aliases: ["sc"], @@ -92,9 +84,7 @@ export class SearchCommand extends BaseCommand { if (!query) { return ctx.send({ - embeds: [ - createEmbed("warn", i18n.__("commands.music.search.noQuery")) - ] + embeds: [createEmbed("warn", i18n.__("commands.music.search.noQuery"))] }); } if (checkQuery(query).isURL) { @@ -111,9 +101,7 @@ export class SearchCommand extends BaseCommand { ).catch(() => undefined); if (!tracks || tracks.items.length <= 0) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.search.noTracks"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.search.noTracks"), true)] }); } if (this.client.config.musicSelectionType === "selectmenu") { @@ -136,19 +124,12 @@ export class SearchCommand extends BaseCommand { } const msg = await ctx.send({ - embeds: [ - createEmbed( - "info", - `${i18n.__mf("commands.music.search.queueEmbed", { - separator: "`,`", - example: "`1, 2, 3`" - })}\`\`\`\n${tracks.items.map( - (x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}` - ).join("\n")}\`\`\`` - ) - .setAuthor({ name: i18n.__("commands.music.search.trackSelectionMessage"), iconURL: this.client.user?.displayAvatarURL() }) - .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) }) - ] + embeds: [createEmbed("info", `${i18n.__mf("commands.music.search.queueEmbed", { + separator: "`,`", + example: "`1, 2, 3`" + })}\`\`\`\n${tracks.items.map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`).join("\n")}\`\`\``) + .setAuthor({ name: i18n.__("commands.music.search.trackSelectionMessage"), iconURL: this.client.user?.displayAvatarURL() }) + .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) })] }); const respond = await msg.channel.awaitMessages({ errors: ["time"], @@ -166,18 +147,14 @@ export class SearchCommand extends BaseCommand { msg.delete() .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.search.noSelection"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.search.noSelection"), true)] }); } if (["c", "cancel"].includes(respond.first()?.content.toLowerCase() ?? "")) { msg.delete() .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ - embeds: [ - createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true) - ] + embeds: [createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true)] }); } diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index 78a10d784..02d123c52 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -38,14 +38,9 @@ export class ShuffleCommand extends BaseCommand { const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; if (!newState) { void ctx.reply({ - embeds: [ - createEmbed( - "info", - `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { - state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` - })}` - ) - ] + embeds: [createEmbed("info", `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { + state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` + })}`)] }); return; } @@ -54,18 +49,9 @@ export class ShuffleCommand extends BaseCommand { const isShuffle = ctx.guild?.queue?.shuffle; void ctx.reply({ - embeds: [ - createEmbed( - "success", - `${ - isShuffle - ? "🔀" - : "▶"} **|** ${ - i18n.__mf("commands.music.shuffle.newState", { - state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` - })}` - ) - ] + embeds: [createEmbed("success", `${isShuffle ? "🔀" : "▶"} **|** ${i18n.__mf("commands.music.shuffle.newState", { + state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` + })}`)] }); } } diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 4e9dd0fcd..e5c9fa8ae 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -69,15 +69,9 @@ export class SkipCommand extends BaseCommand { if (!ctx.guild?.queue?.playing) ctx.guild!.queue!.playing = true; ctx.guild?.queue?.player?.stop(true); void ctx.reply({ - embeds: [ - createEmbed( - "success", - `⏭ **|** ${ - i18n.__mf("commands.music.skip.skipMessage", { - song: `[${song.song.title}](${song.song.url}})` - })}` - ).setThumbnail(song.song.thumbnail) - ] + embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skip.skipMessage", { + song: `[${song.song.title}](${song.song.url}})` + })}`).setThumbnail(song.song.thumbnail)] }).catch(e => this.client.logger.error("SKIP_CMD_ERR:", e)); } } diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 6afb55f5b..415bf7047 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -51,9 +51,7 @@ export class SkipToCommand extends BaseCommand { const djRole = await this.client.utils.fetchDJRole(ctx.guild!); if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.skipTo.noPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noPermission"), true)] }); } @@ -62,15 +60,10 @@ export class SkipToCommand extends BaseCommand { ctx.options?.getNumber("position"); if (!targetType) { return ctx.reply({ - embeds: [ - createEmbed( - "warn", - i18n.__mf("reusable.invalidUsage", { - prefix: `${this.client.config.mainPrefix}help`, - name: `${this.meta.name}` - }) - ) - ] + embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }))] }); } @@ -79,9 +72,7 @@ export class SkipToCommand extends BaseCommand { !isNaN(Number(targetType)) && !songs[Number(targetType) - 1] )) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.skipTo.noSongPosition"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noSongPosition"), true)] }); } @@ -96,23 +87,16 @@ export class SkipToCommand extends BaseCommand { if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).key) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true)] }); } void play(this.client, ctx.guild!, song.key); return ctx.reply({ - embeds: [ - createEmbed( - "success", - `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { - song: `[${song.song.title}](${song.song.url})` - })}` - ).setThumbnail(song.song.thumbnail) - ] + embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { + song: `[${song.song.title}](${song.song.url})` + })}`).setThumbnail(song.song.thumbnail)] }); } } diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 8011ca974..30d8faa23 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -39,9 +39,7 @@ export class StayInQueueCommand extends BaseCommand { if (!sameVC(ctx)) return; if (!this.client.config.is247Allowed) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.stayInQueue.247Disabled"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.stayInQueue.247Disabled"), true)] }); } @@ -49,29 +47,18 @@ export class StayInQueueCommand extends BaseCommand { if (!newState) { return ctx.reply({ - embeds: [ - createEmbed( - "info", - i18n.__mf("commands.music.stayInQueue.actualState", { - state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - }) - ) - ] + embeds: [createEmbed("info", i18n.__mf("commands.music.stayInQueue.actualState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + }))] }); } ctx.guild!.queue!.stayInVC = newState === "enable"; return ctx.reply({ - embeds: [ - createEmbed( - "success", - i18n.__mf("commands.music.stayInQueue.newState", { - state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - }), - true - ) - ] + embeds: [createEmbed("success", i18n.__mf("commands.music.stayInQueue.newState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + }), true)] }); } } diff --git a/src/commands/music/StopCommand.ts b/src/commands/music/StopCommand.ts index e775d2951..4f2ba2f0e 100644 --- a/src/commands/music/StopCommand.ts +++ b/src/commands/music/StopCommand.ts @@ -24,9 +24,7 @@ export class StopCommand extends BaseCommand { ctx.guild!.queue!.lastMusicMsg = null; ctx.reply({ - embeds: [ - createEmbed("success", `⏹ **|** ${i18n.__("commands.music.stop.stoppedMessage")}`) - ] + embeds: [createEmbed("success", `⏹ **|** ${i18n.__("commands.music.stop.stoppedMessage")}`)] }).catch(e => this.client.logger.error("STOP_CMD_ERR:", e)); } } diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index de66f0a2e..3dce1a437 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -34,42 +34,31 @@ export class VolumeCommand extends BaseCommand { if (isNaN(volume)) { return ctx.reply({ - embeds: [ - createEmbed( - "info", - `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { - volume: `\`${resVolume.volume * 100}\`` - })}` - ).setFooter({ text: i18n.__("commands.music.volume.changeVolume") }) - ] + embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { + volume: `\`${resVolume.volume * 100}\`` + })}`).setFooter({ text: i18n.__("commands.music.volume.changeVolume") })] }); } if (volume <= 0) { return ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { - volume: `\`${volume}\`` - })) - ] + embeds: [createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { + volume: `\`${volume}\`` + }))] }); } if (volume > 100) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { - maxVol: "`100`" - }), true) - ] + embeds: [createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { + maxVol: "`100`" + }), true)] }); } resVolume.setVolume(volume / 100); return ctx.reply({ - embeds: [ - createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { - volume - })}`) - ] + embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { + volume + })}`)] }); } } diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index 791e853e4..71243af98 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -17,22 +17,14 @@ export class ChannelUpdateEvent extends BaseEvent { const queue = newChannel.guild.queue; const msg = await queue.textChannel.send({ - embeds: [ - createEmbed("info", i18n.__("events.channelUpdate.reconfigureConnection")) - ] + embeds: [createEmbed("info", i18n.__("events.channelUpdate.reconfigureConnection"))] }); queue.connection?.configureNetworking(); entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000) .then(() => { void msg.edit({ - embeds: [ - createEmbed( - "success", - i18n.__("events.channelUpdate.connectionReconfigured"), - true - ) - ] + embeds: [createEmbed("success", i18n.__("events.channelUpdate.connectionReconfigured"), true)] }); }) .catch(() => { @@ -41,9 +33,7 @@ export class ChannelUpdateEvent extends BaseEvent { `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newChannel.guild.name} voice channel, the queue was deleted.` ); void msg.edit({ - embeds: [ - createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true) - ] + embeds: [createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true)] }); }); } diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index b42958420..2d6ac74cb 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -22,15 +22,9 @@ export class InteractionCreateEvent extends BaseEvent { ).has("MANAGE_MESSAGES")) { void interaction.reply({ ephemeral: true, - embeds: [ - createEmbed( - "error", - i18n.__mf("events.createInteraction.message1", { - user: user.toString() - }), - true - ) - ] + embeds: [createEmbed("error", i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), true)] }); } else { const msg = await interaction.channel?.messages.fetch(interaction.message.id) @@ -73,15 +67,9 @@ export class InteractionCreateEvent extends BaseEvent { if (interaction.user.id !== user) { void interaction.reply({ ephemeral: true, - embeds: [ - createEmbed( - "error", - i18n.__mf("events.createInteraction.message1", { - user: user.toString() - }), - true - ) - ] + embeds: [createEmbed("error", i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), true)] }); } if (cmd && user === interaction.user.id && exec) { diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index b1e48a89c..399e03f9a 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -13,15 +13,10 @@ export class MessageCreateEvent extends BaseEvent { if (this.getUserFromMention(message.content)?.id === this.client.user?.id) { message.reply({ - embeds: [ - createEmbed( - "info", - `👋 **|** ${i18n.__mf("events.createMessage", { - author: message.author.toString(), - prefix: `\`${this.client.config.mainPrefix}\`` - })}` - ) - ] + embeds: [createEmbed("info", `👋 **|** ${i18n.__mf("events.createMessage", { + author: message.author.toString(), + prefix: `\`${this.client.config.mainPrefix}\`` + })}`)] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); } diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 8d166e4b2..6278c6310 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -36,12 +36,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { : ""} Disconnected from the voice channel at ${newState.guild.name}, the queue was deleted.` ); queue.textChannel.send({ - embeds: [ - createEmbed( - "error", - `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}` - ) - ] + embeds: [createEmbed("error", `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}`)] }) .catch(e => this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e)); } @@ -54,22 +49,14 @@ export class VoiceStateUpdateEvent extends BaseEvent { queue.skipVoters = []; if (oldVC?.rtcRegion !== newVC?.rtcRegion) { const msg = await queue.textChannel.send({ - embeds: [ - createEmbed("info", i18n.__("events.voiceStateUpdate.reconfigureConnection")) - ] + embeds: [createEmbed("info", i18n.__("events.voiceStateUpdate.reconfigureConnection"))] }); queue.connection?.configureNetworking(); try { await entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000); void msg.edit({ - embeds: [ - createEmbed( - "success", - i18n.__("events.voiceStateUpdate.connectionReconfigured"), - true - ) - ] + embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.connectionReconfigured"), true)] }); } catch { queue.destroy(); @@ -79,22 +66,14 @@ export class VoiceStateUpdateEvent extends BaseEvent { : ""} Unable to re-configure networking on ${newState.guild.name} voice channel, the queue was deleted.` ); void msg.edit({ - embeds: [ - createEmbed( - "error", - i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), - true - ) - ] + embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), true)] }); return; } } if (newVC?.type === "GUILD_STAGE_VOICE" && newState.suppress) { const msg = await queue.textChannel.send({ - embeds: [ - createEmbed("info", i18n.__("events.voiceStateUpdate.joiningAsSpeaker")) - ] + embeds: [createEmbed("info", i18n.__("events.voiceStateUpdate.joiningAsSpeaker"))] }); const suppress = await newState.setSuppressed(false).catch(err => ({ error: err })); @@ -106,9 +85,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { : ""} Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.` ); void queue.textChannel.send({ - embeds: [ - createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true) - ] + embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true)] }) .catch(e => { this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e); @@ -117,9 +94,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { } await msg.edit({ - embeds: [ - createEmbed("success", i18n.__("events.voiceStateUpdate.joinStageMessage"), true) - ] + embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.joinStageMessage"), true)] }); } if (newVCMembers.size === 0 && queue.timeout === null && !queue.idle) { @@ -158,25 +133,15 @@ export class VoiceStateUpdateEvent extends BaseEvent { state.guild.queue!.timeout = setTimeout(() => { queue.destroy(); void queue.textChannel.send({ - embeds: [ - createEmbed( - "error", - `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { - duration: `\`${duration}\`` - })}` - ).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") }) - ] + embeds: [createEmbed("error", `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { + duration: `\`${duration}\`` + })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") })] }); }, timeout); void queue.textChannel.send({ - embeds: [ - createEmbed( - "warn", - `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { - duration: `\`${duration}\`` - })}` - ).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") }) - ] + embeds: [createEmbed("warn", `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { + duration: `\`${duration}\`` + })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") })] }) .then(msg => queue.lastVSUpdateMsg = msg.id); } @@ -191,17 +156,12 @@ export class VoiceStateUpdateEvent extends BaseEvent { const song = ((queue.player!.state as AudioPlayerPausedState).resource.metadata as IQueueSong).song; void queue.textChannel.send({ - embeds: [ - createEmbed( - "info", - `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { - song: `[${song.title}](${song.url})` - })}` - ).setThumbnail(song.thumbnail) - .setAuthor({ - name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") - }) - ] + embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { + song: `[${song.title}](${song.url})` + })}`).setThumbnail(song.thumbnail) + .setAuthor({ + name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") + })] }).then(msg => queue.lastVSUpdateMsg = msg.id); state.guild.queue?.player?.unpause(); } diff --git a/src/index.ts b/src/index.ts index 2862cee10..3cbc5b85f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,9 @@ -import "dotenv/config"; import { importURLToString } from "./utils/functions/importURLToString"; import { isProd, shardingMode, shardsCount } from "./config"; import { RawonLogger } from "./utils/structures/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; +import "dotenv/config"; const log = new RawonLogger({ prod: isProd }); diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 6055a20d9..61896a701 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,5 +1,4 @@ -/* eslint-disable no-nested-ternary */ -/* eslint-disable @typescript-eslint/no-unnecessary-condition */ +/* eslint-disable @typescript-eslint/no-unnecessary-condition, no-nested-ternary */ import { InteractionTypes, MessageComponentTypes } from "../typings/enum"; import { MessageInteractionAction } from "../typings"; import { @@ -52,7 +51,6 @@ export class CommandContext { } const context = this.context as CommandInteraction | Message; - // eslint-disable-next-line no-nested-ternary const rep = await this.send( options, this.isInteraction() diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 76792b7d5..b7e204695 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -2,17 +2,7 @@ import { CommandContext } from "../structures/CommandContext"; import { ServerQueue } from "../structures/ServerQueue"; import { Rawon } from "../structures/Rawon"; -import { - ActivityType, - ApplicationCommandOptionData, - ApplicationCommandType, - ClientEvents, - ClientPresenceStatus, - Client as OClient, - Collection, - GuildMember, - MessageEmbed -} from "discord.js"; +import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed } from "discord.js"; export type MessageInteractionAction = "editReply" | "followUp" | "reply"; diff --git a/src/utils/decorators/Command.ts b/src/utils/decorators/Command.ts index 8cf52ecd9..6aa43a4e3 100644 --- a/src/utils/decorators/Command.ts +++ b/src/utils/decorators/Command.ts @@ -1,5 +1,5 @@ -import { BaseCommand, ExtendedCommandConstructor } from "../../structures/BaseCommand"; import { ClassDecorator, NonAbstractConstructor, ICommandComponent } from "../../typings"; +import { BaseCommand, ExtendedCommandConstructor } from "../../structures/BaseCommand"; export function Command<T extends NonAbstractConstructor<BaseCommand> = ExtendedCommandConstructor>( meta: ICommandComponent["meta"] diff --git a/src/utils/decorators/createCmdExecuteDecorator.ts b/src/utils/decorators/createCmdExecuteDecorator.ts index d1911a6b9..2f6852705 100644 --- a/src/utils/decorators/createCmdExecuteDecorator.ts +++ b/src/utils/decorators/createCmdExecuteDecorator.ts @@ -1,5 +1,5 @@ -import { BaseCommand } from "../../structures/BaseCommand"; import { MethodDecorator, Promisable } from "../../typings"; +import { BaseCommand } from "../../structures/BaseCommand"; export function createCmdExecuteDecorator( func: (...args: Parameters<BaseCommand["execute"]>) => Promisable<boolean | undefined> diff --git a/src/utils/handlers/GeneralUtil.ts b/src/utils/handlers/GeneralUtil.ts index 17ce2aecf..c273cd1d7 100644 --- a/src/utils/handlers/GeneralUtil.ts +++ b/src/utils/handlers/GeneralUtil.ts @@ -1,4 +1,4 @@ -export { checkQuery } from "./general/checkQuery"; export { handleVideos } from "./general/handleVideos"; -export { play } from "./general/play"; export { searchTrack } from "./general/searchTrack"; +export { checkQuery } from "./general/checkQuery"; +export { play } from "./general/play"; diff --git a/src/utils/handlers/SoundCloudUtil.ts b/src/utils/handlers/SoundCloudUtil.ts index 530125a49..4ce14a5d9 100644 --- a/src/utils/handlers/SoundCloudUtil.ts +++ b/src/utils/handlers/SoundCloudUtil.ts @@ -1,7 +1,7 @@ -import SC from "soundcloud.ts"; import { createRequire } from "module"; +import SC from "soundcloud.ts"; -// temporary solution +// Temporary solution const require = createRequire(import.meta.url); const Soundcloud = require("soundcloud.ts"); diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 622ae02f8..8171c428b 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -1,5 +1,5 @@ -import { Rawon } from "../../structures/Rawon"; import { ISpotifyAccessTokenAPIResult, SpotifyPlaylist, SpotifyTrack } from "../../typings"; +import { Rawon } from "../../structures/Rawon"; export class SpotifyUtil { // eslint-disable-next-line prefer-named-capture-group diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index fd9d0a500..e0446f1e3 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -3,8 +3,8 @@ import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; import { stream as pldlStream, video_basic_info } from "play-dl"; -import * as YTDLExec from "youtube-dl-exec"; import { Readable } from "stream"; +import * as YTDLExec from "youtube-dl-exec"; const { exec, default: ytdl } = YTDLExec; diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index e7731be58..b9b22e0bf 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -6,8 +6,8 @@ import { createEmbed } from "../../functions/createEmbed"; import { Rawon } from "../../../structures/Rawon"; import { chunk } from "../../functions/chunk"; import { ISong } from "../../../typings"; -import i18n from "../../../config"; import { play } from "./play"; +import i18n from "../../../config"; import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index 3e1f6d7f4..6327da040 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -3,15 +3,7 @@ import { Rawon } from "../../../structures/Rawon"; import { IQueueSong } from "../../../typings"; import { getStream } from "../YTDLUtil"; import i18n from "../../../config"; -import { - AudioPlayerError, - AudioPlayerPlayingState, - AudioPlayerStatus, - createAudioPlayer, - createAudioResource, - entersState, - VoiceConnectionStatus -} from "@discordjs/voice"; +import { AudioPlayerError, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, createAudioResource, entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { Guild } from "discord.js"; export async function play(client: Rawon, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise<void> { diff --git a/src/utils/structures/ButtonPagination.ts b/src/utils/structures/ButtonPagination.ts index 261cea960..60c250e11 100644 --- a/src/utils/structures/ButtonPagination.ts +++ b/src/utils/structures/ButtonPagination.ts @@ -1,14 +1,4 @@ -import { - CommandInteraction, - ContextMenuInteraction, - Interaction, - InteractionButtonOptions, - Message, - MessageActionRow, - MessageButton, - SelectMenuInteraction, - TextChannel -} from "discord.js"; +import { CommandInteraction, ContextMenuInteraction, Interaction, InteractionButtonOptions, Message, MessageActionRow, MessageButton, SelectMenuInteraction, TextChannel } from "discord.js"; import { PaginationPayload } from "../../typings"; const DATAS: InteractionButtonOptions[] = [ diff --git a/src/utils/structures/RawonLogger.ts b/src/utils/structures/RawonLogger.ts index 4879130d2..27d17212c 100644 --- a/src/utils/structures/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -32,7 +32,6 @@ export class RawonLogger { private log(messages: any[], level: "debug" | "error" | "info" | "warn" = "info"): void { if (this.options.prod && level === "debug") return; - // eslint-disable-next-line no-nested-ternary console[level](`${ this.options.prod ? "" From 8816fee2c958d7748b8763a2093aab895aa552c3 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 11 Feb 2022 18:01:56 +0900 Subject: [PATCH 083/411] feat: cmd decorators are back --- src/commands/music/NowPlayingCommand.ts | 3 +-- src/commands/music/PauseCommand.ts | 7 +++--- src/commands/music/PlayCommand.ts | 6 ++--- src/commands/music/QueueCommand.ts | 3 +-- src/commands/music/RemoveCommand.ts | 7 +++--- src/commands/music/RepeatCommand.ts | 7 +++--- src/commands/music/ResumeCommand.ts | 6 ++--- src/commands/music/SearchCommand.ts | 6 ++--- src/commands/music/ShuffleCommand.ts | 6 ++--- src/commands/music/SkipCommand.ts | 7 +++--- src/commands/music/SkipToCommand.ts | 7 +++--- src/commands/music/StayInQueueCommand.ts | 6 ++--- src/commands/music/StopCommand.ts | 7 +++--- src/commands/music/VolumeCommand.ts | 7 +++--- src/utils/decorators/MusicUtil.ts | 30 +++++++++--------------- 15 files changed, 49 insertions(+), 66 deletions(-) diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index e1e07556b..959376961 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -18,9 +18,8 @@ import { AudioPlayerState, AudioResource } from "@discordjs/voice"; usage: "{prefix}nowplaying" }) export class NowPlayingCommand extends BaseCommand { + @haveQueue public async execute(ctx: CommandContext): Promise<void> { - if (!haveQueue(ctx)) return; - function getEmbed(): MessageEmbed { const song = ((ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined; diff --git a/src/commands/music/PauseCommand.ts b/src/commands/music/PauseCommand.ts index 62a19ace0..2c2348c59 100644 --- a/src/commands/music/PauseCommand.ts +++ b/src/commands/music/PauseCommand.ts @@ -15,11 +15,10 @@ import { Message } from "discord.js"; usage: "{prefix}pause" }) export class PauseCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; - if (!ctx.guild?.queue?.playing) { return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.music.pause.alreadyPause"))] diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index f5672be3b..6fd5ecaaf 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -26,10 +26,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.music.play.usage") }) export class PlayCommand extends BaseCommand { + @inVC + @validVC + @sameVC public async execute(ctx: CommandContext): Promise<Message | undefined> { - if (!inVC(ctx)) return; - if (!validVC(ctx)) return; - if (!sameVC(ctx)) return; if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); const voiceChannel = ctx.member!.voice.channel!; diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index 1b124dc88..c43a92607 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -19,9 +19,8 @@ import { AudioPlayerPlayingState } from "@discordjs/voice"; usage: "{prefix}queue" }) export class QueueCommand extends BaseCommand { + @haveQueue public async execute(ctx: CommandContext): Promise<void> { - if (!haveQueue(ctx)) return; - const np = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); const songs = ctx.guild?.queue?.loopMode === "QUEUE" diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index d753fafe8..bf77ab80a 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -27,11 +27,10 @@ import { Util } from "discord.js"; usage: i18n.__("commands.music.remove.usage") }) export class RemoveCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public async execute(ctx: CommandContext): Promise<void> { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; - const djRole = await this.client.utils.fetchDJRole(ctx.guild!); if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { void ctx.reply({ diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 54208ee9a..600c700c8 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -33,11 +33,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.music.repeat.usage", { options: "queue | one | disable" }) }) export class RepeatCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; - const mode: Record<LoopMode, { aliases: string[]; emoji: string }> = { OFF: { aliases: ["disable", "off", "0"], diff --git a/src/commands/music/ResumeCommand.ts b/src/commands/music/ResumeCommand.ts index dd577ba49..ac61703e5 100644 --- a/src/commands/music/ResumeCommand.ts +++ b/src/commands/music/ResumeCommand.ts @@ -15,10 +15,10 @@ import { Message } from "discord.js"; usage: "{prefix}resume" }) export class ResumeCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; if (ctx.guild?.queue?.playing) { return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.music.resume.alreadyResume"))] diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index b81e121ee..13973cb20 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -43,10 +43,10 @@ import { CommandInteractionOptionResolver, Message, MessageActionRow, MessageSel usage: i18n.__("commands.music.search.usage") }) export class SearchCommand extends BaseCommand { + @inVC + @validVC + @sameVC public async execute(ctx: CommandContext): Promise<Message | undefined> { - if (!inVC(ctx)) return; - if (!validVC(ctx)) return; - if (!sameVC(ctx)) return; if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); const values = ctx.additionalArgs.get("values"); diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index 02d123c52..c28bb6ff4 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -31,10 +31,10 @@ import i18n from "../../config"; usage: "{prefix}shuffle [enable | disable]" }) export class ShuffleCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public execute(ctx: CommandContext): void { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; if (!newState) { void ctx.reply({ diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index e5c9fa8ae..9e2d8f97c 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -21,11 +21,10 @@ import { GuildMember } from "discord.js"; export class SkipCommand extends BaseCommand { private readonly manager = new OperationManager(); + @inVC + @haveQueue + @sameVC public async execute(ctx: CommandContext): Promise<void> { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; - const djRole = await this.client.utils.fetchDJRole(ctx.guild!).catch(() => null); const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 415bf7047..2aaa8efac 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -43,11 +43,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.music.skipTo.usage", { options: "first | last" }) }) export class SkipToCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public async execute(ctx: CommandContext): Promise<Message | undefined> { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; - const djRole = await this.client.utils.fetchDJRole(ctx.guild!); if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { return ctx.reply({ diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 30d8faa23..9ffbfff18 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -33,10 +33,10 @@ import { Message } from "discord.js"; usage: "{prefix}stayinvc [enable | disable]" }) export class StayInQueueCommand extends BaseCommand { + @inVC + @haveQueue + @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { - if (!inVC(ctx)) return; - if (!haveQueue(ctx)) return; - if (!sameVC(ctx)) return; if (!this.client.config.is247Allowed) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.stayInQueue.247Disabled"), true)] diff --git a/src/commands/music/StopCommand.ts b/src/commands/music/StopCommand.ts index 4f2ba2f0e..55cfabb78 100644 --- a/src/commands/music/StopCommand.ts +++ b/src/commands/music/StopCommand.ts @@ -15,11 +15,10 @@ import i18n from "../../config"; usage: "{prefix}stop" }) export class StopCommand extends BaseCommand { + @inVC + @validVC + @sameVC public execute(ctx: CommandContext): void { - if (!inVC(ctx)) return; - if (!validVC(ctx)) return; - if (!sameVC(ctx)) return; - ctx.guild?.queue?.stop(); ctx.guild!.queue!.lastMusicMsg = null; diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index 3dce1a437..dbaccd17e 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -24,11 +24,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.music.volume.usage") }) export class VolumeCommand extends BaseCommand { + @inVC + @validVC + @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { - if (!inVC(ctx)) return; - if (!validVC(ctx)) return; - if (!sameVC(ctx)) return; - const volume = Number(ctx.args[0] ?? ctx.options?.getNumber("volume", false)); const resVolume = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.volume!; diff --git a/src/utils/decorators/MusicUtil.ts b/src/utils/decorators/MusicUtil.ts index 36d741986..d90d83d1e 100644 --- a/src/utils/decorators/MusicUtil.ts +++ b/src/utils/decorators/MusicUtil.ts @@ -1,8 +1,8 @@ -import { CommandContext } from "../../structures/CommandContext"; +import { createCmdExecuteDecorator } from "./createCmdExecuteDecorator"; import { createEmbed } from "../functions/createEmbed"; import i18n from "../../config"; -export function haveQueue(ctx: CommandContext): boolean { +export const haveQueue = createCmdExecuteDecorator(ctx => { if (!ctx.guild?.queue) { void ctx.reply({ embeds: [ @@ -11,11 +11,9 @@ export function haveQueue(ctx: CommandContext): boolean { }); return false; } +}); - return true; -} - -export function inVC(ctx: CommandContext): boolean { +export const inVC = createCmdExecuteDecorator(ctx => { if (!ctx.member?.voice.channel) { void ctx.reply({ embeds: [ @@ -24,14 +22,12 @@ export function inVC(ctx: CommandContext): boolean { }); return false; } +}); - return true; -} - -export function validVC(ctx: CommandContext): boolean { +export const validVC = createCmdExecuteDecorator(ctx => { const voiceChannel = ctx.member?.voice.channel; - if (voiceChannel?.id === ctx.guild?.me?.voice.channel?.id) return true; + if (voiceChannel?.id === ctx.guild?.me?.voice.channel?.id) return; if (!voiceChannel?.joinable) { void ctx.reply({ embeds: [ @@ -48,12 +44,10 @@ export function validVC(ctx: CommandContext): boolean { }); return false; } +}); - return true; -} - -export function sameVC(ctx: CommandContext): boolean { - if (!ctx.guild?.me?.voice.channel) return true; +export const sameVC = createCmdExecuteDecorator(ctx => { + if (!ctx.guild?.me?.voice.channel) return; const botVC = ctx.guild.queue?.connection?.joinConfig.channelId ?? ctx.guild.me.voice.channel.id; if (ctx.member?.voice.channel?.id !== botVC) { @@ -64,6 +58,4 @@ export function sameVC(ctx: CommandContext): boolean { }); return false; } - - return true; -} +}); From 47792b28f378eeb4db7a8511dafa22f088ed37cd Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 11 Feb 2022 18:02:36 +0900 Subject: [PATCH 084/411] fix(YTDLUtil): fix youtube-dl-exec is not an ES module --- src/utils/handlers/YTDLUtil.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index e0446f1e3..4433d1685 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -3,9 +3,12 @@ import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; import { stream as pldlStream, video_basic_info } from "play-dl"; +import ytDefault, { exec as ytExec } from "youtube-dl-exec"; +import { createRequire } from "module"; import { Readable } from "stream"; -import * as YTDLExec from "youtube-dl-exec"; +const require = createRequire(import.meta.url); +const YTDLExec = require("youtube-dl-exec") as { exec: typeof ytExec; default: typeof ytDefault }; const { exec, default: ytdl } = YTDLExec; export async function getStream(url: string): Promise<Readable> { From 0dd87f0d1aad2ad6fcbaf3ad788fc95a2df65b7e Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 11 Feb 2022 18:03:53 +0900 Subject: [PATCH 085/411] fix(main): fix bot keeps downloading yt-dlp on startup --- index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index f584783c3..4e6e2fc4b 100644 --- a/index.js +++ b/index.js @@ -60,7 +60,10 @@ function npmInstall(deleteDir = false, forceInstall = false, additionalArgs = [] } function importURLToString(url) { - return new URL(url).pathname.split(/\/|\\/g).filter(Boolean).join("/"); + const paths = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); + + paths.pop(); + return decodeURIComponent(paths.join("/")); } if (isGlitch) { From 775fac84813cd038772ede951a1b775b9fc7ceb3 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 11 Feb 2022 23:48:14 +0900 Subject: [PATCH 086/411] feat: replace JSON-based values to simpler form --- .env_example | 18 +++++++++--------- src/config.ts | 21 +++++++++++++++------ src/utils/functions/parseEnvValue.ts | 13 +++++++++++++ 3 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 src/utils/functions/parseEnvValue.ts diff --git a/.env_example b/.env_example index 2b0eb6eba..06976966f 100644 --- a/.env_example +++ b/.env_example @@ -13,7 +13,7 @@ MAIN_PREFIX="" #============================================================================== # What should be the alternative prefixes of your bot? -# Example: PREFIX=["?", "{mention}"] +# Example: PREFIX="?, {mention}" # Formats: {mention} = @bot mention # Default: {mention} ALT_PREFIX=[""] @@ -33,27 +33,27 @@ LOCALE="" #============================================================================== # Activity list -# Example: '["Hello!"]' +# Example: 'Hello!' # Formats: {prefix} = bot prefix, {userCount} = user amount, {textChannelsCount} = text channel amount, {serverCount} = server amount, {playingCount} = amount of server playing music using the bot, {username} = bot username -ACTIVITIES='["My default prefix is {prefix}", "music with {userCount} users", "{textChannelsCount} text channels in {serverCount} guilds", "Hello there, my name is {username}"]' +ACTIVITIES='My default prefix is {prefix}, music with {userCount} users, {textChannelsCount} text channels in {serverCount} guilds, "Hello there, my name is {username}"' #============================================================================== # Activity type list. # The order of this value is the same order as ACTIVITIES. # For example, first value of ACTIVITIES will use first value of this. -# Example: '["PLAYING", "COMPETING"]' +# Example: 'PLAYING, COMPETING' # Available: PLAYING, WATCHING, LISTENING, COMPETING -ACTIVITY_TYPES='["PLAYING", "LISTENING", "WATCHING", "PLAYING", "COMPETING"]' +ACTIVITY_TYPES='PLAYING, LISTENING, WATCHING, PLAYING, COMPETING' #============================================================================== # OPTIONAL - What is the owner's ID of the bot? -# Example: OWNERS=["390045370240991234"] -OWNERS=[""] +# Example: OWNERS="390045370240991234, 366169273485361153" +OWNERS="" #============================================================================== # OPTIONAL - What is your server's ID? -# Example: DEV_GUILD=["332877090003091456"] -DEV_GUILD=[""] +# Example: DEV_GUILD="941705543523897345" +DEV_GUILD="" #============================================================================== # In which mode do you want to activate your bot? diff --git a/src/config.ts b/src/config.ts index efc543dc4..54bb348d3 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,5 +1,14 @@ -import { ActivityType, ClientOptions, ClientPresenceStatus, Intents, Options, ShardingManagerMode, Sweepers } from "discord.js"; +import { parseEnvValue } from "./utils/functions/parseEnvValue"; import { IpresenceData } from "./typings"; +import { + ActivityType, + ClientOptions, + ClientPresenceStatus, + Intents, + Options, + ShardingManagerMode, + Sweepers +} from "discord.js"; import { join } from "path"; import i18n from "i18n"; @@ -37,11 +46,11 @@ export const shardingMode: ShardingManagerMode = "worker"; export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const isProd = !isDev; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; -export const altPrefixes: string[] = (JSON.parse(process.env.ALT_PREFIX! || "[\"{mention}\"]") as string[]).filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); +export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; -export const owners: string[] = JSON.parse(process.env.OWNERS ?? "[]"); -export const devGuild = JSON.parse(process.env.DEV_GUILD ?? "[]"); +export const owners: string[] = parseEnvValue(process.env.OWNERS ?? ""); +export const devGuild = parseEnvValue(process.env.DEV_GUILD ?? ""); export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; @@ -53,9 +62,9 @@ export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; export const presenceData: IpresenceData = { - activities: (JSON.parse(process.env.ACTIVITIES! || "[]") as string[]).map((x, i) => ({ + activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, - type: ((JSON.parse(process.env.ACTIVITY_TYPES! || "[]") as string[])[i]?.toUpperCase() || "PLAYING") as Exclude<ActivityType, "CUSTOM"> + type: (parseEnvValue(process.env.ACTIVITY_TYPES ?? "")[i]?.toUpperCase() || "PLAYING") as Exclude<ActivityType, "CUSTOM"> })), status: ["online"] as ClientPresenceStatus[], interval: 60000 diff --git a/src/utils/functions/parseEnvValue.ts b/src/utils/functions/parseEnvValue.ts new file mode 100644 index 000000000..395bd3745 --- /dev/null +++ b/src/utils/functions/parseEnvValue.ts @@ -0,0 +1,13 @@ +export function parseEnvValue(str: string): string[] { + return str + .match(/(?<=(?:\s+|^))(?<str>['"])?(?:.*?)\k<str>(?=(?:(?:[,;])|(?:(?:\s+)?$)))/g) + ?.filter(x => Boolean(x.trim())) + .map( + x => ( + (x.startsWith("'") && x.endsWith("'")) || (x.startsWith('"') && x.endsWith('"')) + ) + ? x.slice(1, x.length - 1) + : x + ) ?? + []; +} From aaa2c339d263d7836e134aca264b5c8439c31173 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 11 Feb 2022 23:53:28 +0900 Subject: [PATCH 087/411] fix(CommandManager): fix linter issue --- src/utils/structures/CommandManager.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index dca9d99ad..56a1e05b5 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -51,7 +51,7 @@ export class CommandManager extends Collection<string, ICommandComponent> { if (command.meta.contextChat) { if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild as string) { + for (const guild of this.client.config.devGuild) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create({ @@ -71,7 +71,7 @@ export class CommandManager extends Collection<string, ICommandComponent> { } if (command.meta.contextUser) { if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild as string) { + for (const guild of this.client.config.devGuild) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create({ @@ -102,7 +102,7 @@ export class CommandManager extends Collection<string, ICommandComponent> { } if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild as string) { + for (const guild of this.client.config.devGuild) { const g = await this.client.guilds.fetch({ guild }); await g.commands.create(command.meta.slash as ApplicationCommandData) From d9462d790995edfb1afba0128a495234f76ba1d4 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 12 Feb 2022 09:15:56 +0900 Subject: [PATCH 088/411] chore(env_example): forgot to change ALT_PREFIX value form --- .env_example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env_example b/.env_example index 06976966f..936873b00 100644 --- a/.env_example +++ b/.env_example @@ -16,7 +16,7 @@ MAIN_PREFIX="" # Example: PREFIX="?, {mention}" # Formats: {mention} = @bot mention # Default: {mention} -ALT_PREFIX=[""] +ALT_PREFIX="{mention}" #============================================================================== # What should be your bot's embed color code? (hex) From f4ebf2164269230a8eca5e8ee0072bef573d3991 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 12 Feb 2022 19:53:26 +0900 Subject: [PATCH 089/411] feat(OperationManager): make operations awaitable --- src/utils/structures/OperationManager.ts | 26 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/utils/structures/OperationManager.ts b/src/utils/structures/OperationManager.ts index ec93ac7c8..9bc5fb564 100644 --- a/src/utils/structures/OperationManager.ts +++ b/src/utils/structures/OperationManager.ts @@ -1,6 +1,12 @@ +import { Promisable } from "../../typings"; + export class OperationManager { private _runningOperation!: boolean; - private readonly operations: (() => Promise<undefined> | undefined)[] = []; + private readonly operations: [ + (arg?: undefined) => void, + (reason?: any) => void, + () => Promisable<undefined> + ][] = []; public constructor() { Object.defineProperty(this, "_runningOperation", { @@ -15,12 +21,14 @@ export class OperationManager { return this._runningOperation; } - public add(operation: () => undefined): void { - this.operations.push(operation); + public add(operation: () => Promisable<undefined>): Promise<undefined> { + return new Promise((resolve, reject) => { + this.operations.push([resolve, reject, operation]); - if (!this.runningOperation) { - void this.runOperations(); - } + if (!this._runningOperation) { + void this.runOperations(); + } + }); } private async runOperations(): Promise<void> { @@ -28,9 +36,11 @@ export class OperationManager { if (operation) { this._runningOperation = true; - try { - await operation(); + await operation[2](); + operation[0](); + } catch (err) { + operation[1](err); } finally { void this.runOperations(); } From 893bed1ccae7d57bd57dc50f2ad894a4e1137cfb Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 12 Feb 2022 19:54:00 +0900 Subject: [PATCH 090/411] feat(utils): add JSONDataManager util --- src/utils/structures/JSONDataManager.ts | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/utils/structures/JSONDataManager.ts diff --git a/src/utils/structures/JSONDataManager.ts b/src/utils/structures/JSONDataManager.ts new file mode 100644 index 000000000..5993a47b9 --- /dev/null +++ b/src/utils/structures/JSONDataManager.ts @@ -0,0 +1,38 @@ +import { OperationManager } from "./OperationManager"; +import { readFile, writeFile } from "fs/promises"; + +export class JSONDataManager<T> { + private readonly manager = new OperationManager(); + private _data: T | null = null; + + public constructor(public readonly fileDir: string) { + void this.load(); + } + + public get data(): T | null { + return this._data; + } + + public async save(data: () => T): Promise<T | null> { + await this.manager.add(async () => { + const dat = data(); + await writeFile(this.fileDir, JSON.stringify(dat, null, 4)); + + return undefined; + }); + + return this.load(); + } + + private async load(): Promise<T | null> { + try { + await this.manager.add(async () => { + this._data = JSON.parse((await readFile(this.fileDir, "utf8")).toString()); + return undefined; + }); + return this._data!; + } catch { + return this.data; + } + } +} From 37befe079f1fafa804dc95c41d13f77ef4a99b09 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 12 Feb 2022 19:55:50 +0900 Subject: [PATCH 091/411] feat(SkipCommand): wait for operation --- src/commands/music/SkipCommand.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 9e2d8f97c..4348afdd9 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -38,7 +38,7 @@ export class SkipCommand extends BaseCommand { const required = this.client.utils.requiredVoters(ctx.guild!.me!.voice.channel!.members.size); if (ctx.guild?.queue?.skipVoters.includes(ctx.author.id)) { - this.manager.add(() => { + await this.manager.add(() => { ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter( x => x !== ctx.author.id ); @@ -53,7 +53,7 @@ export class SkipCommand extends BaseCommand { return; } - this.manager.add(() => { + await this.manager.add(() => { ctx.guild?.queue?.skipVoters.push(ctx.author.id); return undefined; From e9a7cb7ba3322b72e53ace5999738e1906ca6338 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 13 Feb 2022 10:57:55 +0900 Subject: [PATCH 092/411] types: add GuildData interface --- src/typings/index.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index b7e204695..d15b0425d 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -173,6 +173,17 @@ export interface SpotifyArtist { tracks: SpotifyTrack[]; } +export interface GuildData { + infractions: Record<string, { + on: number; + reason: string | null; + }[]>; + modLog: { + enable: boolean; + channel: string | null; + }; +} + export type NonAbstractConstructor<Result = unknown> = new (...args: any[]) => Result; export type Constructor<Result = unknown> = | NonAbstractConstructor<Result> From dc1de7f931336500b20c1cd1430a7c7212caeeb1 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 13 Feb 2022 10:58:15 +0900 Subject: [PATCH 093/411] feat(Rawon): add `data` property --- src/structures/Rawon.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 3631c49e0..e58534eda 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,11 +1,13 @@ import { importURLToString } from "../utils/functions/importURLToString"; import { CommandManager } from "../utils/structures/CommandManager"; +import { JSONDataManager } from "../utils/structures/JSONDataManager"; import { EventsLoader } from "../utils/structures/EventsLoader"; import { ClientUtils } from "../utils/structures/ClientUtils"; import { RawonLogger } from "../utils/structures/RawonLogger"; import { soundcloud } from "../utils/handlers/SoundCloudUtil"; import { SpotifyUtil } from "../utils/handlers/SpotifyUtil"; import { formatMS } from "../utils/functions/formatMS"; +import { GuildData } from "../typings"; import * as config from "../config"; import { Client, ClientOptions } from "discord.js"; import { resolve } from "path"; @@ -17,6 +19,7 @@ export class Rawon extends Client { public readonly request = got; public readonly commands = new CommandManager(this, resolve(importURLToString(import.meta.url), "..", "commands")); public readonly events = new EventsLoader(this, resolve(importURLToString(import.meta.url), "..", "events")); + public readonly data = new JSONDataManager<Record<string, GuildData>>(resolve(process.cwd(), "data.json")); public readonly soundcloud = soundcloud; public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); From b2e1b0b890690f707e7f002a5206f045ec95ff35 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 13 Feb 2022 10:58:32 +0900 Subject: [PATCH 094/411] feat(WarnCommand): add infraction system --- src/commands/moderation/WarnCommand.ts | 35 ++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index f7af6313f..8b18b4d35 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -2,6 +2,7 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; +import { GuildData } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; @@ -50,23 +51,47 @@ export class WarnCommand extends BaseCommand { }); } - const reason = ctx.options?.getString("reason") ?? ( - ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") - ); + const time = Date.now(); + const reason = ctx.options?.getString("reason") ?? (ctx.args.join(" ") || null); + const displayReason = reason ?? i18n.__("commands.moderation.common.noReasonString"); const embed = createEmbed( "warn", i18n.__mf("commands.moderation.warn.userWarned", { guildName: ctx.guild!.name }) ) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .addField(i18n.__("commands.moderation.common.reasonString"), displayReason) .setFooter({ text: i18n.__("commands.moderation.warn.warnedByString"), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) }) - .setTimestamp(Date.now()); + .setTimestamp(time); await dm?.send({ embeds: [embed] }); + await this.client.data.save(() => { + const prefGuildData = this.client.data.data?.[ctx.guild!.id]; + const newData: Record<string, GuildData> = { + ...(this.client.data.data ?? {}), + [ctx.guild!.id]: { + infractions: { + ...(prefGuildData?.infractions ?? {}), + [member.id]: [ + ...(prefGuildData?.infractions[member.id] ?? []), + { + on: time, + reason + } + ] + }, + modLog: prefGuildData?.modLog ?? { + enable: false, + channel: null + } + } + }; + + return newData; + }); return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true)] }); From 9ac6e8170aa124f03c4f910bf6c3f862840efbe7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 13 Feb 2022 16:45:41 +0900 Subject: [PATCH 095/411] feat(decorators): create common decorators --- src/utils/decorators/CommonUtil.ts | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/utils/decorators/CommonUtil.ts diff --git a/src/utils/decorators/CommonUtil.ts b/src/utils/decorators/CommonUtil.ts new file mode 100644 index 000000000..7afa29b4b --- /dev/null +++ b/src/utils/decorators/CommonUtil.ts @@ -0,0 +1,35 @@ +import { createCmdExecuteDecorator } from "./createCmdExecuteDecorator"; +import { createEmbed } from "../functions/createEmbed"; +import { PermissionString } from "discord.js"; + +export function memberReqPerms( + perms: PermissionString[], + fallbackMsg: string +): ReturnType<typeof createCmdExecuteDecorator> { + return createCmdExecuteDecorator(ctx => { + if (!ctx.member?.permissions.has(perms)) { + void ctx.reply({ + embeds: [ + createEmbed("error", fallbackMsg, true) + ] + }); + return false; + } + }); +} + +export function botReqPerms( + perms: PermissionString[], + fallbackMsg: string +): ReturnType<typeof createCmdExecuteDecorator> { + return createCmdExecuteDecorator(ctx => { + if (!ctx.guild?.me?.permissions.has(perms)) { + void ctx.reply({ + embeds: [ + createEmbed("error", fallbackMsg, true) + ] + }); + return false; + } + }); +} From d6e2ba4f98f539fa24660dd0784945c73d5f05a6 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 13 Feb 2022 16:46:12 +0900 Subject: [PATCH 096/411] refactor: use decorator for mod commands --- src/commands/moderation/BanCommand.ts | 16 +++++----------- src/commands/moderation/KickCommand.ts | 16 +++++----------- src/commands/moderation/MuteCommand.ts | 16 +++++----------- src/commands/moderation/PurgeCommand.ts | 14 +++----------- src/commands/moderation/UnBanCommand.ts | 16 +++++----------- src/commands/moderation/UnMuteCommand.ts | 16 +++++----------- src/commands/moderation/WarnCommand.ts | 10 +++------- 7 files changed, 31 insertions(+), 73 deletions(-) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index 81e3ad834..7fc252a5b 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -28,17 +29,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.ban.usage") }) export class BanCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("BAN_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] - }); - } + @memberReqPerms(["BAN_MEMBERS"], i18n.__("commands.moderation.ban.userNoPermission")) + @botReqPerms(["BAN_MEMBERS"], i18n.__("commands.moderation.ban.botNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { + if (!ctx.guild) return; const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index a397b09de..3be53ac8f 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -28,17 +29,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.kick.usage") }) export class KickCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("KICK_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.kick.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("KICK_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.kick.botNoPermission"), true)] - }); - } + @memberReqPerms(["KICK_MEMBERS"], i18n.__("commands.moderation.kick.userNoPermission")) + @botReqPerms(["KICK_MEMBERS"], i18n.__("commands.moderation.kick.botNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { + if (!ctx.guild) return; const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 7d828d679..03151a3b9 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -28,17 +29,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.mute.usage") }) export class MuteCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("MANAGE_ROLES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] - }); - } + @memberReqPerms(["MANAGE_ROLES"], i18n.__("commands.moderation.mute.userNoPermission")) + @botReqPerms(["MANAGE_ROLES"], i18n.__("commands.moderation.mute.botNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { + if (!ctx.guild) return; const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 3a9b8cb5b..42a5fa896 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -21,18 +22,9 @@ import { TextChannel, Message } from "discord.js"; usage: i18n.__("commands.moderation.purge.usage") }) export class PurgeCommand extends BaseCommand { + @memberReqPerms(["MANAGE_MESSAGES"], i18n.__("commands.moderation.purge.userNoPermission")) + @botReqPerms(["MANAGE_MESSAGES"], i18n.__("commands.moderation.purge.botNoPermission")) public async execute(ctx: CommandContext): Promise<Message | undefined> { - if (!ctx.member?.permissions.has("MANAGE_MESSAGES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.purge.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("MANAGE_MESSAGES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.purge.botNoPermission"), true)] - }); - } - const amount = Number(ctx.options?.getString("amount") ?? ctx.args.shift()); if (isNaN(amount)) { return ctx.reply({ diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index ee7fe808e..1476be9b1 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -27,17 +28,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.unban.usage") }) export class UnBanCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("BAN_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.ban.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("BAN_MEMBERS")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.ban.botNoPermission"), true)] - }); - } + @memberReqPerms(["BAN_MEMBERS"], i18n.__("commands.moderation.ban.userNoPermission")) + @botReqPerms(["BAN_MEMBERS"], i18n.__("commands.moderation.ban.botNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { + if (!ctx.guild) return; const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index 2723969d8..bdcc7afd1 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -1,3 +1,4 @@ +import { botReqPerms, memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -28,17 +29,10 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.unmute.usage") }) export class UnMuteCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("MANAGE_ROLES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userNoPermission"), true)] - }); - } - if (!ctx.guild?.me?.permissions.has("MANAGE_ROLES")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.mute.botNoPermission"), true)] - }); - } + @memberReqPerms(["MANAGE_ROLES"], i18n.__("commands.moderation.mute.userNoPermission")) + @botReqPerms(["MANAGE_ROLES"], i18n.__("commands.moderation.mute.botNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { + if (!ctx.guild) return; const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 8b18b4d35..e1b94bed6 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -1,3 +1,4 @@ +import { memberReqPerms } from "../../utils/decorators/CommonUtil"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; @@ -28,13 +29,8 @@ import { Message } from "discord.js"; usage: i18n.__("commands.moderation.warn.usage") }) export class WarnCommand extends BaseCommand { - public async execute(ctx: CommandContext): Promise<Message> { - if (!ctx.member?.permissions.has("MANAGE_GUILD")) { - return ctx.reply({ - embeds: [createEmbed("error", i18n.__("commands.moderation.warn.userNoPermission"), true)] - }); - } - + @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) + public async execute(ctx: CommandContext): Promise<Message | undefined> { const member = ctx.guild?.members.resolve( ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "" )?.user ?? ctx.options?.getUser("member", true); From 08df7d0518c475d1f0352efd61fc30ce49c722ac Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 14 Feb 2022 21:45:13 +0900 Subject: [PATCH 097/411] feat(formatMS): create formatTime function --- src/utils/functions/formatMS.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/utils/functions/formatMS.ts b/src/utils/functions/formatMS.ts index 30b94037b..da5e8bec0 100644 --- a/src/utils/functions/formatMS.ts +++ b/src/utils/functions/formatMS.ts @@ -1,14 +1,22 @@ import { lang } from "../../config"; -import { formatDuration, intervalToDuration } from "date-fns"; +import { format, formatDuration, intervalToDuration } from "date-fns"; import * as locales from "date-fns/locale"; +const key = Object.keys(locales).find(v => v.toLowerCase() === lang.toLowerCase()); +const locale = key ? (locales as Record<string, globalThis.Locale>)[key] : locales.enUS; + export function formatMS(ms: number): string { if (isNaN(ms)) throw new Error("value is not a number."); - const key = Object.keys(locales).find(v => v.toLowerCase() === lang.toLowerCase()); - const locale = key ? (locales as Record<string, globalThis.Locale>)[key] : locales.enUS; - return formatDuration(intervalToDuration({ start: 0, end: ms }), { locale }); } + +export function formatTime(time: number): string { + if (isNaN(time)) throw new Error("value is not a number."); + + return format(time, "P HH:mm", { + locale + }); +} From 7d4324f7b09757e0ec87e2fccc29c7a3a9b3397d Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 14 Feb 2022 21:48:07 +0900 Subject: [PATCH 098/411] feat(commands/moderation): create infractions command --- lang/en.json | 7 ++ src/commands/moderation/InfractionsCommand.ts | 92 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/commands/moderation/InfractionsCommand.ts diff --git a/lang/en.json b/lang/en.json index e38a44ffe..ea0b5578e 100644 --- a/lang/en.json +++ b/lang/en.json @@ -70,6 +70,13 @@ "banFail": "Unable to **`BAN`** member, because: `{message}`", "banSuccess": "**{user}** has been **`BANNED`** from the server." }, + "infractions": { + "description": "Show the infractions of a user", + "slashMemberDescription": "Who do you like to see the infractions of?", + "usage": "{prefix}infractions [@mention | id]", + "embedAuthorText": "{user} - Infractions", + "noInfractions": "No infractions." + }, "kick": { "description": "Kick someone from the server", "slashMemberDescription": "Who do you like to kick?", diff --git a/src/commands/moderation/InfractionsCommand.ts b/src/commands/moderation/InfractionsCommand.ts new file mode 100644 index 000000000..8e6aada50 --- /dev/null +++ b/src/commands/moderation/InfractionsCommand.ts @@ -0,0 +1,92 @@ +import { ButtonPagination } from "../../utils/structures/ButtonPagination"; +import { memberReqPerms } from "../../utils/decorators/CommonUtil"; +import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; +import { formatTime } from "../../utils/functions/formatMS"; +import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; +import { chunk } from "../../utils/functions/chunk"; +import i18n from "../../config"; + +@Command({ + contextUser: "Show user infractions", + description: i18n.__("commands.moderation.infractions.description"), + name: "infractions", + slash: { + options: [ + { + description: i18n.__("commands.moderation.infractions.slashMemberDescription"), + name: "member", + required: false, + type: "USER" + } + ] + }, + usage: i18n.__("commands.moderation.infractions.usage") +}) +export class InfractionsCommand extends BaseCommand { + @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) + public async execute(ctx: CommandContext): Promise<void> { + const user = ctx.guild?.members.resolve( + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "" + )?.user ?? ctx.options?.getUser("member", false) ?? ctx.author; + const embed = createEmbed("info") + .setAuthor({ + name: i18n.__mf("commands.moderation.infractions.embedAuthorText", { + user: user.tag + }) + }); + let infractions: { on: number; reason: string | null }[]; + + try { + infractions = this.client.data.data![ctx.guild!.id].infractions[user.id]; + if (!(infractions as typeof infractions | undefined)) throw new Error(); + } catch { + infractions = []; + } + + if (!infractions.length) { + await ctx.reply({ + embeds: [ + embed + .setDescription(i18n.__("commands.moderation.infractions.noInfractions")) + ] + }); + return; + } + + const pages = await Promise.all( + chunk(infractions, 10).map(async (s, n) => { + const infracts = await Promise.all(s.map( + (inf, i) => `${(n * 10) + (i + 1)}. ${formatTime(inf.on)} - ${inf.reason ?? i18n.__("commands.moderation.common.noReasonString")}` + )); + + return infracts.join("\n"); + }) + ); + const msg = await ctx.reply({ + embeds: [ + embed.setDescription(pages[0]) + .setFooter({ + text: i18n.__mf("reusable.pageFooter", { + actual: 1, + total: pages.length + }) + }) + ] + }); + + return new ButtonPagination(msg, { + author: ctx.author.id, + edit: (i, e, p) => e.setDescription(p) + .setFooter({ + text: i18n.__mf("reusable.pageFooter", { + actual: i + 1, + total: pages.length + }) + }), + embed, + pages + }).start(); + } +} From 640892b7d131baa84348c3680f2c39829e715177 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 07:36:56 +0700 Subject: [PATCH 099/411] chore(deps): bump @swc/core from 1.2.138 to 1.2.139 (#768) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.138 to 1.2.139. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.138...v1.2.139) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index c8328180d..75d1d27ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.138", + "@swc/core": "^1.2.139", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -277,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.138.tgz", - "integrity": "sha512-XMbpq6y2BiTju5KCtveM3h32Ma3chGm/fQEjErZmWNOcPIpupGLPosSU1bH35Udee4GHNJH3NfkZIDR0cjHWIg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.139.tgz", + "integrity": "sha512-VlISQI7H6kIJT0Hhl6UVEOAb1HcuqWCnsoMHxVGdEQZlxt8g+ggyrY7F4AZoTvfgnSEayeIdpV8Xq52Zg+zjYw==", "engines": { "node": ">=10" }, @@ -288,25 +288,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.138", - "@swc/core-android-arm64": "1.2.138", - "@swc/core-darwin-arm64": "1.2.138", - "@swc/core-darwin-x64": "1.2.138", - "@swc/core-freebsd-x64": "1.2.138", - "@swc/core-linux-arm-gnueabihf": "1.2.138", - "@swc/core-linux-arm64-gnu": "1.2.138", - "@swc/core-linux-arm64-musl": "1.2.138", - "@swc/core-linux-x64-gnu": "1.2.138", - "@swc/core-linux-x64-musl": "1.2.138", - "@swc/core-win32-arm64-msvc": "1.2.138", - "@swc/core-win32-ia32-msvc": "1.2.138", - "@swc/core-win32-x64-msvc": "1.2.138" + "@swc/core-android-arm-eabi": "1.2.139", + "@swc/core-android-arm64": "1.2.139", + "@swc/core-darwin-arm64": "1.2.139", + "@swc/core-darwin-x64": "1.2.139", + "@swc/core-freebsd-x64": "1.2.139", + "@swc/core-linux-arm-gnueabihf": "1.2.139", + "@swc/core-linux-arm64-gnu": "1.2.139", + "@swc/core-linux-arm64-musl": "1.2.139", + "@swc/core-linux-x64-gnu": "1.2.139", + "@swc/core-linux-x64-musl": "1.2.139", + "@swc/core-win32-arm64-msvc": "1.2.139", + "@swc/core-win32-ia32-msvc": "1.2.139", + "@swc/core-win32-x64-msvc": "1.2.139" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", - "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.139.tgz", + "integrity": "sha512-ceZNzueo6iazeO9b8txKFk/v1MOmHuCm53Cv0SMJdtEBLIs6GqpLnPzRBswnQEdL4Ge+EGD5YRtw3mAdSLcTzQ==", "cpu": [ "arm" ], @@ -319,9 +319,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", - "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.139.tgz", + "integrity": "sha512-94kdkt+1zWJbxavSlTkTbTIklKjNByiCGYf920a/D5Nb0cuRXUHfxVPToHhzetFRMoNfnQPVhL3Wid/Gt02tBw==", "cpu": [ "arm64" ], @@ -334,9 +334,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", - "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.139.tgz", + "integrity": "sha512-l3C6ItB4OX1QEART1TnaUNzHeviDinbRQQZKJI8xo23HnhV0pvDjYl0D62R+1/7e8KiSweEG8BuKEtXPEYCBlw==", "cpu": [ "arm64" ], @@ -349,9 +349,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", - "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.139.tgz", + "integrity": "sha512-4KMTARit3LiJ+IZtxRAfiv7V7rrqryIxs+uZJmOfjenGIp3A+ygYzbm9PT/wfRiefL9Ds1nLBSAA1tQ6jiwObA==", "cpu": [ "x64" ], @@ -364,9 +364,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", - "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.139.tgz", + "integrity": "sha512-qZFIV98J7IS692JSSsTWmhBB9jVv0zmqHm+65xAblitlZ06wyFpOF7cLBuJQPdEXxrmoD3z6skD879U5q89NGw==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", - "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.139.tgz", + "integrity": "sha512-DX/yRuOrDRoddvofDgbuXmJXFHtGL+M0TgQll+7M2bW293jTGT1D1dkQuTQ/oxiVyA5bXShm+/Rrh8ozNf/ieA==", "cpu": [ "arm" ], @@ -394,9 +394,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", - "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.139.tgz", + "integrity": "sha512-ScLMFY121bzO4yOALxHlHut8Gj/cfJ74NL0JOzwtzL4lUJ1wkgmkHFJQNn5gXXrkTcfKR7o9D00R0WsbCfJGYA==", "cpu": [ "arm64" ], @@ -409,9 +409,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", - "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.139.tgz", + "integrity": "sha512-uSdVTMkBJtkfgKBAQxMz+lV/Kjx2IggWG1G57NIHJGNE2NMTBvpynjljLrL8jVBPAWxks4qANSsN4yixPmw7LA==", "cpu": [ "arm64" ], @@ -424,9 +424,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", - "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.139.tgz", + "integrity": "sha512-qpD9HQB50zZRIB/i21RjThUk7FRo7tLiHjcnSxZBnPcPYTM5sdzatrnO6b5/NnKngM1HW75OfJ1tvyccrU3Ufg==", "cpu": [ "x64" ], @@ -439,9 +439,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", - "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.139.tgz", + "integrity": "sha512-ILm4Z+StN+spNrhA6P6m9lXkmU0Ban4GeWaI2ErslyTFNaybQiwKlXlCNmsylzKlpEQd4nCpYy3vIFoeOoyJlQ==", "cpu": [ "x64" ], @@ -454,9 +454,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", - "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.139.tgz", + "integrity": "sha512-hIckLZ08lqWlHdJyFQG4tZCMdnvqqBQTB/6FYUU0pWB5bTMIixFfMV8XytWZJinNgXVgi6PApU4IHbWksUrHdg==", "cpu": [ "arm64" ], @@ -469,9 +469,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", - "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.139.tgz", + "integrity": "sha512-rN5XmVXW+Y/GZ/5FiV99R/0QejuN6YwDH/LoiEE85I8ytbLPBlpL2yhSe48BPhSeHgAwLpgeaK2NOKSeuhsHrA==", "cpu": [ "ia32" ], @@ -484,9 +484,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", - "integrity": "sha512-wYrARtnPg/svsQd0oovbth2JAhOugAgbnaOS0CMiWB4vaFBx+1GHJl5wzdhh9jt1kzsu4xZ4237tUeMH+s6d0A==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.139.tgz", + "integrity": "sha512-N1zvgp/xlSEgi6msYI2zkyY/B9RlIuLjuyUu5VmFY6dylCwwukCHu6Vi6kYYKEtNoZCGWvSCgKbg87TMydetxQ==", "cpu": [ "x64" ], @@ -2862,101 +2862,101 @@ } }, "@swc/core": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.138.tgz", - "integrity": "sha512-XMbpq6y2BiTju5KCtveM3h32Ma3chGm/fQEjErZmWNOcPIpupGLPosSU1bH35Udee4GHNJH3NfkZIDR0cjHWIg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.139.tgz", + "integrity": "sha512-VlISQI7H6kIJT0Hhl6UVEOAb1HcuqWCnsoMHxVGdEQZlxt8g+ggyrY7F4AZoTvfgnSEayeIdpV8Xq52Zg+zjYw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.138", - "@swc/core-android-arm64": "1.2.138", - "@swc/core-darwin-arm64": "1.2.138", - "@swc/core-darwin-x64": "1.2.138", - "@swc/core-freebsd-x64": "1.2.138", - "@swc/core-linux-arm-gnueabihf": "1.2.138", - "@swc/core-linux-arm64-gnu": "1.2.138", - "@swc/core-linux-arm64-musl": "1.2.138", - "@swc/core-linux-x64-gnu": "1.2.138", - "@swc/core-linux-x64-musl": "1.2.138", - "@swc/core-win32-arm64-msvc": "1.2.138", - "@swc/core-win32-ia32-msvc": "1.2.138", - "@swc/core-win32-x64-msvc": "1.2.138" + "@swc/core-android-arm-eabi": "1.2.139", + "@swc/core-android-arm64": "1.2.139", + "@swc/core-darwin-arm64": "1.2.139", + "@swc/core-darwin-x64": "1.2.139", + "@swc/core-freebsd-x64": "1.2.139", + "@swc/core-linux-arm-gnueabihf": "1.2.139", + "@swc/core-linux-arm64-gnu": "1.2.139", + "@swc/core-linux-arm64-musl": "1.2.139", + "@swc/core-linux-x64-gnu": "1.2.139", + "@swc/core-linux-x64-musl": "1.2.139", + "@swc/core-win32-arm64-msvc": "1.2.139", + "@swc/core-win32-ia32-msvc": "1.2.139", + "@swc/core-win32-x64-msvc": "1.2.139" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.138.tgz", - "integrity": "sha512-N79aTHj/jZNa8nXjOrfAaYYBkJxCQ9ZVFikQKSbBETU8usk7qAWDdCs94Y0q/Sow+9uiqguRVOrPFKSrN8LMTg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.139.tgz", + "integrity": "sha512-ceZNzueo6iazeO9b8txKFk/v1MOmHuCm53Cv0SMJdtEBLIs6GqpLnPzRBswnQEdL4Ge+EGD5YRtw3mAdSLcTzQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.138.tgz", - "integrity": "sha512-ZNRqTjZpNrB39pCX5OmtnNTnzU3X1GjZX2xDouS1jknEE+TPz1ZJsM4zNlz6AObd7caJhU7qRyWNDM0nlcnJZQ==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.139.tgz", + "integrity": "sha512-94kdkt+1zWJbxavSlTkTbTIklKjNByiCGYf920a/D5Nb0cuRXUHfxVPToHhzetFRMoNfnQPVhL3Wid/Gt02tBw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.138.tgz", - "integrity": "sha512-DlT0s3Iw3bmOCk4jln0Q9AC1H7q75bZojyODcPXQ2T24s6LcBeD1lNAfyQ2RmaQJTlBM04LjNYqvjA2HAR4ckw==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.139.tgz", + "integrity": "sha512-l3C6ItB4OX1QEART1TnaUNzHeviDinbRQQZKJI8xo23HnhV0pvDjYl0D62R+1/7e8KiSweEG8BuKEtXPEYCBlw==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.138.tgz", - "integrity": "sha512-+8ahwSnUTPCmpB1VkMTJdfcFU+ZGQ5JnA1dpSvDhB/u8wV2Dpk0ozpX+3xjqYXoUdhZvdHW1FxKZrhMhscJriA==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.139.tgz", + "integrity": "sha512-4KMTARit3LiJ+IZtxRAfiv7V7rrqryIxs+uZJmOfjenGIp3A+ygYzbm9PT/wfRiefL9Ds1nLBSAA1tQ6jiwObA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.138.tgz", - "integrity": "sha512-4icXrpDBN2r24PIRF2DBZ9IPgnXnEqO7/bySIUoL7ul8su2yoRP4Xp3Xi+XP+uBvtrVttwYtzGPNikVggVSK1Q==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.139.tgz", + "integrity": "sha512-qZFIV98J7IS692JSSsTWmhBB9jVv0zmqHm+65xAblitlZ06wyFpOF7cLBuJQPdEXxrmoD3z6skD879U5q89NGw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.138.tgz", - "integrity": "sha512-YdEKUvT9GGBEsKSyXc/YJ0cWSetBV3JhxouYLCv4AoQsTrDU5vDQDFUWlT21pzlbwC66ffbpYxnugpsqBm5XKg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.139.tgz", + "integrity": "sha512-DX/yRuOrDRoddvofDgbuXmJXFHtGL+M0TgQll+7M2bW293jTGT1D1dkQuTQ/oxiVyA5bXShm+/Rrh8ozNf/ieA==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.138.tgz", - "integrity": "sha512-cn/YrVvghCgSpagzHins1BQnJ07J53aCvlp57iXDA2xfH/HwXTijIy+UzqpQaLeKKQ8gMXmfzj/M7WklccN8jw==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.139.tgz", + "integrity": "sha512-ScLMFY121bzO4yOALxHlHut8Gj/cfJ74NL0JOzwtzL4lUJ1wkgmkHFJQNn5gXXrkTcfKR7o9D00R0WsbCfJGYA==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.138.tgz", - "integrity": "sha512-aYoeZ46gaewTYYShHwlYhL8ARrLILiEnTWJFEWoUfAfbDwi4zaLyymRYmdpUyRHr+D9jloM5BKFNWnRPBTyCEg==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.139.tgz", + "integrity": "sha512-uSdVTMkBJtkfgKBAQxMz+lV/Kjx2IggWG1G57NIHJGNE2NMTBvpynjljLrL8jVBPAWxks4qANSsN4yixPmw7LA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.138.tgz", - "integrity": "sha512-gt9qP426kkIx4Yu2Dd9U2S44OE8ynRi47rt2HvdHaBlMsGfMH28EyMet3UT61ZVHMEoDxADQctz0JD1/29Ha1Q==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.139.tgz", + "integrity": "sha512-qpD9HQB50zZRIB/i21RjThUk7FRo7tLiHjcnSxZBnPcPYTM5sdzatrnO6b5/NnKngM1HW75OfJ1tvyccrU3Ufg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.138.tgz", - "integrity": "sha512-lySbIVGApaDQVKPwH8D+9J5dkrawJTrBm86vY7F9sDPR5yCq5Buxx6Pn1X6VKE6e5vlEEb1zbVQmCrFgdUcgig==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.139.tgz", + "integrity": "sha512-ILm4Z+StN+spNrhA6P6m9lXkmU0Ban4GeWaI2ErslyTFNaybQiwKlXlCNmsylzKlpEQd4nCpYy3vIFoeOoyJlQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.138.tgz", - "integrity": "sha512-UmDtaC9ds1SNNfhYrHW1JvBhy7wKb/Y9RcQOsfG3StxqqnYkOWDkQt9dY5O9lAG8Iw/TCxzjJhm6ul48eMv9OQ==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.139.tgz", + "integrity": "sha512-hIckLZ08lqWlHdJyFQG4tZCMdnvqqBQTB/6FYUU0pWB5bTMIixFfMV8XytWZJinNgXVgi6PApU4IHbWksUrHdg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.138.tgz", - "integrity": "sha512-evapKq/jVKMI5KDXUvpu3rhYf/L0VIg92TTphpxJSNjo7k5w9n68RY3MXtm1BmtCR4ZWtx0OEXzr9ckUDcqZDA==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.139.tgz", + "integrity": "sha512-rN5XmVXW+Y/GZ/5FiV99R/0QejuN6YwDH/LoiEE85I8ytbLPBlpL2yhSe48BPhSeHgAwLpgeaK2NOKSeuhsHrA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.138", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.138.tgz", - "integrity": "sha512-wYrARtnPg/svsQd0oovbth2JAhOugAgbnaOS0CMiWB4vaFBx+1GHJl5wzdhh9jt1kzsu4xZ4237tUeMH+s6d0A==", + "version": "1.2.139", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.139.tgz", + "integrity": "sha512-N1zvgp/xlSEgi6msYI2zkyY/B9RlIuLjuyUu5VmFY6dylCwwukCHu6Vi6kYYKEtNoZCGWvSCgKbg87TMydetxQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index a0d5e823e..9dbbfbb00 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.138", + "@swc/core": "^1.2.139", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 8cff7d28678b190f22ee1058f5ca9b23a3eec9d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 07:37:11 +0700 Subject: [PATCH 100/411] chore(deps): bump play-dl from 1.8.7 to 1.8.8 (#770) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.8.7 to 1.8.8. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.8.7...1.8.8) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75d1d27ff..491b7bb00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", + "play-dl": "^1.8.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,7 +38,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.7", + "play-dl": "^1.8.8", "youtube-dl-exec": "^2.0.3" } }, @@ -2184,9 +2185,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.7.tgz", - "integrity": "sha512-hGjK3LR85fCWmpLqTKhNh0uBqHA17E71G0ln0kvijQcHQffpeDmYH6lCaoCiHH8t72TohAPuJu4apUYmv5r2fw==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.8.tgz", + "integrity": "sha512-MK1njgYgHHTq9g4pkRd1Siz/LE7pbmgivkXycC1Zpl4psEsPtxq44Atl3fv2MeuISdx/hE7S0H8Oz4l0ZgwhHw==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4174,9 +4175,9 @@ "optional": true }, "play-dl": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.7.tgz", - "integrity": "sha512-hGjK3LR85fCWmpLqTKhNh0uBqHA17E71G0ln0kvijQcHQffpeDmYH6lCaoCiHH8t72TohAPuJu4apUYmv5r2fw==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.8.tgz", + "integrity": "sha512-MK1njgYgHHTq9g4pkRd1Siz/LE7pbmgivkXycC1Zpl4psEsPtxq44Atl3fv2MeuISdx/hE7S0H8Oz4l0ZgwhHw==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index 9dbbfbb00..57dfef818 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.7", + "play-dl": "^1.8.8", "youtube-dl-exec": "^2.0.3" } } From aeedb1a0ce1e98f0acd6a54dfe6b29886f560c93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 07:37:21 +0700 Subject: [PATCH 101/411] chore(deps-dev): bump eslint from 8.8.0 to 8.9.0 (#769) Bumps [eslint](https://github.com/eslint/eslint) from 8.8.0 to 8.9.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.8.0...v8.9.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 86 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/package-lock.json b/package-lock.json index 491b7bb00..3ce4cde97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", - "eslint": "^8.8.0", + "eslint": "^8.9.0", "typescript": "^4.5.5" }, "engines": { @@ -84,14 +84,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", + "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -1196,12 +1196,12 @@ } }, "node_modules/eslint": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", - "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", + "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.1.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -1209,10 +1209,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1288,18 +1288,18 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1319,14 +1319,14 @@ } }, "node_modules/espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "dependencies": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2729,14 +2729,14 @@ } }, "@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", + "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -3447,12 +3447,12 @@ "dev": true }, "eslint": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", - "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", + "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.1.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3460,10 +3460,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3490,9 +3490,9 @@ }, "dependencies": { "eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -3535,20 +3535,20 @@ } }, "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" } }, "esquery": { diff --git a/package.json b/package.json index 57dfef818..a52697c3a 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", - "eslint": "^8.8.0", + "eslint": "^8.9.0", "typescript": "^4.5.5" }, "engines": { From 807e0d9525d2ab8943088da8c73cec8d74d8ab9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 00:44:14 +0000 Subject: [PATCH 102/411] chore(deps-dev): bump @typescript-eslint/parser from 5.11.0 to 5.12.0 (#772) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.11.0 to 5.12.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.12.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 144 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ce4cde97..f7424dd68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", - "play-dl": "^1.8.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -30,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" }, @@ -623,14 +622,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", - "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz", + "integrity": "sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/typescript-estree": "5.12.0", "debug": "^4.3.2" }, "engines": { @@ -649,6 +648,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", + "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", + "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", + "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", + "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", @@ -3064,15 +3137,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", - "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz", + "integrity": "sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/typescript-estree": "5.12.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", + "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0" + } + }, + "@typescript-eslint/types": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", + "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", + "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", + "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index a52697c3a..82119458b 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.17", "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" }, From d4d5fe182167cd1171f82afdb0fd521703be74f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 00:46:28 +0000 Subject: [PATCH 103/411] chore(deps-dev): bump @types/node from 17.0.17 to 17.0.18 (#774) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.17 to 17.0.18. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7424dd68..94c295de0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.17", + "@types/node": "^17.0.18", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", @@ -546,9 +546,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", - "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", + "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -3078,9 +3078,9 @@ } }, "@types/node": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", - "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", + "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 82119458b..ba5047854 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.17", + "@types/node": "^17.0.18", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", From 02f7939ae265300c2e31c4df2d7918ef36fb9b68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 00:48:40 +0000 Subject: [PATCH 104/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#773) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.11.0 to 5.12.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.12.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 243 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 64 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94c295de0..c7ebbef8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.18", - "@typescript-eslint/eslint-plugin": "^5.11.0", + "@typescript-eslint/eslint-plugin": "^5.12.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" @@ -589,14 +589,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", - "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz", + "integrity": "sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/type-utils": "5.11.0", - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/type-utils": "5.12.0", + "@typescript-eslint/utils": "5.12.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -648,7 +648,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", @@ -665,87 +665,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", - "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", - "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", - "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", - "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz", + "integrity": "sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/utils": "5.12.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -766,9 +692,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", + "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -779,13 +705,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", + "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -806,15 +732,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz", + "integrity": "sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/typescript-estree": "5.12.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -830,12 +756,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", + "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.12.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3120,14 +3046,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", - "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz", + "integrity": "sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/type-utils": "5.11.0", - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/type-utils": "5.12.0", + "@typescript-eslint/utils": "5.12.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -3146,86 +3072,43 @@ "@typescript-eslint/types": "5.12.0", "@typescript-eslint/typescript-estree": "5.12.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", - "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0" - } - }, - "@typescript-eslint/types": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", - "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", - "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", - "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", + "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0" } }, "@typescript-eslint/type-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", - "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz", + "integrity": "sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/utils": "5.12.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", + "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", + "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/visitor-keys": "5.12.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3234,26 +3117,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz", + "integrity": "sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.12.0", + "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/typescript-estree": "5.12.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", + "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.12.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index ba5047854..f9bdae516 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.18", - "@typescript-eslint/eslint-plugin": "^5.11.0", + "@typescript-eslint/eslint-plugin": "^5.12.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" From cc3375b8e7b0f1ef1540ac5ba542bfc266cfe868 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 00:51:22 +0000 Subject: [PATCH 105/411] chore(deps): bump youtube-dl-exec from 2.0.3 to 2.0.4 (#771) Bumps [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/microlinkhq/youtube-dl-exec/releases) - [Changelog](https://github.com/microlinkhq/youtube-dl-exec/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/youtube-dl-exec/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: youtube-dl-exec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c7ebbef8d..2c9ab642c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", + "youtube-dl-exec": "^2.0.4", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -38,7 +39,7 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.3" + "youtube-dl-exec": "^2.0.4" } }, "node_modules/@discordjs/builders": { @@ -2666,9 +2667,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.3.tgz", - "integrity": "sha512-m0eeu05V2z/lj98Z2a8W1IPDqBTUWKUd0fFOFdmfs+c5HoBwOyoar6ktDJS/Vg5rBy0A2qLkfLJ/9qpPDag5pA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.4.tgz", + "integrity": "sha512-yh9Edsh40+skzBmNZa07ahhuLET5Ucqwgy6RQjSr4uCqJiXiQpxhUnSiR8u9wOD8zotHSZNwdVEVDhNtWkfi1A==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -4495,9 +4496,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.3.tgz", - "integrity": "sha512-m0eeu05V2z/lj98Z2a8W1IPDqBTUWKUd0fFOFdmfs+c5HoBwOyoar6ktDJS/Vg5rBy0A2qLkfLJ/9qpPDag5pA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.4.tgz", + "integrity": "sha512-yh9Edsh40+skzBmNZa07ahhuLET5Ucqwgy6RQjSr4uCqJiXiQpxhUnSiR8u9wOD8zotHSZNwdVEVDhNtWkfi1A==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index f9bdae516..47f8a7bc9 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.3" + "youtube-dl-exec": "^2.0.4" } } From 11add7cc5bf931153c514640037ec9a456f946cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Feb 2022 19:10:12 +0700 Subject: [PATCH 106/411] chore(deps): bump @swc/core from 1.2.139 to 1.2.140 (#776) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.139 to 1.2.140. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.139...v1.2.140) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 223 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2c9ab642c..250440984 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.139", + "@swc/core": "^1.2.140", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -22,7 +22,6 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.4", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -278,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.139.tgz", - "integrity": "sha512-VlISQI7H6kIJT0Hhl6UVEOAb1HcuqWCnsoMHxVGdEQZlxt8g+ggyrY7F4AZoTvfgnSEayeIdpV8Xq52Zg+zjYw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.140.tgz", + "integrity": "sha512-RKaWVry/+lVeKGD0eI2sxx5BBk/PTh2nQcLijhF8hThI9ipJtyo1JAJqE+mOynOXegb9puOEsj13ihngAVTBZQ==", "engines": { "node": ">=10" }, @@ -289,25 +288,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.139", - "@swc/core-android-arm64": "1.2.139", - "@swc/core-darwin-arm64": "1.2.139", - "@swc/core-darwin-x64": "1.2.139", - "@swc/core-freebsd-x64": "1.2.139", - "@swc/core-linux-arm-gnueabihf": "1.2.139", - "@swc/core-linux-arm64-gnu": "1.2.139", - "@swc/core-linux-arm64-musl": "1.2.139", - "@swc/core-linux-x64-gnu": "1.2.139", - "@swc/core-linux-x64-musl": "1.2.139", - "@swc/core-win32-arm64-msvc": "1.2.139", - "@swc/core-win32-ia32-msvc": "1.2.139", - "@swc/core-win32-x64-msvc": "1.2.139" + "@swc/core-android-arm-eabi": "1.2.140", + "@swc/core-android-arm64": "1.2.140", + "@swc/core-darwin-arm64": "1.2.140", + "@swc/core-darwin-x64": "1.2.140", + "@swc/core-freebsd-x64": "1.2.140", + "@swc/core-linux-arm-gnueabihf": "1.2.140", + "@swc/core-linux-arm64-gnu": "1.2.140", + "@swc/core-linux-arm64-musl": "1.2.140", + "@swc/core-linux-x64-gnu": "1.2.140", + "@swc/core-linux-x64-musl": "1.2.140", + "@swc/core-win32-arm64-msvc": "1.2.140", + "@swc/core-win32-ia32-msvc": "1.2.140", + "@swc/core-win32-x64-msvc": "1.2.140" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.139.tgz", - "integrity": "sha512-ceZNzueo6iazeO9b8txKFk/v1MOmHuCm53Cv0SMJdtEBLIs6GqpLnPzRBswnQEdL4Ge+EGD5YRtw3mAdSLcTzQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.140.tgz", + "integrity": "sha512-wxJNMg6BS0jZhuNHdemcI2GJtJzzM+DbcNpjafpWhmITRK06UoSMeN6V0C1WLU/vgFHZQkxfhqwXhuabVAWwiQ==", "cpu": [ "arm" ], @@ -320,9 +319,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.139.tgz", - "integrity": "sha512-94kdkt+1zWJbxavSlTkTbTIklKjNByiCGYf920a/D5Nb0cuRXUHfxVPToHhzetFRMoNfnQPVhL3Wid/Gt02tBw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.140.tgz", + "integrity": "sha512-jq7vKqisa0Hm02HwXnf0SaLiow1Ezjm2IQorsPcMVh82i461k6YDiay6qgcvgDhkqVPVL+FR7dF39jjmk0v5Bw==", "cpu": [ "arm64" ], @@ -335,9 +334,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.139.tgz", - "integrity": "sha512-l3C6ItB4OX1QEART1TnaUNzHeviDinbRQQZKJI8xo23HnhV0pvDjYl0D62R+1/7e8KiSweEG8BuKEtXPEYCBlw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.140.tgz", + "integrity": "sha512-TWlyLablaopI3Cf6Zooknw0kd0Sla2r7ZCqfC/lK/8a8zwN8335gJcSXtyVeWnF3nx5F+rZZY9EPdJqJ3jL0Cw==", "cpu": [ "arm64" ], @@ -350,9 +349,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.139.tgz", - "integrity": "sha512-4KMTARit3LiJ+IZtxRAfiv7V7rrqryIxs+uZJmOfjenGIp3A+ygYzbm9PT/wfRiefL9Ds1nLBSAA1tQ6jiwObA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.140.tgz", + "integrity": "sha512-d44A0PW+ZP8wRh/iFhu0UzUwRkcswGkUXJy1187Q3jLm6uxdW2rH4DoFQHRuABXh4tDjd3cXRClz/xSURNIJDA==", "cpu": [ "x64" ], @@ -365,9 +364,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.139.tgz", - "integrity": "sha512-qZFIV98J7IS692JSSsTWmhBB9jVv0zmqHm+65xAblitlZ06wyFpOF7cLBuJQPdEXxrmoD3z6skD879U5q89NGw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.140.tgz", + "integrity": "sha512-L4luX3JDrNDouYcjvDUsdE2CLk/EMpEHHveUSM+dHvyVeJ/eVPZFTyeiBpc1E/rymHWa2C2nIYAe/v8yZqcjDA==", "cpu": [ "x64" ], @@ -380,9 +379,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.139.tgz", - "integrity": "sha512-DX/yRuOrDRoddvofDgbuXmJXFHtGL+M0TgQll+7M2bW293jTGT1D1dkQuTQ/oxiVyA5bXShm+/Rrh8ozNf/ieA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.140.tgz", + "integrity": "sha512-rNjGhWvBazig/5/gqdMziPXsSse3/sv5zTy8GfKP8F9ZhToxJ+Hg5Vr+DqrrzVgVE5zhzbiWxoiScr6W+wER6g==", "cpu": [ "arm" ], @@ -395,9 +394,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.139.tgz", - "integrity": "sha512-ScLMFY121bzO4yOALxHlHut8Gj/cfJ74NL0JOzwtzL4lUJ1wkgmkHFJQNn5gXXrkTcfKR7o9D00R0WsbCfJGYA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.140.tgz", + "integrity": "sha512-ws7uMHVbwXkXr8CRwmYgQca5mB36iJ/Y4LNXvfpaPsmQsCDVBvXmg4pEk4g/0e53By02GcErn31kPisJsiHt5w==", "cpu": [ "arm64" ], @@ -410,9 +409,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.139.tgz", - "integrity": "sha512-uSdVTMkBJtkfgKBAQxMz+lV/Kjx2IggWG1G57NIHJGNE2NMTBvpynjljLrL8jVBPAWxks4qANSsN4yixPmw7LA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.140.tgz", + "integrity": "sha512-YwueGxb9IXfDh5B/3ezI3F8deoyhiNNuItnUjoUG2+xuNyjGBr8EOoddfbnZD1HxqRyyZXIhed4Lohsz5LQi+g==", "cpu": [ "arm64" ], @@ -425,9 +424,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.139.tgz", - "integrity": "sha512-qpD9HQB50zZRIB/i21RjThUk7FRo7tLiHjcnSxZBnPcPYTM5sdzatrnO6b5/NnKngM1HW75OfJ1tvyccrU3Ufg==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.140.tgz", + "integrity": "sha512-z3O9uDHQA/fhiJeYp7jvoeiHiFsS5Y0t1SBU2eqQnCSlJK7V+V0Fn6WmcmVlnowI3ffI+k1lyncoQNGhlrUZZQ==", "cpu": [ "x64" ], @@ -440,9 +439,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.139.tgz", - "integrity": "sha512-ILm4Z+StN+spNrhA6P6m9lXkmU0Ban4GeWaI2ErslyTFNaybQiwKlXlCNmsylzKlpEQd4nCpYy3vIFoeOoyJlQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.140.tgz", + "integrity": "sha512-PYlKrlzTkYVpFg2LnLI+Lk4I8X+/xWZvUZCAPo+GjbMpRDmp2/K9GWFNQxMBAHft+Z97jqzbL/GA37Op954XbQ==", "cpu": [ "x64" ], @@ -455,9 +454,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.139.tgz", - "integrity": "sha512-hIckLZ08lqWlHdJyFQG4tZCMdnvqqBQTB/6FYUU0pWB5bTMIixFfMV8XytWZJinNgXVgi6PApU4IHbWksUrHdg==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.140.tgz", + "integrity": "sha512-OJrpVLHzrA+U0vLXEoQ4xWGuZr3oTwmR/J+g8+899wCMA6NAekWoO9k+mLku6RkOHD8Q6cHmVA7nEJFdkvi2ng==", "cpu": [ "arm64" ], @@ -470,9 +469,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.139.tgz", - "integrity": "sha512-rN5XmVXW+Y/GZ/5FiV99R/0QejuN6YwDH/LoiEE85I8ytbLPBlpL2yhSe48BPhSeHgAwLpgeaK2NOKSeuhsHrA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.140.tgz", + "integrity": "sha512-tH7nQPI0QopAgl+/lQIu8bIohmiof0zHOWd17TYV2C4gPka4VQH4CvF8NJLEdLnRhn+r0tHlrREWnuPakzN+Lw==", "cpu": [ "ia32" ], @@ -485,9 +484,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.139.tgz", - "integrity": "sha512-N1zvgp/xlSEgi6msYI2zkyY/B9RlIuLjuyUu5VmFY6dylCwwukCHu6Vi6kYYKEtNoZCGWvSCgKbg87TMydetxQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.140.tgz", + "integrity": "sha512-OtRarHcQ30WrkmIUXB96K1h1bsY830POJ0kb02VxTn/U9366BWs42fIoURa+637jPCZLfAceln10jxjfII1Iyg==", "cpu": [ "x64" ], @@ -2863,101 +2862,101 @@ } }, "@swc/core": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.139.tgz", - "integrity": "sha512-VlISQI7H6kIJT0Hhl6UVEOAb1HcuqWCnsoMHxVGdEQZlxt8g+ggyrY7F4AZoTvfgnSEayeIdpV8Xq52Zg+zjYw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.140.tgz", + "integrity": "sha512-RKaWVry/+lVeKGD0eI2sxx5BBk/PTh2nQcLijhF8hThI9ipJtyo1JAJqE+mOynOXegb9puOEsj13ihngAVTBZQ==", "requires": { - "@swc/core-android-arm-eabi": "1.2.139", - "@swc/core-android-arm64": "1.2.139", - "@swc/core-darwin-arm64": "1.2.139", - "@swc/core-darwin-x64": "1.2.139", - "@swc/core-freebsd-x64": "1.2.139", - "@swc/core-linux-arm-gnueabihf": "1.2.139", - "@swc/core-linux-arm64-gnu": "1.2.139", - "@swc/core-linux-arm64-musl": "1.2.139", - "@swc/core-linux-x64-gnu": "1.2.139", - "@swc/core-linux-x64-musl": "1.2.139", - "@swc/core-win32-arm64-msvc": "1.2.139", - "@swc/core-win32-ia32-msvc": "1.2.139", - "@swc/core-win32-x64-msvc": "1.2.139" + "@swc/core-android-arm-eabi": "1.2.140", + "@swc/core-android-arm64": "1.2.140", + "@swc/core-darwin-arm64": "1.2.140", + "@swc/core-darwin-x64": "1.2.140", + "@swc/core-freebsd-x64": "1.2.140", + "@swc/core-linux-arm-gnueabihf": "1.2.140", + "@swc/core-linux-arm64-gnu": "1.2.140", + "@swc/core-linux-arm64-musl": "1.2.140", + "@swc/core-linux-x64-gnu": "1.2.140", + "@swc/core-linux-x64-musl": "1.2.140", + "@swc/core-win32-arm64-msvc": "1.2.140", + "@swc/core-win32-ia32-msvc": "1.2.140", + "@swc/core-win32-x64-msvc": "1.2.140" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.139.tgz", - "integrity": "sha512-ceZNzueo6iazeO9b8txKFk/v1MOmHuCm53Cv0SMJdtEBLIs6GqpLnPzRBswnQEdL4Ge+EGD5YRtw3mAdSLcTzQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.140.tgz", + "integrity": "sha512-wxJNMg6BS0jZhuNHdemcI2GJtJzzM+DbcNpjafpWhmITRK06UoSMeN6V0C1WLU/vgFHZQkxfhqwXhuabVAWwiQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.139.tgz", - "integrity": "sha512-94kdkt+1zWJbxavSlTkTbTIklKjNByiCGYf920a/D5Nb0cuRXUHfxVPToHhzetFRMoNfnQPVhL3Wid/Gt02tBw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.140.tgz", + "integrity": "sha512-jq7vKqisa0Hm02HwXnf0SaLiow1Ezjm2IQorsPcMVh82i461k6YDiay6qgcvgDhkqVPVL+FR7dF39jjmk0v5Bw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.139.tgz", - "integrity": "sha512-l3C6ItB4OX1QEART1TnaUNzHeviDinbRQQZKJI8xo23HnhV0pvDjYl0D62R+1/7e8KiSweEG8BuKEtXPEYCBlw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.140.tgz", + "integrity": "sha512-TWlyLablaopI3Cf6Zooknw0kd0Sla2r7ZCqfC/lK/8a8zwN8335gJcSXtyVeWnF3nx5F+rZZY9EPdJqJ3jL0Cw==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.139.tgz", - "integrity": "sha512-4KMTARit3LiJ+IZtxRAfiv7V7rrqryIxs+uZJmOfjenGIp3A+ygYzbm9PT/wfRiefL9Ds1nLBSAA1tQ6jiwObA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.140.tgz", + "integrity": "sha512-d44A0PW+ZP8wRh/iFhu0UzUwRkcswGkUXJy1187Q3jLm6uxdW2rH4DoFQHRuABXh4tDjd3cXRClz/xSURNIJDA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.139.tgz", - "integrity": "sha512-qZFIV98J7IS692JSSsTWmhBB9jVv0zmqHm+65xAblitlZ06wyFpOF7cLBuJQPdEXxrmoD3z6skD879U5q89NGw==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.140.tgz", + "integrity": "sha512-L4luX3JDrNDouYcjvDUsdE2CLk/EMpEHHveUSM+dHvyVeJ/eVPZFTyeiBpc1E/rymHWa2C2nIYAe/v8yZqcjDA==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.139.tgz", - "integrity": "sha512-DX/yRuOrDRoddvofDgbuXmJXFHtGL+M0TgQll+7M2bW293jTGT1D1dkQuTQ/oxiVyA5bXShm+/Rrh8ozNf/ieA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.140.tgz", + "integrity": "sha512-rNjGhWvBazig/5/gqdMziPXsSse3/sv5zTy8GfKP8F9ZhToxJ+Hg5Vr+DqrrzVgVE5zhzbiWxoiScr6W+wER6g==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.139.tgz", - "integrity": "sha512-ScLMFY121bzO4yOALxHlHut8Gj/cfJ74NL0JOzwtzL4lUJ1wkgmkHFJQNn5gXXrkTcfKR7o9D00R0WsbCfJGYA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.140.tgz", + "integrity": "sha512-ws7uMHVbwXkXr8CRwmYgQca5mB36iJ/Y4LNXvfpaPsmQsCDVBvXmg4pEk4g/0e53By02GcErn31kPisJsiHt5w==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.139.tgz", - "integrity": "sha512-uSdVTMkBJtkfgKBAQxMz+lV/Kjx2IggWG1G57NIHJGNE2NMTBvpynjljLrL8jVBPAWxks4qANSsN4yixPmw7LA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.140.tgz", + "integrity": "sha512-YwueGxb9IXfDh5B/3ezI3F8deoyhiNNuItnUjoUG2+xuNyjGBr8EOoddfbnZD1HxqRyyZXIhed4Lohsz5LQi+g==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.139.tgz", - "integrity": "sha512-qpD9HQB50zZRIB/i21RjThUk7FRo7tLiHjcnSxZBnPcPYTM5sdzatrnO6b5/NnKngM1HW75OfJ1tvyccrU3Ufg==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.140.tgz", + "integrity": "sha512-z3O9uDHQA/fhiJeYp7jvoeiHiFsS5Y0t1SBU2eqQnCSlJK7V+V0Fn6WmcmVlnowI3ffI+k1lyncoQNGhlrUZZQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.139.tgz", - "integrity": "sha512-ILm4Z+StN+spNrhA6P6m9lXkmU0Ban4GeWaI2ErslyTFNaybQiwKlXlCNmsylzKlpEQd4nCpYy3vIFoeOoyJlQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.140.tgz", + "integrity": "sha512-PYlKrlzTkYVpFg2LnLI+Lk4I8X+/xWZvUZCAPo+GjbMpRDmp2/K9GWFNQxMBAHft+Z97jqzbL/GA37Op954XbQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.139.tgz", - "integrity": "sha512-hIckLZ08lqWlHdJyFQG4tZCMdnvqqBQTB/6FYUU0pWB5bTMIixFfMV8XytWZJinNgXVgi6PApU4IHbWksUrHdg==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.140.tgz", + "integrity": "sha512-OJrpVLHzrA+U0vLXEoQ4xWGuZr3oTwmR/J+g8+899wCMA6NAekWoO9k+mLku6RkOHD8Q6cHmVA7nEJFdkvi2ng==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.139.tgz", - "integrity": "sha512-rN5XmVXW+Y/GZ/5FiV99R/0QejuN6YwDH/LoiEE85I8ytbLPBlpL2yhSe48BPhSeHgAwLpgeaK2NOKSeuhsHrA==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.140.tgz", + "integrity": "sha512-tH7nQPI0QopAgl+/lQIu8bIohmiof0zHOWd17TYV2C4gPka4VQH4CvF8NJLEdLnRhn+r0tHlrREWnuPakzN+Lw==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.139", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.139.tgz", - "integrity": "sha512-N1zvgp/xlSEgi6msYI2zkyY/B9RlIuLjuyUu5VmFY6dylCwwukCHu6Vi6kYYKEtNoZCGWvSCgKbg87TMydetxQ==", + "version": "1.2.140", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.140.tgz", + "integrity": "sha512-OtRarHcQ30WrkmIUXB96K1h1bsY830POJ0kb02VxTn/U9366BWs42fIoURa+637jPCZLfAceln10jxjfII1Iyg==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 47f8a7bc9..691b571a7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.139", + "@swc/core": "^1.2.140", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 89dfa17658522f410c2020aae02c3150af515b3b Mon Sep 17 00:00:00 2001 From: PikaProgram <liroshea@yahoo.com> Date: Fri, 18 Feb 2022 14:20:39 +0700 Subject: [PATCH 107/411] fix(*): Fix file url parsing for linux paths (#779) Co-authored-by: Rasyad Satyatma <lirosphere@yahoo.com> --- src/utils/functions/importURLToString.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/utils/functions/importURLToString.ts b/src/utils/functions/importURLToString.ts index a574e93b1..cb3ec56b3 100644 --- a/src/utils/functions/importURLToString.ts +++ b/src/utils/functions/importURLToString.ts @@ -1,8 +1,12 @@ import { URL } from "url"; +import { platform } from "os"; export function importURLToString(url: string): string { - const paths = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); + const pathArray = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); - paths.pop(); - return decodeURIComponent(paths.join("/")); + pathArray.pop(); + + const path = pathArray.join("/"); + + return decodeURIComponent(`${platform() === "win32" ? "" : "/"}${path}`); } From c86c75875310225d99707ffc570b16e448e60f83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Feb 2022 05:02:05 +0000 Subject: [PATCH 108/411] chore(deps): bump youtube-dl-exec from 2.0.4 to 2.0.5 (#777) Bumps [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/microlinkhq/youtube-dl-exec/releases) - [Changelog](https://github.com/microlinkhq/youtube-dl-exec/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/youtube-dl-exec/compare/v2.0.4...v2.0.5) --- updated-dependencies: - dependency-name: youtube-dl-exec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 250440984..f15fb1bf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", + "youtube-dl-exec": "^2.0.5", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -38,7 +39,7 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.4" + "youtube-dl-exec": "^2.0.5" } }, "node_modules/@discordjs/builders": { @@ -2666,9 +2667,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.4.tgz", - "integrity": "sha512-yh9Edsh40+skzBmNZa07ahhuLET5Ucqwgy6RQjSr4uCqJiXiQpxhUnSiR8u9wOD8zotHSZNwdVEVDhNtWkfi1A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.5.tgz", + "integrity": "sha512-30U32q9eVfudfsFILHKqHGCzxPAm4X6ndA74modMGuYrM9hVyEYmn9xRYf7dqj0DB28EDuiA1e0veJ1eMkKiig==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -4495,9 +4496,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.4.tgz", - "integrity": "sha512-yh9Edsh40+skzBmNZa07ahhuLET5Ucqwgy6RQjSr4uCqJiXiQpxhUnSiR8u9wOD8zotHSZNwdVEVDhNtWkfi1A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.5.tgz", + "integrity": "sha512-30U32q9eVfudfsFILHKqHGCzxPAm4X6ndA74modMGuYrM9hVyEYmn9xRYf7dqj0DB28EDuiA1e0veJ1eMkKiig==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index 691b571a7..1adeb580c 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.4" + "youtube-dl-exec": "^2.0.5" } } From 568293ba8ad8ba46a4f9f9a0b0737791cb75b78c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Feb 2022 05:04:21 +0000 Subject: [PATCH 109/411] chore(deps): bump @swc/core from 1.2.140 to 1.2.142 (#780) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.140 to 1.2.142. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.140...v1.2.142) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 223 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index f15fb1bf2..77de81744 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.140", + "@swc/core": "^1.2.142", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -22,7 +22,6 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.5", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -278,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.140.tgz", - "integrity": "sha512-RKaWVry/+lVeKGD0eI2sxx5BBk/PTh2nQcLijhF8hThI9ipJtyo1JAJqE+mOynOXegb9puOEsj13ihngAVTBZQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.142.tgz", + "integrity": "sha512-prdlvUPvpNduQpSCNZHH+8eYDlghAkqGG1P7nCyFNSLQEHEVzt+wSo4QcYFbQXl6XYAsrgYggNybJFfLdPTB/Q==", "engines": { "node": ">=10" }, @@ -289,25 +288,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.140", - "@swc/core-android-arm64": "1.2.140", - "@swc/core-darwin-arm64": "1.2.140", - "@swc/core-darwin-x64": "1.2.140", - "@swc/core-freebsd-x64": "1.2.140", - "@swc/core-linux-arm-gnueabihf": "1.2.140", - "@swc/core-linux-arm64-gnu": "1.2.140", - "@swc/core-linux-arm64-musl": "1.2.140", - "@swc/core-linux-x64-gnu": "1.2.140", - "@swc/core-linux-x64-musl": "1.2.140", - "@swc/core-win32-arm64-msvc": "1.2.140", - "@swc/core-win32-ia32-msvc": "1.2.140", - "@swc/core-win32-x64-msvc": "1.2.140" + "@swc/core-android-arm-eabi": "1.2.142", + "@swc/core-android-arm64": "1.2.142", + "@swc/core-darwin-arm64": "1.2.142", + "@swc/core-darwin-x64": "1.2.142", + "@swc/core-freebsd-x64": "1.2.142", + "@swc/core-linux-arm-gnueabihf": "1.2.142", + "@swc/core-linux-arm64-gnu": "1.2.142", + "@swc/core-linux-arm64-musl": "1.2.142", + "@swc/core-linux-x64-gnu": "1.2.142", + "@swc/core-linux-x64-musl": "1.2.142", + "@swc/core-win32-arm64-msvc": "1.2.142", + "@swc/core-win32-ia32-msvc": "1.2.142", + "@swc/core-win32-x64-msvc": "1.2.142" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.140.tgz", - "integrity": "sha512-wxJNMg6BS0jZhuNHdemcI2GJtJzzM+DbcNpjafpWhmITRK06UoSMeN6V0C1WLU/vgFHZQkxfhqwXhuabVAWwiQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.142.tgz", + "integrity": "sha512-UL6kTbg6wNTmYaOxjTaK1XMI305QpMS25KjRnGvUEcg8cpU2P6AFDOQPHmDvZMRJnQPrqbuQFnWoL0Yt0DxxYQ==", "cpu": [ "arm" ], @@ -320,9 +319,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.140.tgz", - "integrity": "sha512-jq7vKqisa0Hm02HwXnf0SaLiow1Ezjm2IQorsPcMVh82i461k6YDiay6qgcvgDhkqVPVL+FR7dF39jjmk0v5Bw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.142.tgz", + "integrity": "sha512-Aeybyorm4qdL/MTq8zRHpAf5T+SMiHQD0kFNRMFIzACBUF/M6oNGPOcATyqGtwnOML6DBPc58sBz7nwgtUEx3w==", "cpu": [ "arm64" ], @@ -335,9 +334,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.140.tgz", - "integrity": "sha512-TWlyLablaopI3Cf6Zooknw0kd0Sla2r7ZCqfC/lK/8a8zwN8335gJcSXtyVeWnF3nx5F+rZZY9EPdJqJ3jL0Cw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.142.tgz", + "integrity": "sha512-ttSnro5d9GKZsU7e3AfGX+LaTq09LQBVvHQ+RDQSVlZoSpMNO2Jh7odSM8DsJ2TTE4eSvabCDrILuRfaiFRkIA==", "cpu": [ "arm64" ], @@ -350,9 +349,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.140.tgz", - "integrity": "sha512-d44A0PW+ZP8wRh/iFhu0UzUwRkcswGkUXJy1187Q3jLm6uxdW2rH4DoFQHRuABXh4tDjd3cXRClz/xSURNIJDA==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.142.tgz", + "integrity": "sha512-YfaNIzCN9G7PaDTNCjyo1CMTWYHxpWGl3/otNtwSTpcgdqnYfcf/IeqI6iUSCMWW036/UtkHD8PiFZ809zanfQ==", "cpu": [ "x64" ], @@ -365,9 +364,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.140.tgz", - "integrity": "sha512-L4luX3JDrNDouYcjvDUsdE2CLk/EMpEHHveUSM+dHvyVeJ/eVPZFTyeiBpc1E/rymHWa2C2nIYAe/v8yZqcjDA==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.142.tgz", + "integrity": "sha512-+LXcwBPS2m8nS7EHAS+7U0QLTswxkoR5J9a8eZdN7hLKYbLIMe34KjitxPTHyFePiL6rbT5trbhFWcaH5GcANA==", "cpu": [ "x64" ], @@ -380,9 +379,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.140.tgz", - "integrity": "sha512-rNjGhWvBazig/5/gqdMziPXsSse3/sv5zTy8GfKP8F9ZhToxJ+Hg5Vr+DqrrzVgVE5zhzbiWxoiScr6W+wER6g==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.142.tgz", + "integrity": "sha512-s6g4m93uXIoK4GaF+Gc2gwlTgkseI01YNXy5IrdESStU2hivluWK1zDG4KV4n5nZHS9IeUdLubXfE6rg2pGGRg==", "cpu": [ "arm" ], @@ -395,9 +394,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.140.tgz", - "integrity": "sha512-ws7uMHVbwXkXr8CRwmYgQca5mB36iJ/Y4LNXvfpaPsmQsCDVBvXmg4pEk4g/0e53By02GcErn31kPisJsiHt5w==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.142.tgz", + "integrity": "sha512-p6ykRE2Er6e0ugoVytAk/a0R314jVGxwEwy0n1Zludm1y0PdvH2c6Esg6+DfHlNWpJe5qJeiSrhem8bk3yKvOg==", "cpu": [ "arm64" ], @@ -410,9 +409,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.140.tgz", - "integrity": "sha512-YwueGxb9IXfDh5B/3ezI3F8deoyhiNNuItnUjoUG2+xuNyjGBr8EOoddfbnZD1HxqRyyZXIhed4Lohsz5LQi+g==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.142.tgz", + "integrity": "sha512-QYakIi86KUy1QSDC7JXElMNPSi5Jw/KawwsMB7S8bI4p/hNhbfYgz/HGk19hZVMV6YOW/MDq5b47W4P0lYWYZg==", "cpu": [ "arm64" ], @@ -425,9 +424,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.140.tgz", - "integrity": "sha512-z3O9uDHQA/fhiJeYp7jvoeiHiFsS5Y0t1SBU2eqQnCSlJK7V+V0Fn6WmcmVlnowI3ffI+k1lyncoQNGhlrUZZQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.142.tgz", + "integrity": "sha512-7O2VpLPUIW+kOmq309+XJL5eVlMGHlUrQ+nxHuP2oGvWvn0o/ybAmzRnDB8RJ10NnFH1JU30irhfU8ajbGNxQg==", "cpu": [ "x64" ], @@ -440,9 +439,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.140.tgz", - "integrity": "sha512-PYlKrlzTkYVpFg2LnLI+Lk4I8X+/xWZvUZCAPo+GjbMpRDmp2/K9GWFNQxMBAHft+Z97jqzbL/GA37Op954XbQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.142.tgz", + "integrity": "sha512-E1Iyn7/fzQiVpHRQDZ6g0i/kLCNRY9dbVr8ujizT7fTUt4Hl2+UawdLsIxV0DLGJXM5d9ksWo5CjBSeUBUylCw==", "cpu": [ "x64" ], @@ -455,9 +454,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.140.tgz", - "integrity": "sha512-OJrpVLHzrA+U0vLXEoQ4xWGuZr3oTwmR/J+g8+899wCMA6NAekWoO9k+mLku6RkOHD8Q6cHmVA7nEJFdkvi2ng==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.142.tgz", + "integrity": "sha512-hejHQ2ApVdG5X0w5AwxoCWuoTFBstSXnnBvhwtuHIYgTqQYdpcE25yLslvyBQ3f4WWePPj7BntNtlVLjG54OcA==", "cpu": [ "arm64" ], @@ -470,9 +469,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.140.tgz", - "integrity": "sha512-tH7nQPI0QopAgl+/lQIu8bIohmiof0zHOWd17TYV2C4gPka4VQH4CvF8NJLEdLnRhn+r0tHlrREWnuPakzN+Lw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.142.tgz", + "integrity": "sha512-cRnKsMgr70k5smM3crmiMurFeBoJkf5GLAb6bubuxUCQCfZigJ16Dcn0Y+5G4i/WuNWcesBjMC0FH5sfiZ00vg==", "cpu": [ "ia32" ], @@ -485,9 +484,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.140.tgz", - "integrity": "sha512-OtRarHcQ30WrkmIUXB96K1h1bsY830POJ0kb02VxTn/U9366BWs42fIoURa+637jPCZLfAceln10jxjfII1Iyg==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.142.tgz", + "integrity": "sha512-LOgCwix8O+9r3VItWnNn2jeIANQGoFCB1M+ETds0SLgyLDaHo2KlNc6B5TEKd8RXjEz4M33x3F0yNutkVCWZ2g==", "cpu": [ "x64" ], @@ -2863,101 +2862,101 @@ } }, "@swc/core": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.140.tgz", - "integrity": "sha512-RKaWVry/+lVeKGD0eI2sxx5BBk/PTh2nQcLijhF8hThI9ipJtyo1JAJqE+mOynOXegb9puOEsj13ihngAVTBZQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.142.tgz", + "integrity": "sha512-prdlvUPvpNduQpSCNZHH+8eYDlghAkqGG1P7nCyFNSLQEHEVzt+wSo4QcYFbQXl6XYAsrgYggNybJFfLdPTB/Q==", "requires": { - "@swc/core-android-arm-eabi": "1.2.140", - "@swc/core-android-arm64": "1.2.140", - "@swc/core-darwin-arm64": "1.2.140", - "@swc/core-darwin-x64": "1.2.140", - "@swc/core-freebsd-x64": "1.2.140", - "@swc/core-linux-arm-gnueabihf": "1.2.140", - "@swc/core-linux-arm64-gnu": "1.2.140", - "@swc/core-linux-arm64-musl": "1.2.140", - "@swc/core-linux-x64-gnu": "1.2.140", - "@swc/core-linux-x64-musl": "1.2.140", - "@swc/core-win32-arm64-msvc": "1.2.140", - "@swc/core-win32-ia32-msvc": "1.2.140", - "@swc/core-win32-x64-msvc": "1.2.140" + "@swc/core-android-arm-eabi": "1.2.142", + "@swc/core-android-arm64": "1.2.142", + "@swc/core-darwin-arm64": "1.2.142", + "@swc/core-darwin-x64": "1.2.142", + "@swc/core-freebsd-x64": "1.2.142", + "@swc/core-linux-arm-gnueabihf": "1.2.142", + "@swc/core-linux-arm64-gnu": "1.2.142", + "@swc/core-linux-arm64-musl": "1.2.142", + "@swc/core-linux-x64-gnu": "1.2.142", + "@swc/core-linux-x64-musl": "1.2.142", + "@swc/core-win32-arm64-msvc": "1.2.142", + "@swc/core-win32-ia32-msvc": "1.2.142", + "@swc/core-win32-x64-msvc": "1.2.142" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.140.tgz", - "integrity": "sha512-wxJNMg6BS0jZhuNHdemcI2GJtJzzM+DbcNpjafpWhmITRK06UoSMeN6V0C1WLU/vgFHZQkxfhqwXhuabVAWwiQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.142.tgz", + "integrity": "sha512-UL6kTbg6wNTmYaOxjTaK1XMI305QpMS25KjRnGvUEcg8cpU2P6AFDOQPHmDvZMRJnQPrqbuQFnWoL0Yt0DxxYQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.140.tgz", - "integrity": "sha512-jq7vKqisa0Hm02HwXnf0SaLiow1Ezjm2IQorsPcMVh82i461k6YDiay6qgcvgDhkqVPVL+FR7dF39jjmk0v5Bw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.142.tgz", + "integrity": "sha512-Aeybyorm4qdL/MTq8zRHpAf5T+SMiHQD0kFNRMFIzACBUF/M6oNGPOcATyqGtwnOML6DBPc58sBz7nwgtUEx3w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.140.tgz", - "integrity": "sha512-TWlyLablaopI3Cf6Zooknw0kd0Sla2r7ZCqfC/lK/8a8zwN8335gJcSXtyVeWnF3nx5F+rZZY9EPdJqJ3jL0Cw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.142.tgz", + "integrity": "sha512-ttSnro5d9GKZsU7e3AfGX+LaTq09LQBVvHQ+RDQSVlZoSpMNO2Jh7odSM8DsJ2TTE4eSvabCDrILuRfaiFRkIA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.140.tgz", - "integrity": "sha512-d44A0PW+ZP8wRh/iFhu0UzUwRkcswGkUXJy1187Q3jLm6uxdW2rH4DoFQHRuABXh4tDjd3cXRClz/xSURNIJDA==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.142.tgz", + "integrity": "sha512-YfaNIzCN9G7PaDTNCjyo1CMTWYHxpWGl3/otNtwSTpcgdqnYfcf/IeqI6iUSCMWW036/UtkHD8PiFZ809zanfQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.140.tgz", - "integrity": "sha512-L4luX3JDrNDouYcjvDUsdE2CLk/EMpEHHveUSM+dHvyVeJ/eVPZFTyeiBpc1E/rymHWa2C2nIYAe/v8yZqcjDA==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.142.tgz", + "integrity": "sha512-+LXcwBPS2m8nS7EHAS+7U0QLTswxkoR5J9a8eZdN7hLKYbLIMe34KjitxPTHyFePiL6rbT5trbhFWcaH5GcANA==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.140.tgz", - "integrity": "sha512-rNjGhWvBazig/5/gqdMziPXsSse3/sv5zTy8GfKP8F9ZhToxJ+Hg5Vr+DqrrzVgVE5zhzbiWxoiScr6W+wER6g==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.142.tgz", + "integrity": "sha512-s6g4m93uXIoK4GaF+Gc2gwlTgkseI01YNXy5IrdESStU2hivluWK1zDG4KV4n5nZHS9IeUdLubXfE6rg2pGGRg==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.140.tgz", - "integrity": "sha512-ws7uMHVbwXkXr8CRwmYgQca5mB36iJ/Y4LNXvfpaPsmQsCDVBvXmg4pEk4g/0e53By02GcErn31kPisJsiHt5w==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.142.tgz", + "integrity": "sha512-p6ykRE2Er6e0ugoVytAk/a0R314jVGxwEwy0n1Zludm1y0PdvH2c6Esg6+DfHlNWpJe5qJeiSrhem8bk3yKvOg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.140.tgz", - "integrity": "sha512-YwueGxb9IXfDh5B/3ezI3F8deoyhiNNuItnUjoUG2+xuNyjGBr8EOoddfbnZD1HxqRyyZXIhed4Lohsz5LQi+g==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.142.tgz", + "integrity": "sha512-QYakIi86KUy1QSDC7JXElMNPSi5Jw/KawwsMB7S8bI4p/hNhbfYgz/HGk19hZVMV6YOW/MDq5b47W4P0lYWYZg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.140.tgz", - "integrity": "sha512-z3O9uDHQA/fhiJeYp7jvoeiHiFsS5Y0t1SBU2eqQnCSlJK7V+V0Fn6WmcmVlnowI3ffI+k1lyncoQNGhlrUZZQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.142.tgz", + "integrity": "sha512-7O2VpLPUIW+kOmq309+XJL5eVlMGHlUrQ+nxHuP2oGvWvn0o/ybAmzRnDB8RJ10NnFH1JU30irhfU8ajbGNxQg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.140.tgz", - "integrity": "sha512-PYlKrlzTkYVpFg2LnLI+Lk4I8X+/xWZvUZCAPo+GjbMpRDmp2/K9GWFNQxMBAHft+Z97jqzbL/GA37Op954XbQ==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.142.tgz", + "integrity": "sha512-E1Iyn7/fzQiVpHRQDZ6g0i/kLCNRY9dbVr8ujizT7fTUt4Hl2+UawdLsIxV0DLGJXM5d9ksWo5CjBSeUBUylCw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.140.tgz", - "integrity": "sha512-OJrpVLHzrA+U0vLXEoQ4xWGuZr3oTwmR/J+g8+899wCMA6NAekWoO9k+mLku6RkOHD8Q6cHmVA7nEJFdkvi2ng==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.142.tgz", + "integrity": "sha512-hejHQ2ApVdG5X0w5AwxoCWuoTFBstSXnnBvhwtuHIYgTqQYdpcE25yLslvyBQ3f4WWePPj7BntNtlVLjG54OcA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.140.tgz", - "integrity": "sha512-tH7nQPI0QopAgl+/lQIu8bIohmiof0zHOWd17TYV2C4gPka4VQH4CvF8NJLEdLnRhn+r0tHlrREWnuPakzN+Lw==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.142.tgz", + "integrity": "sha512-cRnKsMgr70k5smM3crmiMurFeBoJkf5GLAb6bubuxUCQCfZigJ16Dcn0Y+5G4i/WuNWcesBjMC0FH5sfiZ00vg==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.140", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.140.tgz", - "integrity": "sha512-OtRarHcQ30WrkmIUXB96K1h1bsY830POJ0kb02VxTn/U9366BWs42fIoURa+637jPCZLfAceln10jxjfII1Iyg==", + "version": "1.2.142", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.142.tgz", + "integrity": "sha512-LOgCwix8O+9r3VItWnNn2jeIANQGoFCB1M+ETds0SLgyLDaHo2KlNc6B5TEKd8RXjEz4M33x3F0yNutkVCWZ2g==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 1adeb580c..af1fc60be 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.140", + "@swc/core": "^1.2.142", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 9c16e885191429a376753dcc5b31031b74d015b7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:45:40 +0900 Subject: [PATCH 110/411] fix(WarnCommand): fix format of warn DM embed footer not yet replaced --- src/commands/moderation/WarnCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index e1b94bed6..1e0abbb88 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -58,7 +58,7 @@ export class WarnCommand extends BaseCommand { ) .addField(i18n.__("commands.moderation.common.reasonString"), displayReason) .setFooter({ - text: i18n.__("commands.moderation.warn.warnedByString"), + text: i18n.__mf("commands.moderation.warn.warnedByString", { author: ctx.author.tag }), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) }) .setTimestamp(time); From 1d36a5e5c49416bade6103c8ed1d9430562e207b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:47:27 +0900 Subject: [PATCH 111/411] fix(BanCommand): wrong name in ban DM embed footer format replacement --- src/commands/moderation/BanCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index 7fc252a5b..e2717911a 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -65,7 +65,7 @@ export class BanCommand extends BaseCommand { .setFooter({ text: i18n.__mf( "commands.moderation.ban.bannedByString", { - guildName: ctx.author.tag + author: ctx.author.tag } ), iconURL: ctx.author.displayAvatarURL({ dynamic: true }) From 4358879fc4f5c69755c2c76615d2326976c94af5 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:48:00 +0900 Subject: [PATCH 112/411] feat(utils): create ModerationLogs utility --- src/utils/structures/ModerationLogs.ts | 78 ++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/utils/structures/ModerationLogs.ts diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts new file mode 100644 index 000000000..ccaed926f --- /dev/null +++ b/src/utils/structures/ModerationLogs.ts @@ -0,0 +1,78 @@ +import { createEmbed } from "../functions/createEmbed"; +import { Rawon } from "../../structures/Rawon"; +import { Guild, GuildBan, TextChannel, User } from "discord.js"; + +export class ModerationLogs { + public constructor(public readonly client: Rawon) {} + + public async handleWarn(options: { + author: User; + guild: Guild; + reason: string | null; + user: User; + }): Promise<void> { + const ch = await this.getCh(options.guild); + if (!ch) return; + + const embed = createEmbed("warn", i18n.__mf("utils.modlogs.warn", { member: options.user.tag })) + .addField(i18n.__("commands.moderation.common.reasonString"), options.reason ?? i18n.__("commands.moderation.common.noReasonString")) + .setFooter({ + text: i18n.__mf("commands.moderation.warn.warnedByString", { author: options.author.tag }), + iconURL: options.author.displayAvatarURL({ dynamic: true }) + }) + .setThumbnail(options.user.displayAvatarURL({ dynamic: true, size: 2048 })); + + await ch.send({ embeds: [embed] }).catch(() => null); + } + + public async handleBanAdd(ban: GuildBan): Promise<void> { + const fetched = await ban.fetch().catch(() => undefined); + if (!fetched) return; + + const ch = await this.getCh(fetched.guild); + if (!ch) return; + + await ch.send({ + embeds: [ + createEmbed("info", i18n.__mf("commands.moderation.ban.banSuccess", { user: fetched.user.tag })) + .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) + .setFooter({ + text: i18n.__mf("commands.moderation.ban.bannedByString", { author: fetched.user.tag }), + iconURL: fetched.user.displayAvatarURL({ dynamic: true }) + }) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 2048 })) + ] + }); + } + + public async handleBanRemove(ban: GuildBan): Promise<void> { + const fetched = await ban.fetch().catch(() => undefined); + if (!fetched) return; + + const ch = await this.getCh(fetched.guild); + if (!ch) return; + + await ch.send({ + embeds: [ + createEmbed("info", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: fetched.user.tag })) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 2048 })) + ] + }); + } + + private async getCh(guild: Guild): Promise<TextChannel | undefined> { + let ch: TextChannel | undefined; + + try { + const id = this.client.data.data?.[guild.id]?.modLog.channel; + const channel = await guild.channels.fetch(id!).catch(() => undefined); + if (channel?.type !== "GUILD_TEXT") throw new Error(); + + ch = channel; + } catch { + ch = undefined; + } + + return ch; + } +} From 47e64433aeeed85de78f81ad27de17670abc9234 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:48:19 +0900 Subject: [PATCH 113/411] feat(Rawon): add 'modlogs' property --- src/structures/Rawon.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index e58534eda..ad7059fc9 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,6 +1,7 @@ import { importURLToString } from "../utils/functions/importURLToString"; import { CommandManager } from "../utils/structures/CommandManager"; import { JSONDataManager } from "../utils/structures/JSONDataManager"; +import { ModerationLogs } from "../utils/structures/ModerationLogs"; import { EventsLoader } from "../utils/structures/EventsLoader"; import { ClientUtils } from "../utils/structures/ClientUtils"; import { RawonLogger } from "../utils/structures/RawonLogger"; @@ -23,6 +24,7 @@ export class Rawon extends Client { public readonly soundcloud = soundcloud; public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); + public readonly modlogs = new ModerationLogs(this); public constructor(opt: ClientOptions) { super(opt); } From 0e47f0de154f21e38a60b8f90c2316b4107f48ce Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:48:35 +0900 Subject: [PATCH 114/411] feat(commands/moderation): create modlogs command --- src/commands/moderation/ModLogsCommand.ts | 169 ++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 src/commands/moderation/ModLogsCommand.ts diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts new file mode 100644 index 000000000..1c46c400e --- /dev/null +++ b/src/commands/moderation/ModLogsCommand.ts @@ -0,0 +1,169 @@ +import { memberReqPerms } from "../../utils/decorators/CommonUtil"; +import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; +import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; +import i18n from "../../config"; + +@Command<typeof ModLogsCommand>({ + aliases: [ + "modlog", + "moderationlogs", + "moderationlog" + ], + description: i18n.__("commands.moderation.modlogs.description"), + name: "modlogs", + slash: { + options: [ + { + description: i18n.__("commands.moderation.modlogs.slashChannelDescription"), + name: "channel", + options: [ + { + description: i18n.__("commands.moderation.modlogs.slashChannelNewChannelOption"), + name: "newchannel", + required: false, + type: "CHANNEL" + } + ], + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.moderation.modlogs.slashEnableDescription"), + name: "enable", + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.moderation.modlogs.slashDisableDescription"), + name: "disable", + type: "SUB_COMMAND" + } + ] + }, + usage: i18n.__("commands.moderation.modlogs.usage") +}) +export class ModLogsCommand extends BaseCommand { + private readonly options: Record<string, BaseCommand["execute"]> = { + channel: async ctx => { + const newCh = ctx.options?.getChannel("newchannel")?.id ?? + ctx.args.shift()?.replace(/[^0-9]/g, ""); + + if (!newCh) { + let ch: string | null; + + try { + ch = this.client.data.data?.[ctx.guild?.id ?? ""]?.modLog.channel ?? null; + if (!ch) throw new Error(""); + } catch { + ch = null; + } + + return ctx.reply({ + embeds: [ + createEmbed("info", ch + ? i18n.__mf("commands.moderation.modlogs.channel.current", { channel: ch }) + : i18n.__("commands.moderation.modlogs.channel.noChannel")) + ] + }); + } + + const ch = await ctx.guild?.channels.fetch(newCh).catch(() => undefined); + if (!ch?.isText()) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.modlogs.channel.invalid")) + ] + }); + } + + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + infractions: guildData?.infractions ?? {}, + modLog: { + channel: newCh, + enable: guildData?.modLog.enable ?? false + } + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__("commands.moderation.modlogs.channel.success", { channel: newCh })) + ] + }); + }, + default: ctx => ctx.reply({ + embeds: [ + createEmbed("info") + .setTitle(i18n.__("commands.moderation.modlogs.embedTitle")) + .addField(`${this.client.config.mainPrefix}modlogs enable`, i18n.__("commands.moderation.modlogs.slashEnableDescription")) + .addField(`${this.client.config.mainPrefix}modlogs disable`, i18n.__("commands.moderation.modlogs.slashDisableDescription")) + .addField(`${this.client.config.mainPrefix}modlogs channel [${i18n.__("commands.moderation.modlogs.newChannelText")}]`, i18n.__("commands.moderation.modlogs.slashChannelDescription")) + ] + }), + disable: async ctx => { + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + infractions: guildData?.infractions ?? {}, + modLog: { + channel: guildData?.modLog.channel ?? null, + enable: false + } + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__("commands.moderation.modlogs.disable")) + ] + }); + }, + enable: async ctx => { + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + infractions: guildData?.infractions ?? {}, + modLog: { + channel: guildData?.modLog.channel ?? null, + enable: true + } + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__("commands.moderation.modlogs.enable")) + ] + }); + } + }; + + @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) + public execute(ctx: CommandContext): void { + const subname = ctx.options?.getSubcommand() ?? ctx.args.shift(); + let sub = this.options[subname!] as BaseCommand["execute"] | undefined; + + if (!sub) sub = this.options.default; + sub(ctx); + } +} From 3dc99dc69eb5815437131a4791a229fa6d1dc111 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 15:49:04 +0900 Subject: [PATCH 115/411] chore(lang/en): synchronize translation with code --- lang/en.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lang/en.json b/lang/en.json index ea0b5578e..0d7a72880 100644 --- a/lang/en.json +++ b/lang/en.json @@ -90,6 +90,24 @@ "kickFail": "Unable to **`KICK`** member, because: `{message}`", "kickSuccess": "**{user}** has been **`KICKED`** from the server." }, + "modlogs": { + "description": "Change moderation logs feature settings", + "slashChannelDescription": "View or change the moderation logs channel", + "slashChannelNewChannelOption": "New channel for the moderation logs", + "slashEnableDescription": "Enable the moderation logs feature", + "slashDisableDescription": "Disable the moderation logs feature", + "usage": "modlogs", + "channel": { + "current": "Current moderation logs channel: <#{channel}>", + "noChannel": "Moderation logs channel hasn't been set", + "invalid": "Invalid channel. Channel must be a text channel.", + "success": "Moderation logs channel has been set to <#{channel}>" + }, + "embedTitle": "Moderation Logs", + "newChannelText": "new channel", + "disable": "Moderation logs feature has been **`DISABLED`**", + "enable": "Moderation logs feature has been **`ENABLED`**" + }, "mute": { "description": "Mute someone on the server", "slashMemberDescription": "Who do you like to mute?", From bd85cc579e9fd5a3d8fd44fffd04e4d9f94c3074 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 16:01:39 +0900 Subject: [PATCH 116/411] feat(WarnCommand): make mod logs util handle the warn --- src/commands/moderation/WarnCommand.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index 1e0abbb88..eeeacece9 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -88,6 +88,14 @@ export class WarnCommand extends BaseCommand { return newData; }); + + void this.client.modlogs.handleWarn({ + author: ctx.author, + guild: ctx.guild!, + reason, + user: member + }).catch(() => null); + return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true)] }); From 7ba3b764e1048c0353df26db95f4009393526ab7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 16:04:37 +0900 Subject: [PATCH 117/411] feat(events): add guildBanAdd event handler --- src/events/GuildBanAddEvent.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/events/GuildBanAddEvent.ts diff --git a/src/events/GuildBanAddEvent.ts b/src/events/GuildBanAddEvent.ts new file mode 100644 index 000000000..8733cf233 --- /dev/null +++ b/src/events/GuildBanAddEvent.ts @@ -0,0 +1,10 @@ +import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; +import { GuildBan } from "discord.js"; + +@Event("guildBanAdd") +export class GuildBanAddEvent extends BaseEvent { + public execute(ban: GuildBan): void { + void this.client.modlogs.handleBanAdd(ban); + } +} From bcae61684b324bbf2525a81fb822b7a6e5c298ea Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Feb 2022 16:04:47 +0900 Subject: [PATCH 118/411] feat(events): add guildBanRemove event handler --- src/events/GuildBanRemoveEvent.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/events/GuildBanRemoveEvent.ts diff --git a/src/events/GuildBanRemoveEvent.ts b/src/events/GuildBanRemoveEvent.ts new file mode 100644 index 000000000..ee054f2b1 --- /dev/null +++ b/src/events/GuildBanRemoveEvent.ts @@ -0,0 +1,10 @@ +import { BaseEvent } from "../structures/BaseEvent"; +import { Event } from "../utils/decorators/Event"; +import { GuildBan } from "discord.js"; + +@Event("guildBanRemove") +export class GuildBanRemoveEvent extends BaseEvent { + public execute(ban: GuildBan): void { + void this.client.modlogs.handleBanRemove(ban); + } +} From ebeb02b295f5db541f2da521e85f827295a10a3a Mon Sep 17 00:00:00 2001 From: 21Z <69188068+21Z@users.noreply.github.com> Date: Tue, 22 Feb 2022 18:01:16 +0400 Subject: [PATCH 119/411] chore: Improve grammar (#786) --- lang/en.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/en.json b/lang/en.json index ea0b5578e..4c63e6084 100644 --- a/lang/en.json +++ b/lang/en.json @@ -107,7 +107,7 @@ }, "purge": { "description": "Delete messages", - "slashAmountDescription": "Amount of messages to delete", + "slashAmountDescription": "Number of messages to delete", "usage": "{prefix}purge <amount>", "userNoPermission": "Sorry, but you don't have **`MANAGE MESSAGES`** permission to use this command.", "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", @@ -154,13 +154,13 @@ "description": "Show the lyrics from the song", "slashDescription": "Song to search", "usage": "{prefix}lyrics [song]", - "noQuery": "There is nothing playing or no arguments provided.", + "noQuery": "There is nothing playing, or no arguments are provided.", "apiError": "The API could not find the song **{song}**, because: `{message}`" }, "nowplaying": { "description": "Show the media player status", "emptyQueue": "Queue is empty", - "disableButton": "After 30 seconds, the buttons will no longer active." + "disableButton": "After 30 seconds, the buttons will no longer be active." }, "pause": { "description": "Pause the music player", @@ -183,8 +183,8 @@ "usage": "{prefix}remove <positions>", "noPermission": "You don't have permission to use this command.", "noPositions": "Please specify the song positions to remove.", - "songsRemoved": "Removed {removed} songs from the queue.", - "songSkip": "One of the removed song is the now-playing song, song skipped." + "songsRemoved": "Removed {removed} song(s) from the queue. ", + "songSkip": "The current song was removed, song skipped." }, "repeat": { "description": "Repeat current music or the queue", @@ -233,7 +233,7 @@ "slashSpecificDescription": "Skip to a specific position in the queue", "slashPositionDescription": "Song position in the queue", "usage": "{prefix}skipto <{options} | number>", - "noPermission": "You don't have permission to use this comamnd.", + "noPermission": "You don't have permission to use this command.", "noSongPosition": "Unable to find song in that position.", "cantPlay": "You can't skip to current music.", "skipMessage": "Skipped to **{song}**" From 40ab8be2b0f5a60a061a6c8a392fe664376fd123 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 16:38:25 +0900 Subject: [PATCH 120/411] fix(ModLogsCommand): fix incorrect formatter --- src/commands/moderation/ModLogsCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts index 1c46c400e..92204c16b 100644 --- a/src/commands/moderation/ModLogsCommand.ts +++ b/src/commands/moderation/ModLogsCommand.ts @@ -95,7 +95,7 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__("commands.moderation.modlogs.channel.success", { channel: newCh })) + createEmbed("success", i18n.__mf("commands.moderation.modlogs.channel.success", { channel: newCh })) ] }); }, From 87aebaf558d9730fab03a29b26f7440ccc801088 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 16:40:02 +0900 Subject: [PATCH 121/411] fix(ModerationLogs): forgot to import i18n --- src/utils/structures/ModerationLogs.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index ccaed926f..1d59a7cd8 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -1,5 +1,6 @@ import { createEmbed } from "../functions/createEmbed"; import { Rawon } from "../../structures/Rawon"; +import i18n from "../../config"; import { Guild, GuildBan, TextChannel, User } from "discord.js"; export class ModerationLogs { @@ -14,7 +15,7 @@ export class ModerationLogs { const ch = await this.getCh(options.guild); if (!ch) return; - const embed = createEmbed("warn", i18n.__mf("utils.modlogs.warn", { member: options.user.tag })) + const embed = createEmbed("warn", i18n.__mf("commands.moderation.warn.warnSuccess", { user: options.user.tag })) .addField(i18n.__("commands.moderation.common.reasonString"), options.reason ?? i18n.__("commands.moderation.common.noReasonString")) .setFooter({ text: i18n.__mf("commands.moderation.warn.warnedByString", { author: options.author.tag }), @@ -22,7 +23,7 @@ export class ModerationLogs { }) .setThumbnail(options.user.displayAvatarURL({ dynamic: true, size: 2048 })); - await ch.send({ embeds: [embed] }).catch(() => null); + await ch.send({ embeds: [embed] }).catch((er: Error) => console.log(`Failed to send warn logs: ${er.message}`)); } public async handleBanAdd(ban: GuildBan): Promise<void> { @@ -64,12 +65,14 @@ export class ModerationLogs { let ch: TextChannel | undefined; try { - const id = this.client.data.data?.[guild.id]?.modLog.channel; + console.log("Fetching channel..."); + const id = this.client.data.data![guild.id]!.modLog.channel; const channel = await guild.channels.fetch(id!).catch(() => undefined); if (channel?.type !== "GUILD_TEXT") throw new Error(); ch = channel; } catch { + console.log("Invalid channel :3"); ch = undefined; } From 7c6eb9883305b5faa2f085eb0f1f2f55be3883e4 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 17:05:59 +0900 Subject: [PATCH 122/411] feat(utils/decorators): make a more re-usable decorator creation function --- src/typings/index.d.ts | 1 + .../decorators/createCmdExecuteDecorator.ts | 12 ++---------- src/utils/decorators/createMethodDecorator.ts | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 src/utils/decorators/createMethodDecorator.ts diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index d15b0425d..ce9781e82 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -195,3 +195,4 @@ export type MethodDecorator<Target, Result> = ( descriptor: PropertyDescriptor) => Result; export type ClassDecorator<Target extends Constructor, Result = unknown> = (target: Target) => Result; export type Promisable<Output> = Output | Promise<Output>; +export type FunctionType<Args extends any[] = any[], Result = any> = (...args: Args) => Result; diff --git a/src/utils/decorators/createCmdExecuteDecorator.ts b/src/utils/decorators/createCmdExecuteDecorator.ts index 2f6852705..5c9a03406 100644 --- a/src/utils/decorators/createCmdExecuteDecorator.ts +++ b/src/utils/decorators/createCmdExecuteDecorator.ts @@ -1,17 +1,9 @@ import { MethodDecorator, Promisable } from "../../typings"; import { BaseCommand } from "../../structures/BaseCommand"; +import { createMethodDecorator } from "./createMethodDecorator"; export function createCmdExecuteDecorator( func: (...args: Parameters<BaseCommand["execute"]>) => Promisable<boolean | undefined> ): MethodDecorator<BaseCommand, void> { - return (target, _, descriptor) => { - const originalMethod = descriptor.value as BaseCommand["execute"]; - - descriptor.value = async function value(...args: Parameters<BaseCommand["execute"]>) { - const res = await func(...args); - if (res === false) return; - - return originalMethod.apply(this, args); - }; - }; + return createMethodDecorator<BaseCommand, BaseCommand["execute"]>(func); } diff --git a/src/utils/decorators/createMethodDecorator.ts b/src/utils/decorators/createMethodDecorator.ts new file mode 100644 index 000000000..bf657146a --- /dev/null +++ b/src/utils/decorators/createMethodDecorator.ts @@ -0,0 +1,19 @@ +import { FunctionType, MethodDecorator, Promisable } from "../../typings"; + +export function createMethodDecorator< + TC = any, + Target extends FunctionType = FunctionType +>( + func: (...args: Parameters<Target>) => Promisable<boolean | undefined> +): MethodDecorator<TC, any> { + return (target, _, descriptor) => { + const originalMethod = descriptor.value as Target; + + descriptor.value = async function value(...args: Parameters<Target>) { + const res = await func(...args); + if (res === false) return; + + return originalMethod.apply(this, args); + }; + }; +} From 65ccd260323eaebb4de33a203eaf7d72fd4579c5 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 17:06:43 +0900 Subject: [PATCH 123/411] chore(ModerationLogs): remove debug logs --- src/utils/structures/ModerationLogs.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index 1d59a7cd8..04e2884c2 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -65,14 +65,12 @@ export class ModerationLogs { let ch: TextChannel | undefined; try { - console.log("Fetching channel..."); const id = this.client.data.data![guild.id]!.modLog.channel; const channel = await guild.channels.fetch(id!).catch(() => undefined); if (channel?.type !== "GUILD_TEXT") throw new Error(); ch = channel; } catch { - console.log("Invalid channel :3"); ch = undefined; } From e2378584de7e04b84dffb6a01883ed32979b3b1e Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 17:08:32 +0900 Subject: [PATCH 124/411] feat(ModerationLogs): return undefined when trying to get modlog channel while modlog is disabled --- src/utils/structures/ModerationLogs.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index 04e2884c2..e442d1b26 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -65,7 +65,11 @@ export class ModerationLogs { let ch: TextChannel | undefined; try { - const id = this.client.data.data![guild.id]!.modLog.channel; + // Temporary solution for mod-log checking. + const modlog = this.client.data.data![guild.id]!.modLog; + if (!modlog.enable) throw new Error(); + + const id = modlog.channel; const channel = await guild.channels.fetch(id!).catch(() => undefined); if (channel?.type !== "GUILD_TEXT") throw new Error(); From aeee197017307402fd58824bb6b42e64012ee392 Mon Sep 17 00:00:00 2001 From: 21Z <69188068+21Z@users.noreply.github.com> Date: Thu, 24 Feb 2022 12:19:15 +0400 Subject: [PATCH 125/411] chore(RepeatCommand): add alias (#791) --- src/commands/music/RepeatCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 600c700c8..411a0a49a 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -47,7 +47,7 @@ export class RepeatCommand extends BaseCommand { emoji: "🔁" }, SONG: { - aliases: ["one", "song", "this", "1"], + aliases: ["one", "song", "current", "this", "1"], emoji: "🔂" } }; From 36a7bfa2124507c4278390c28667940747ebd314 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 23:20:01 +0900 Subject: [PATCH 126/411] fix(SkipToCommand): use messageformat for cmd usage --- src/commands/music/SkipToCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 2aaa8efac..822b2d7a4 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -40,7 +40,7 @@ import { Message } from "discord.js"; } ] }, - usage: i18n.__("commands.music.skipTo.usage", { options: "first | last" }) + usage: i18n.__mf("commands.music.skipTo.usage", { options: "first | last" }) }) export class SkipToCommand extends BaseCommand { @inVC From c388c2552809e915df8e0a4afa42d4da3d8e9f6c Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 23:20:14 +0900 Subject: [PATCH 127/411] fix(RepeatCommand): use messageformat for cmd usage --- src/commands/music/RepeatCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 600c700c8..11f9d59b1 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -30,7 +30,7 @@ import { Message } from "discord.js"; } ] }, - usage: i18n.__("commands.music.repeat.usage", { options: "queue | one | disable" }) + usage: i18n.__mf("commands.music.repeat.usage", { options: "queue | one | disable" }) }) export class RepeatCommand extends BaseCommand { @inVC From a59455e4ddd381a91439ef0fffb2996feb57e7dc Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Feb 2022 23:37:30 +0900 Subject: [PATCH 128/411] feat(RepeatCommand): add information about changing mode in embed footer --- lang/en.json | 1 + src/commands/music/RepeatCommand.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lang/en.json b/lang/en.json index a622abab9..d9ab375d0 100644 --- a/lang/en.json +++ b/lang/en.json @@ -211,6 +211,7 @@ "slashDisable": "Disable repeat mode", "usage": "{prefix}repeat <{options}>", "actualMode": "Current repeat mode is **`{mode}`**", + "footer": "To change mode, see '{prefix}help repeat'", "newMode": "The repeat mode has been set to **`{mode}`**" }, "resume": { diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 791fca40b..890feda52 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -80,6 +80,11 @@ export class RepeatCommand extends BaseCommand { ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`) + .setFooter({ + text: i18n.__mf("commands.music.repeat.footer", { + prefix: this.client.config.mainPrefix + }) + }) ] }); } From 91387d4a9e3b013174813be81273ea51ae65c7b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Feb 2022 21:44:03 +0700 Subject: [PATCH 129/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#785) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.12.0 to 5.12.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.12.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 258 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 226 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 77de81744..aaaa3f40f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.18", - "@typescript-eslint/eslint-plugin": "^5.12.0", + "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" @@ -589,14 +589,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz", - "integrity": "sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", + "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/type-utils": "5.12.0", - "@typescript-eslint/utils": "5.12.0", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/type-utils": "5.12.1", + "@typescript-eslint/utils": "5.12.1", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -621,6 +621,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz", @@ -666,12 +713,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz", - "integrity": "sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", + "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.12.0", + "@typescript-eslint/utils": "5.12.1", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -732,15 +779,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz", - "integrity": "sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/typescript-estree": "5.12.0", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -755,6 +802,80 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", @@ -3046,20 +3167,48 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz", - "integrity": "sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", + "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/type-utils": "5.12.0", - "@typescript-eslint/utils": "5.12.0", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/type-utils": "5.12.1", + "@typescript-eslint/utils": "5.12.1", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + } + }, + "@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/parser": { @@ -3085,12 +3234,12 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz", - "integrity": "sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", + "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.12.0", + "@typescript-eslint/utils": "5.12.1", "debug": "^4.3.2", "tsutils": "^3.21.0" } @@ -3117,17 +3266,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz", - "integrity": "sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/typescript-estree": "5.12.0", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + } + }, + "@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { diff --git a/package.json b/package.json index af1fc60be..1f84f9b05 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.18", - "@typescript-eslint/eslint-plugin": "^5.12.0", + "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "typescript": "^4.5.5" From ad888eeac4749db2e4c4851692cd52dd637722bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Feb 2022 14:47:19 +0000 Subject: [PATCH 130/411] chore(deps-dev): bump @types/node from 17.0.18 to 17.0.21 (#787) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.18 to 17.0.21. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index aaaa3f40f..108840d98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.18", + "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", @@ -546,9 +546,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -3125,9 +3125,9 @@ } }, "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 1f84f9b05..55857f181 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.18", + "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", From 1a5ab2043d73f9a27d410206c2115f792c37264b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Feb 2022 14:50:02 +0000 Subject: [PATCH 131/411] chore(deps): bump @swc/core from 1.2.142 to 1.2.145 (#794) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.142 to 1.2.145. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.142...v1.2.145) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 261 ++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 151 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 108840d98..8e5c202e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.142", + "@swc/core": "^1.2.145", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -277,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.142.tgz", - "integrity": "sha512-prdlvUPvpNduQpSCNZHH+8eYDlghAkqGG1P7nCyFNSLQEHEVzt+wSo4QcYFbQXl6XYAsrgYggNybJFfLdPTB/Q==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.145.tgz", + "integrity": "sha512-E9cXql7G7XPSBZKZ8ALONLbuuPdC5Kj0I7D7CN+LGyAGLlhs7e70VJsq7RMT4o1UY7UkqbLU598C7KtSMpZFyg==", "engines": { "node": ">=10" }, @@ -288,25 +288,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.142", - "@swc/core-android-arm64": "1.2.142", - "@swc/core-darwin-arm64": "1.2.142", - "@swc/core-darwin-x64": "1.2.142", - "@swc/core-freebsd-x64": "1.2.142", - "@swc/core-linux-arm-gnueabihf": "1.2.142", - "@swc/core-linux-arm64-gnu": "1.2.142", - "@swc/core-linux-arm64-musl": "1.2.142", - "@swc/core-linux-x64-gnu": "1.2.142", - "@swc/core-linux-x64-musl": "1.2.142", - "@swc/core-win32-arm64-msvc": "1.2.142", - "@swc/core-win32-ia32-msvc": "1.2.142", - "@swc/core-win32-x64-msvc": "1.2.142" + "@swc/core-android-arm-eabi": "1.2.145", + "@swc/core-android-arm64": "1.2.145", + "@swc/core-darwin-arm64": "1.2.145", + "@swc/core-darwin-x64": "1.2.145", + "@swc/core-freebsd-x64": "1.2.145", + "@swc/core-linux-arm-gnueabihf": "1.2.145", + "@swc/core-linux-arm64-gnu": "1.2.145", + "@swc/core-linux-arm64-musl": "1.2.145", + "@swc/core-linux-x64-gnu": "1.2.145", + "@swc/core-linux-x64-musl": "1.2.145", + "@swc/core-win32-arm64-msvc": "1.2.145", + "@swc/core-win32-ia32-msvc": "1.2.145", + "@swc/core-win32-x64-msvc": "1.2.145" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.142.tgz", - "integrity": "sha512-UL6kTbg6wNTmYaOxjTaK1XMI305QpMS25KjRnGvUEcg8cpU2P6AFDOQPHmDvZMRJnQPrqbuQFnWoL0Yt0DxxYQ==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.145.tgz", + "integrity": "sha512-uHlRBYlnKfASaQ+I+GI80YVpylHG+R4IRd4UXPmCtsOqCkb5gPvunbWBwlWDcuseRxgAP6EA1uLyTE2YGxLmrQ==", "cpu": [ "arm" ], @@ -314,14 +314,17 @@ "os": [ "android" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.142.tgz", - "integrity": "sha512-Aeybyorm4qdL/MTq8zRHpAf5T+SMiHQD0kFNRMFIzACBUF/M6oNGPOcATyqGtwnOML6DBPc58sBz7nwgtUEx3w==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.145.tgz", + "integrity": "sha512-o+bJBJOMYeS8cSadApt0NXqhDTj/h5Cg5aEfVRO3Tjxt7KxREMrAFRY0ITfOn7DHF00z+Gec5W+m6X8Mqvy0Xg==", "cpu": [ "arm64" ], @@ -329,14 +332,17 @@ "os": [ "android" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.142.tgz", - "integrity": "sha512-ttSnro5d9GKZsU7e3AfGX+LaTq09LQBVvHQ+RDQSVlZoSpMNO2Jh7odSM8DsJ2TTE4eSvabCDrILuRfaiFRkIA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.145.tgz", + "integrity": "sha512-by8NYwS3bXQMlDBySAvKPtpkSjqz/+PpNaLpAbC5oCEx/mFBv37FxbTTDEMJ/Nw3uPG9z1VR+nCsYj8bb8rvLw==", "cpu": [ "arm64" ], @@ -344,14 +350,17 @@ "os": [ "darwin" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.142.tgz", - "integrity": "sha512-YfaNIzCN9G7PaDTNCjyo1CMTWYHxpWGl3/otNtwSTpcgdqnYfcf/IeqI6iUSCMWW036/UtkHD8PiFZ809zanfQ==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.145.tgz", + "integrity": "sha512-uSvGeY+7Wa0tfE7T3bYlTrUpZEZ8XGo1aCCQYHQ3tJk/v/pfhhEAg80O8sHsdn0DA7AkVWR3L3kqg2O0JAfF/A==", "cpu": [ "x64" ], @@ -359,14 +368,17 @@ "os": [ "darwin" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.142.tgz", - "integrity": "sha512-+LXcwBPS2m8nS7EHAS+7U0QLTswxkoR5J9a8eZdN7hLKYbLIMe34KjitxPTHyFePiL6rbT5trbhFWcaH5GcANA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.145.tgz", + "integrity": "sha512-br4Lsp2x2yNjrzre+wVPtUUMH86k7RfSlYXd6OrnuGAU7447yuMhziR17j096e4cY5BQhULtBhyiN5ZX+Rvj5g==", "cpu": [ "x64" ], @@ -374,14 +386,17 @@ "os": [ "freebsd" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.142.tgz", - "integrity": "sha512-s6g4m93uXIoK4GaF+Gc2gwlTgkseI01YNXy5IrdESStU2hivluWK1zDG4KV4n5nZHS9IeUdLubXfE6rg2pGGRg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.145.tgz", + "integrity": "sha512-Xtbdm6KTRE5vpKdBTxxdTm8JlFrl486BBauG5IkA7x+kdz3HoULn9ESXPJggkKmjOf3CdFoIFVRBHNrH6nz2Zg==", "cpu": [ "arm" ], @@ -389,14 +404,17 @@ "os": [ "linux" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.142.tgz", - "integrity": "sha512-p6ykRE2Er6e0ugoVytAk/a0R314jVGxwEwy0n1Zludm1y0PdvH2c6Esg6+DfHlNWpJe5qJeiSrhem8bk3yKvOg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.145.tgz", + "integrity": "sha512-ZpeIPj4ZrRaUizDcAelGlj+JDmlYqbVPe+2xXQvk3i8dy4gNDJbadJncmYG3/WGTNLyXpzK+MgevDW1FsNUo4g==", "cpu": [ "arm64" ], @@ -404,14 +422,17 @@ "os": [ "linux" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.142.tgz", - "integrity": "sha512-QYakIi86KUy1QSDC7JXElMNPSi5Jw/KawwsMB7S8bI4p/hNhbfYgz/HGk19hZVMV6YOW/MDq5b47W4P0lYWYZg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.145.tgz", + "integrity": "sha512-h3EPP/ljEeJmCado/YSTWCVBUPf+Wee7Qa5a6vdu/kjAkCb1UTGV13VkQvEApPM2fmXXVQ3HQhnhuvO8U+lJIw==", "cpu": [ "arm64" ], @@ -419,14 +440,17 @@ "os": [ "linux" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.142.tgz", - "integrity": "sha512-7O2VpLPUIW+kOmq309+XJL5eVlMGHlUrQ+nxHuP2oGvWvn0o/ybAmzRnDB8RJ10NnFH1JU30irhfU8ajbGNxQg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.145.tgz", + "integrity": "sha512-YNQ26qLOf0XxxAWZo9DIMAFUrorCraqBkEVZrqd6CPm4NXzyFgjUEToi39S+ipdEEEjRT6Wty858hSjHN4OOUg==", "cpu": [ "x64" ], @@ -434,14 +458,17 @@ "os": [ "linux" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.142.tgz", - "integrity": "sha512-E1Iyn7/fzQiVpHRQDZ6g0i/kLCNRY9dbVr8ujizT7fTUt4Hl2+UawdLsIxV0DLGJXM5d9ksWo5CjBSeUBUylCw==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.145.tgz", + "integrity": "sha512-92tmgOiuQTYzN0SyExhnnmUinVNcdYXIPEVoIQZq7UdUHpgi2cJHDkfY8zzcRQ85aFwC0gIOzFcdnccWVSPdEw==", "cpu": [ "x64" ], @@ -449,14 +476,17 @@ "os": [ "linux" ], + "bin": { + "swcx": "swc" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.142.tgz", - "integrity": "sha512-hejHQ2ApVdG5X0w5AwxoCWuoTFBstSXnnBvhwtuHIYgTqQYdpcE25yLslvyBQ3f4WWePPj7BntNtlVLjG54OcA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.145.tgz", + "integrity": "sha512-cv9UZT8/RWyaWZyvuS5fOT5YgA9opnsprQ6DKOJNljx2zCCHy+GulrwGYPk8cIGRuD3RSP/nOua7WPg8FE1ExA==", "cpu": [ "arm64" ], @@ -464,14 +494,17 @@ "os": [ "win32" ], + "bin": { + "swcx": "swc.exe" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.142.tgz", - "integrity": "sha512-cRnKsMgr70k5smM3crmiMurFeBoJkf5GLAb6bubuxUCQCfZigJ16Dcn0Y+5G4i/WuNWcesBjMC0FH5sfiZ00vg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.145.tgz", + "integrity": "sha512-bj00Ihd9DpKVIShXUTG0ivEd4eTPTq3uhksUz+1yUcH4neJADPM0vzkj/a/A7rSDMpgkm7Hn53QH6tU9kZvXgw==", "cpu": [ "ia32" ], @@ -479,14 +512,17 @@ "os": [ "win32" ], + "bin": { + "swcx": "swc.exe" + }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.142.tgz", - "integrity": "sha512-LOgCwix8O+9r3VItWnNn2jeIANQGoFCB1M+ETds0SLgyLDaHo2KlNc6B5TEKd8RXjEz4M33x3F0yNutkVCWZ2g==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.145.tgz", + "integrity": "sha512-DcJ2qg1Tazm+BfXHTSyIZe81iV1EVflcXex3V7hJ04Fc/1K9hAuXS0INrvVGtK3P70aFUoY7+2AYXcxbm3JdbQ==", "cpu": [ "x64" ], @@ -494,6 +530,9 @@ "os": [ "win32" ], + "bin": { + "swcx": "swc.exe" + }, "engines": { "node": ">=10" } @@ -2983,101 +3022,101 @@ } }, "@swc/core": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.142.tgz", - "integrity": "sha512-prdlvUPvpNduQpSCNZHH+8eYDlghAkqGG1P7nCyFNSLQEHEVzt+wSo4QcYFbQXl6XYAsrgYggNybJFfLdPTB/Q==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.145.tgz", + "integrity": "sha512-E9cXql7G7XPSBZKZ8ALONLbuuPdC5Kj0I7D7CN+LGyAGLlhs7e70VJsq7RMT4o1UY7UkqbLU598C7KtSMpZFyg==", "requires": { - "@swc/core-android-arm-eabi": "1.2.142", - "@swc/core-android-arm64": "1.2.142", - "@swc/core-darwin-arm64": "1.2.142", - "@swc/core-darwin-x64": "1.2.142", - "@swc/core-freebsd-x64": "1.2.142", - "@swc/core-linux-arm-gnueabihf": "1.2.142", - "@swc/core-linux-arm64-gnu": "1.2.142", - "@swc/core-linux-arm64-musl": "1.2.142", - "@swc/core-linux-x64-gnu": "1.2.142", - "@swc/core-linux-x64-musl": "1.2.142", - "@swc/core-win32-arm64-msvc": "1.2.142", - "@swc/core-win32-ia32-msvc": "1.2.142", - "@swc/core-win32-x64-msvc": "1.2.142" + "@swc/core-android-arm-eabi": "1.2.145", + "@swc/core-android-arm64": "1.2.145", + "@swc/core-darwin-arm64": "1.2.145", + "@swc/core-darwin-x64": "1.2.145", + "@swc/core-freebsd-x64": "1.2.145", + "@swc/core-linux-arm-gnueabihf": "1.2.145", + "@swc/core-linux-arm64-gnu": "1.2.145", + "@swc/core-linux-arm64-musl": "1.2.145", + "@swc/core-linux-x64-gnu": "1.2.145", + "@swc/core-linux-x64-musl": "1.2.145", + "@swc/core-win32-arm64-msvc": "1.2.145", + "@swc/core-win32-ia32-msvc": "1.2.145", + "@swc/core-win32-x64-msvc": "1.2.145" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.142.tgz", - "integrity": "sha512-UL6kTbg6wNTmYaOxjTaK1XMI305QpMS25KjRnGvUEcg8cpU2P6AFDOQPHmDvZMRJnQPrqbuQFnWoL0Yt0DxxYQ==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.145.tgz", + "integrity": "sha512-uHlRBYlnKfASaQ+I+GI80YVpylHG+R4IRd4UXPmCtsOqCkb5gPvunbWBwlWDcuseRxgAP6EA1uLyTE2YGxLmrQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.142.tgz", - "integrity": "sha512-Aeybyorm4qdL/MTq8zRHpAf5T+SMiHQD0kFNRMFIzACBUF/M6oNGPOcATyqGtwnOML6DBPc58sBz7nwgtUEx3w==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.145.tgz", + "integrity": "sha512-o+bJBJOMYeS8cSadApt0NXqhDTj/h5Cg5aEfVRO3Tjxt7KxREMrAFRY0ITfOn7DHF00z+Gec5W+m6X8Mqvy0Xg==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.142.tgz", - "integrity": "sha512-ttSnro5d9GKZsU7e3AfGX+LaTq09LQBVvHQ+RDQSVlZoSpMNO2Jh7odSM8DsJ2TTE4eSvabCDrILuRfaiFRkIA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.145.tgz", + "integrity": "sha512-by8NYwS3bXQMlDBySAvKPtpkSjqz/+PpNaLpAbC5oCEx/mFBv37FxbTTDEMJ/Nw3uPG9z1VR+nCsYj8bb8rvLw==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.142.tgz", - "integrity": "sha512-YfaNIzCN9G7PaDTNCjyo1CMTWYHxpWGl3/otNtwSTpcgdqnYfcf/IeqI6iUSCMWW036/UtkHD8PiFZ809zanfQ==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.145.tgz", + "integrity": "sha512-uSvGeY+7Wa0tfE7T3bYlTrUpZEZ8XGo1aCCQYHQ3tJk/v/pfhhEAg80O8sHsdn0DA7AkVWR3L3kqg2O0JAfF/A==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.142.tgz", - "integrity": "sha512-+LXcwBPS2m8nS7EHAS+7U0QLTswxkoR5J9a8eZdN7hLKYbLIMe34KjitxPTHyFePiL6rbT5trbhFWcaH5GcANA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.145.tgz", + "integrity": "sha512-br4Lsp2x2yNjrzre+wVPtUUMH86k7RfSlYXd6OrnuGAU7447yuMhziR17j096e4cY5BQhULtBhyiN5ZX+Rvj5g==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.142.tgz", - "integrity": "sha512-s6g4m93uXIoK4GaF+Gc2gwlTgkseI01YNXy5IrdESStU2hivluWK1zDG4KV4n5nZHS9IeUdLubXfE6rg2pGGRg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.145.tgz", + "integrity": "sha512-Xtbdm6KTRE5vpKdBTxxdTm8JlFrl486BBauG5IkA7x+kdz3HoULn9ESXPJggkKmjOf3CdFoIFVRBHNrH6nz2Zg==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.142.tgz", - "integrity": "sha512-p6ykRE2Er6e0ugoVytAk/a0R314jVGxwEwy0n1Zludm1y0PdvH2c6Esg6+DfHlNWpJe5qJeiSrhem8bk3yKvOg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.145.tgz", + "integrity": "sha512-ZpeIPj4ZrRaUizDcAelGlj+JDmlYqbVPe+2xXQvk3i8dy4gNDJbadJncmYG3/WGTNLyXpzK+MgevDW1FsNUo4g==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.142.tgz", - "integrity": "sha512-QYakIi86KUy1QSDC7JXElMNPSi5Jw/KawwsMB7S8bI4p/hNhbfYgz/HGk19hZVMV6YOW/MDq5b47W4P0lYWYZg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.145.tgz", + "integrity": "sha512-h3EPP/ljEeJmCado/YSTWCVBUPf+Wee7Qa5a6vdu/kjAkCb1UTGV13VkQvEApPM2fmXXVQ3HQhnhuvO8U+lJIw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.142.tgz", - "integrity": "sha512-7O2VpLPUIW+kOmq309+XJL5eVlMGHlUrQ+nxHuP2oGvWvn0o/ybAmzRnDB8RJ10NnFH1JU30irhfU8ajbGNxQg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.145.tgz", + "integrity": "sha512-YNQ26qLOf0XxxAWZo9DIMAFUrorCraqBkEVZrqd6CPm4NXzyFgjUEToi39S+ipdEEEjRT6Wty858hSjHN4OOUg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.142.tgz", - "integrity": "sha512-E1Iyn7/fzQiVpHRQDZ6g0i/kLCNRY9dbVr8ujizT7fTUt4Hl2+UawdLsIxV0DLGJXM5d9ksWo5CjBSeUBUylCw==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.145.tgz", + "integrity": "sha512-92tmgOiuQTYzN0SyExhnnmUinVNcdYXIPEVoIQZq7UdUHpgi2cJHDkfY8zzcRQ85aFwC0gIOzFcdnccWVSPdEw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.142.tgz", - "integrity": "sha512-hejHQ2ApVdG5X0w5AwxoCWuoTFBstSXnnBvhwtuHIYgTqQYdpcE25yLslvyBQ3f4WWePPj7BntNtlVLjG54OcA==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.145.tgz", + "integrity": "sha512-cv9UZT8/RWyaWZyvuS5fOT5YgA9opnsprQ6DKOJNljx2zCCHy+GulrwGYPk8cIGRuD3RSP/nOua7WPg8FE1ExA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.142.tgz", - "integrity": "sha512-cRnKsMgr70k5smM3crmiMurFeBoJkf5GLAb6bubuxUCQCfZigJ16Dcn0Y+5G4i/WuNWcesBjMC0FH5sfiZ00vg==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.145.tgz", + "integrity": "sha512-bj00Ihd9DpKVIShXUTG0ivEd4eTPTq3uhksUz+1yUcH4neJADPM0vzkj/a/A7rSDMpgkm7Hn53QH6tU9kZvXgw==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.142", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.142.tgz", - "integrity": "sha512-LOgCwix8O+9r3VItWnNn2jeIANQGoFCB1M+ETds0SLgyLDaHo2KlNc6B5TEKd8RXjEz4M33x3F0yNutkVCWZ2g==", + "version": "1.2.145", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.145.tgz", + "integrity": "sha512-DcJ2qg1Tazm+BfXHTSyIZe81iV1EVflcXex3V7hJ04Fc/1K9hAuXS0INrvVGtK3P70aFUoY7+2AYXcxbm3JdbQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 55857f181..cb3566df2 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.142", + "@swc/core": "^1.2.145", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From d1e74decb2fd2590939e48952bff0a1585cb28de Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 25 Feb 2022 22:59:31 +0900 Subject: [PATCH 132/411] chore(env_example): add information labels --- .env_example | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/.env_example b/.env_example index 936873b00..0ac175310 100644 --- a/.env_example +++ b/.env_example @@ -1,44 +1,47 @@ # This is your bot's configuration file, control your bot's environment here. Every value must use a string ("") - #============================================================================== -# What is your Discord bot's token? +# OPTIONAL = The value is optional and can be left blank +# IMPORTANT = It is recommended that you pay attention to the value +# MULTIPLE - The value can be multiple, each value splitted with comma or semi-colon. You can use single-string (') to escape if you have any comma or semicolon in the value. +#============================================================================== +# IMPORTANT - What is your Discord bot's token? # Example: DISCORD_TOKEN="NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd" DISCORD_TOKEN="" #============================================================================== -# What should be the main prefix of your bot? +# OPTIONAL, IMPORTANT - What should be the main prefix of your bot? # Example: PREFIX="!" # Default: ! MAIN_PREFIX="" #============================================================================== -# What should be the alternative prefixes of your bot? +# OPTIONAL, MULTIPLE - What should be the alternative prefixes of your bot? # Example: PREFIX="?, {mention}" # Formats: {mention} = @bot mention # Default: {mention} ALT_PREFIX="{mention}" #============================================================================== -# What should be your bot's embed color code? (hex) +# OPTIONAL - What should be your bot's embed color code? (hex) # Example: EMBED_COLOR="3CAAFF" # Default: 3CAAFF EMBED_COLOR="" #============================================================================== -# What should be the language of your bot? +# OPTIONAL - What should be the language of your bot? # Example: LOCALE="en" # Available: en, es, id # Default: en LOCALE="" #============================================================================== -# Activity list +# OPTIONAL, MULTIPLE - Activity list # Example: 'Hello!' # Formats: {prefix} = bot prefix, {userCount} = user amount, {textChannelsCount} = text channel amount, {serverCount} = server amount, {playingCount} = amount of server playing music using the bot, {username} = bot username ACTIVITIES='My default prefix is {prefix}, music with {userCount} users, {textChannelsCount} text channels in {serverCount} guilds, "Hello there, my name is {username}"' #============================================================================== -# Activity type list. +# OPTIONAL, MULTIPLE - Activity type list. # The order of this value is the same order as ACTIVITIES. # For example, first value of ACTIVITIES will use first value of this. # Example: 'PLAYING, COMPETING' @@ -46,74 +49,74 @@ ACTIVITIES='My default prefix is {prefix}, music with {userCount} users, {textCh ACTIVITY_TYPES='PLAYING, LISTENING, WATCHING, PLAYING, COMPETING' #============================================================================== -# OPTIONAL - What is the owner's ID of the bot? +# OPTIONAL, MULTIPLE - What is the owner's ID of the bot? # Example: OWNERS="390045370240991234, 366169273485361153" OWNERS="" #============================================================================== -# OPTIONAL - What is your server's ID? +# OPTIONAL, MULTIPLE - What is your server's ID? # Example: DEV_GUILD="941705543523897345" DEV_GUILD="" #============================================================================== -# In which mode do you want to activate your bot? +# OPTIONAL - In which mode do you want to activate your bot? # Example: NODE_ENV="production" # Available: production, development # Default: production NODE_ENV="" #============================================================================== -# Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. +# OPTIONAL - Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. # Example: STREAM_STRATEGY="youtube-dl" # Available: play-dl, youtube-dl # Default: youtube-dl STREAM_STRATEGY="" #============================================================================== -# Do you want to enable slash command support? +# OPTIONAL - Do you want to enable slash command support? # Example: ENABLE_SLASH_COMMAND="yes" # Default: yes ENABLE_SLASH_COMMAND="" #============================================================================== -# Which music selection type do you want to use? +# OPTIONAL - Which music selection type do you want to use? # Example: MUSIC_SELECTION_TYPE="selectmenu" # Available: message (just like in previous version) or selectmenu (uses discord selection menu) # Default: message MUSIC_SELECTION_TYPE="" #============================================================================== -# Do you want to enable the 24/7 command? +# OPTIONAL, IMPORTANT - Do you want to enable the 24/7 command? # Example: ENABLE_24_7_COMMAND="no" # Default: no ENABLE_24_7_COMMAND="" #============================================================================== -# Do you want to make your bot not leave the voice channel after playing a song? +# OPTIONAL, IMPORTANT - Do you want to make your bot not leave the voice channel after playing a song? # Example: STAY_IN_VC_AFTER_FINISHED="no" # Default: no STAY_IN_VC_AFTER_FINISHED="" #============================================================================== -# What is your server's DJ role name? +# OPTIONAL - What is your server's DJ role name? # Example: DJ_ROLE_NAME="DJ" # Default: DJ DJ_ROLE_NAME="" #============================================================================== -# What is your server's Muted role name? +# OPTIONAL - What is your server's Muted role name? # Example: MUTE_ROLE_NAME="Muted" # Default: Muted MUTE_ROLE_NAME="" #============================================================================== -# What should be your bot's emoji for every success sentence? +# OPTIONAL - What should be your bot's emoji for every success sentence? # Example: YES_EMOJI="✅" # Default: ✅ YES_EMOJI="" #============================================================================== -# What should be your bot's emoji for every failed sentence? +# OPTIONAL - What should be your bot's emoji for every failed sentence? # Example: NO_EMOJI="❌" # Default: ❌ NO_EMOJI="" From bd679a3570cb9a824c954b9716f395abfd2c40ad Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 10:21:25 +0900 Subject: [PATCH 133/411] style(Rawon): sort import declarations --- src/structures/Rawon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index ad7059fc9..0412bb667 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,6 +1,6 @@ import { importURLToString } from "../utils/functions/importURLToString"; -import { CommandManager } from "../utils/structures/CommandManager"; import { JSONDataManager } from "../utils/structures/JSONDataManager"; +import { CommandManager } from "../utils/structures/CommandManager"; import { ModerationLogs } from "../utils/structures/ModerationLogs"; import { EventsLoader } from "../utils/structures/EventsLoader"; import { ClientUtils } from "../utils/structures/ClientUtils"; From 055b1333fadb8ce39d5ecc0e9f93acb4d7619a90 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 10:33:15 +0900 Subject: [PATCH 134/411] style(typings): sort interface property declarations by declaration length --- src/typings/index.d.ts | 74 +++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index ce9781e82..6c1bb93a9 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -7,17 +7,17 @@ import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, Cli export type MessageInteractionAction = "editReply" | "followUp" | "reply"; export interface QueryData { - isURL: boolean; sourceType?: "query" | "soundcloud" | "spotify" | "unknown" | "youtube"; type?: "playlist" | "track" | "unknown"; + isURL: boolean; } export interface basicYoutubeVideoInfo { - id: string; - url: string; - title: string; thumbnails: { url: string; width: number; height: number }[]; duration: number; + title: string; + url: string; + id: string; } export interface SearchTrackResult { @@ -26,11 +26,11 @@ export interface SearchTrackResult { } export interface PaginationPayload { - author: string; + edit: (index: number, embed: MessageEmbed, page: string) => unknown; + embed: MessageEmbed; content?: string; pages: string[]; - embed: MessageEmbed; - edit: (index: number, embed: MessageEmbed, page: string) => unknown; + author: string; } export interface IRawonLoggerOptions { @@ -38,11 +38,11 @@ export interface IRawonLoggerOptions { } export interface SlashOption { - name?: string; - description?: string; - type?: ApplicationCommandType; options?: ApplicationCommandOptionData[]; + type?: ApplicationCommandType; defaultPermission?: boolean; + description?: string; + name?: string; } export interface IpresenceData { @@ -57,80 +57,80 @@ export interface IEvent { } export interface ICommandComponent { + execute: (context: CommandContext) => any; meta: { + readonly category?: string; + readonly path?: string; + contextChat?: string; + contextUser?: string; + description?: string; + slash?: SlashOption; aliases?: string[]; cooldown?: number; disable?: boolean; - readonly path?: string; devOnly?: boolean; - description?: string; - readonly category?: string; - name: string; usage?: string; - slash?: SlashOption; - contextChat?: string; - contextUser?: string; + name: string; }; - execute: (context: CommandContext) => any; } export interface ICategoryMeta { - name: string; - hide: boolean; cmds: Collection<string, ICommandComponent>; + hide: boolean; + name: string; } declare module "discord.js" { // @ts-expect-error Override typings export interface Client extends OClient { + commands: Rawon["commands"]; + request: Rawon["request"]; config: Rawon["config"]; logger: Rawon["logger"]; - request: Rawon["request"]; - commands: Rawon["commands"]; events: Rawon["events"]; build: () => Promise<this>; } export interface Guild { - client: Rawon; queue?: ServerQueue; + client: Rawon; } } export interface ISong { - id: string; + thumbnail: string; + duration: number; title: string; url: string; - duration: number; - thumbnail: string; + id: string; } export interface IQueueSong { - song: ISong; requester: GuildMember; index: number; + song: ISong; key: string; } export type LoopMode = "OFF" | "QUEUE" | "SONG"; export interface ILyricsAPIResult<E extends boolean> { - error: E; - artist?: E extends true ? null : string; - song?: E extends true ? null : string; + synced: E extends true ? never : boolean | string; album_art?: E extends true ? null : string; + message?: E extends true ? string : never; + artist?: E extends true ? null : string; lyrics?: E extends true ? null : string; + song?: E extends true ? null : string; url?: E extends true ? null : string; - message?: E extends true ? string : never; - synced: E extends true ? never : boolean | string; + error: E; } export interface ISpotifyAccessTokenAPIResult { - clientId: string; - accessToken?: string; accessTokenExpirationTimestampMs: number; + accessToken?: string; isAnonymous: boolean; + clientId: string; } export interface ExternalUrls { @@ -140,10 +140,10 @@ export interface ExternalUrls { export interface ArtistsEntity { external_urls: ExternalUrls; href: string; - id: string; name: string; type: string; uri: string; + id: string; } export interface SpotifyArtist { @@ -154,8 +154,8 @@ export interface SpotifyPlaylist { name: string; tracks: { items: { track: SpotifyTrack }[]; - next: string | null; previous: string | null; + next: string | null; }; } @@ -165,8 +165,8 @@ export interface SpotifyTrack { external_urls: { spotify: string; }; - id: string; name: string; + id: string; } export interface SpotifyArtist { From 754512cb6c0a6861772b5e139e10c896289522c6 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 11:17:38 +0900 Subject: [PATCH 135/411] types: better naming for interfaces --- src/commands/music/LyricsCommand.ts | 6 ++--- src/commands/music/NowPlayingCommand.ts | 4 ++-- src/commands/music/PlayCommand.ts | 4 ++-- src/commands/music/QueueCommand.ts | 4 ++-- src/commands/music/RemoveCommand.ts | 4 ++-- src/commands/music/SearchCommand.ts | 4 ++-- src/commands/music/SkipCommand.ts | 4 ++-- src/commands/music/SkipToCommand.ts | 6 ++--- src/config.ts | 4 ++-- src/events/VoiceStateUpdateEvent.ts | 4 ++-- src/structures/BaseCommand.ts | 6 ++--- src/structures/BaseEvent.ts | 6 ++--- src/typings/index.d.ts | 26 +++++++++++----------- src/utils/decorators/Command.ts | 4 ++-- src/utils/decorators/Event.ts | 4 ++-- src/utils/handlers/SpotifyUtil.ts | 4 ++-- src/utils/handlers/YTDLUtil.ts | 4 ++-- src/utils/handlers/general/handleVideos.ts | 4 ++-- src/utils/handlers/general/play.ts | 6 ++--- src/utils/handlers/general/searchTrack.ts | 12 +++++----- src/utils/structures/CommandManager.ts | 10 ++++----- src/utils/structures/EventsLoader.ts | 4 ++-- src/utils/structures/RawonLogger.ts | 4 ++-- src/utils/structures/SongManager.ts | 8 +++---- 24 files changed, 73 insertions(+), 73 deletions(-) diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 2b703b517..cd275c0c2 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -1,7 +1,7 @@ import { ButtonPagination } from "../../utils/structures/ButtonPagination"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; -import { ILyricsAPIResult, IQueueSong } from "../../typings"; +import { LyricsAPIResult, QueueSong } from "../../typings"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; @@ -32,7 +32,7 @@ export class LyricsCommand extends BaseCommand { ? ctx.args.join(" ") : ctx.options?.getString("query") ? ctx.options.getString("query") - : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as IQueueSong | undefined)?.song.title; + : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as QueueSong | undefined)?.song.title; if (!query) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] @@ -44,7 +44,7 @@ export class LyricsCommand extends BaseCommand { private getLyrics(ctx: CommandContext, song: string): void { const url = `https://api.lxndr.dev/lyrics/?song=${encodeURI(song)}&from=${encodeURI(this.client.user!.id)}`; - this.client.request.get(url).json<ILyricsAPIResult<false>>() + this.client.request.get(url).json<LyricsAPIResult<false>>() .then(async data => { if ((data as { error: boolean }).error) { return ctx.reply({ diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index 959376961..eefc70cfe 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -3,7 +3,7 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; -import { IQueueSong } from "../../typings"; +import { QueueSong } from "../../typings"; import i18n from "../../config"; import { MessageActionRow, MessageButton, MessageEmbed } from "discord.js"; import { AudioPlayerState, AudioResource } from "@discordjs/voice"; @@ -23,7 +23,7 @@ export class NowPlayingCommand extends BaseCommand { function getEmbed(): MessageEmbed { const song = ((ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined; - }) | undefined)?.resource?.metadata as IQueueSong | undefined)?.song; + }) | undefined)?.resource?.metadata as QueueSong | undefined)?.song; return createEmbed("info", `${ ctx.guild?.queue?.playing diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 6fd5ecaaf..8d0eda345 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -4,7 +4,7 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; -import { ISong } from "../../typings"; +import { Song } from "../../typings"; import i18n from "../../config"; import { Message } from "discord.js"; @@ -35,7 +35,7 @@ export class PlayCommand extends BaseCommand { const voiceChannel = ctx.member!.voice.channel!; if (ctx.additionalArgs.get("fromSearch")) { const tracks = ctx.additionalArgs.get("values"); - const toQueue: ISong[] = []; + const toQueue: Song[] = []; for (const track of tracks) { const song = await searchTrack(this.client, track as string) diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index c43a92607..5e7995f3e 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -5,7 +5,7 @@ import { haveQueue } from "../../utils/decorators/MusicUtil"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; -import { IQueueSong } from "../../typings"; +import { QueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; @@ -21,7 +21,7 @@ import { AudioPlayerPlayingState } from "@discordjs/voice"; export class QueueCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { - const np = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; + const np = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index bf77ab80a..04b1d0da9 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -6,7 +6,7 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { chunk } from "../../utils/functions/chunk"; -import { IQueueSong } from "../../typings"; +import { QueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerState, AudioResource } from "@discordjs/voice"; import { Util } from "discord.js"; @@ -56,7 +56,7 @@ export class RemoveCommand extends BaseCommand { ctx.guild!.queue!.songs.delete(song.key); } - const np = (ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as IQueueSong | undefined; + const np = (ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as QueueSong | undefined; const isSkip = songs.map(x => x.key).includes(np?.key ?? ""); if (isSkip) { this.client.commands.get("skip")?.execute(ctx); diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 13973cb20..5e781b0ff 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -5,7 +5,7 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; -import { ISong } from "../../typings"; +import { Song } from "../../typings"; import i18n from "../../config"; import { CommandInteractionOptionResolver, Message, MessageActionRow, MessageSelectOptionData, MessageSelectMenu, SelectMenuInteraction, Util } from "discord.js"; @@ -174,7 +174,7 @@ export class SearchCommand extends BaseCommand { } // eslint-disable-next-line class-methods-use-this - private generateSelectMenu(tracks: ISong[]): MessageSelectOptionData[] { + private generateSelectMenu(tracks: Song[]): MessageSelectOptionData[] { const emojis = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟"]; return tracks.slice(0, 10).map((x, i) => ( diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 4348afdd9..e8f6fef2b 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -4,7 +4,7 @@ import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; -import { IQueueSong } from "../../typings"; +import { QueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { GuildMember } from "discord.js"; @@ -26,7 +26,7 @@ export class SkipCommand extends BaseCommand { @sameVC public async execute(ctx: CommandContext): Promise<void> { const djRole = await this.client.utils.fetchDJRole(ctx.guild!).catch(() => null); - const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong; + const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong; function ableToSkip(member: GuildMember): boolean { return member.roles.cache.has(djRole?.id ?? "") || diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 822b2d7a4..4e527a4ee 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -4,7 +4,7 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { play } from "../../utils/handlers/GeneralUtil"; -import { IQueueSong } from "../../typings"; +import { QueueSong } from "../../typings"; import i18n from "../../config"; import { AudioPlayerPlayingState } from "@discordjs/voice"; import { Message } from "discord.js"; @@ -75,7 +75,7 @@ export class SkipToCommand extends BaseCommand { }); } - let song: IQueueSong; + let song: QueueSong; if (String(targetType).toLowerCase() === "first") { song = songs[0]; } else if (String(targetType).toLowerCase() === "last") { @@ -84,7 +84,7 @@ export class SkipToCommand extends BaseCommand { song = songs[Number(targetType) - 1]; } - if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).key) { + if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong).key) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true)] }); diff --git a/src/config.ts b/src/config.ts index 54bb348d3..f0f912696 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,5 +1,5 @@ import { parseEnvValue } from "./utils/functions/parseEnvValue"; -import { IpresenceData } from "./typings"; +import { PresenceData } from "./typings"; import { ActivityType, ClientOptions, @@ -61,7 +61,7 @@ export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; -export const presenceData: IpresenceData = { +export const presenceData: PresenceData = { activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, type: (parseEnvValue(process.env.ACTIVITY_TYPES ?? "")[i]?.toUpperCase() || "PLAYING") as Exclude<ActivityType, "CUSTOM"> diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 6278c6310..7c94f4956 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -3,7 +3,7 @@ import { ServerQueue } from "../structures/ServerQueue"; import { formatMS } from "../utils/functions/formatMS"; import { BaseEvent } from "../structures/BaseEvent"; import { Event } from "../utils/decorators/Event"; -import { IQueueSong } from "../typings"; +import { QueueSong } from "../typings"; import i18n from "../config"; import { AudioPlayerPausedState, entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { Message, StageChannel, VoiceState, VoiceChannel } from "discord.js"; @@ -153,7 +153,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { clearTimeout(queue.timeout!); state.guild.queue!.timeout = null; - const song = ((queue.player!.state as AudioPlayerPausedState).resource.metadata as IQueueSong).song; + const song = ((queue.player!.state as AudioPlayerPausedState).resource.metadata as QueueSong).song; void queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { diff --git a/src/structures/BaseCommand.ts b/src/structures/BaseCommand.ts index c22bfc219..8520167c8 100644 --- a/src/structures/BaseCommand.ts +++ b/src/structures/BaseCommand.ts @@ -1,9 +1,9 @@ import { CommandContext } from "./CommandContext"; -import { ICommandComponent } from "../typings"; +import { CommandComponent } from "../typings"; import { Rawon } from "./Rawon"; -export abstract class BaseCommand implements ICommandComponent { - public constructor(public client: Rawon, public meta: ICommandComponent["meta"]) {} +export abstract class BaseCommand implements CommandComponent { + public constructor(public client: Rawon, public meta: CommandComponent["meta"]) {} public abstract execute(ctx: CommandContext): any; } diff --git a/src/structures/BaseEvent.ts b/src/structures/BaseEvent.ts index 9c12c7b44..c84ed3e48 100644 --- a/src/structures/BaseEvent.ts +++ b/src/structures/BaseEvent.ts @@ -1,8 +1,8 @@ -import { IEvent } from "../typings"; +import { Event } from "../typings"; import { Rawon } from "./Rawon"; -export abstract class BaseEvent implements IEvent { - public constructor(public client: Rawon, public readonly name: IEvent["name"]) {} +export abstract class BaseEvent implements Event { + public constructor(public client: Rawon, public readonly name: Event["name"]) {} public abstract execute(...args: any): any; } diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 6c1bb93a9..c5d029e75 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -12,7 +12,7 @@ export interface QueryData { isURL: boolean; } -export interface basicYoutubeVideoInfo { +export interface BasicYoutubeVideoInfo { thumbnails: { url: string; width: number; height: number }[]; duration: number; title: string; @@ -22,7 +22,7 @@ export interface basicYoutubeVideoInfo { export interface SearchTrackResult { type?: "results" | "selection"; - items: ISong[]; + items: Song[]; } export interface PaginationPayload { @@ -33,7 +33,7 @@ export interface PaginationPayload { author: string; } -export interface IRawonLoggerOptions { +export interface RawonLoggerOptions { prod: boolean; } @@ -45,18 +45,18 @@ export interface SlashOption { name?: string; } -export interface IpresenceData { +export interface PresenceData { activities: { name: string; type: Exclude<ActivityType, "CUSTOM"> }[]; status: ClientPresenceStatus[]; interval: number; } -export interface IEvent { +export interface Event { readonly name: keyof ClientEvents; execute: (...args: any) => void; } -export interface ICommandComponent { +export interface CommandComponent { execute: (context: CommandContext) => any; meta: { readonly category?: string; @@ -74,8 +74,8 @@ export interface ICommandComponent { }; } -export interface ICategoryMeta { - cmds: Collection<string, ICommandComponent>; +export interface CategoryMeta { + cmds: Collection<string, CommandComponent>; hide: boolean; name: string; } @@ -98,7 +98,7 @@ declare module "discord.js" { } } -export interface ISong { +export interface Song { thumbnail: string; duration: number; title: string; @@ -106,16 +106,16 @@ export interface ISong { id: string; } -export interface IQueueSong { +export interface QueueSong { requester: GuildMember; index: number; - song: ISong; + song: Song; key: string; } export type LoopMode = "OFF" | "QUEUE" | "SONG"; -export interface ILyricsAPIResult<E extends boolean> { +export interface LyricsAPIResult<E extends boolean> { synced: E extends true ? never : boolean | string; album_art?: E extends true ? null : string; message?: E extends true ? string : never; @@ -126,7 +126,7 @@ export interface ILyricsAPIResult<E extends boolean> { error: E; } -export interface ISpotifyAccessTokenAPIResult { +export interface SpotifyAccessTokenAPIResult { accessTokenExpirationTimestampMs: number; accessToken?: string; isAnonymous: boolean; diff --git a/src/utils/decorators/Command.ts b/src/utils/decorators/Command.ts index 6aa43a4e3..b849173b8 100644 --- a/src/utils/decorators/Command.ts +++ b/src/utils/decorators/Command.ts @@ -1,8 +1,8 @@ -import { ClassDecorator, NonAbstractConstructor, ICommandComponent } from "../../typings"; +import { ClassDecorator, NonAbstractConstructor, CommandComponent } from "../../typings"; import { BaseCommand, ExtendedCommandConstructor } from "../../structures/BaseCommand"; export function Command<T extends NonAbstractConstructor<BaseCommand> = ExtendedCommandConstructor>( - meta: ICommandComponent["meta"] + meta: CommandComponent["meta"] ): ClassDecorator<T, T> { return target => new Proxy(target, { construct: ( diff --git a/src/utils/decorators/Event.ts b/src/utils/decorators/Event.ts index c957193b7..64a4b7fb6 100644 --- a/src/utils/decorators/Event.ts +++ b/src/utils/decorators/Event.ts @@ -1,8 +1,8 @@ import { BaseEvent, ExtendedEventConstructor } from "../../structures/BaseEvent"; -import { ClassDecorator, IEvent, NonAbstractConstructor } from "../../typings"; +import { ClassDecorator, Event as EI, NonAbstractConstructor } from "../../typings"; export function Event<T extends NonAbstractConstructor<BaseEvent> = ExtendedEventConstructor>( - event: IEvent["name"] + event: EI["name"] ): ClassDecorator<T, T> { return target => new Proxy(target, { construct: ( diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 8171c428b..65fd6a873 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -1,4 +1,4 @@ -import { ISpotifyAccessTokenAPIResult, SpotifyPlaylist, SpotifyTrack } from "../../typings"; +import { SpotifyAccessTokenAPIResult, SpotifyPlaylist, SpotifyTrack } from "../../typings"; import { Rawon } from "../../structures/Rawon"; export class SpotifyUtil { @@ -15,7 +15,7 @@ export class SpotifyUtil { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } - }).json<ISpotifyAccessTokenAPIResult>(); + }).json<SpotifyAccessTokenAPIResult>(); if (!accessToken) throw new Error("Could not fetch self spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index 4433d1685..31c21e6a7 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -1,4 +1,4 @@ -import { basicYoutubeVideoInfo } from "../../typings"; +import { BasicYoutubeVideoInfo } from "../../typings"; import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; @@ -45,7 +45,7 @@ export async function getStream(url: string): Promise<Readable> { }); } -export async function getInfo(url: string): Promise<basicYoutubeVideoInfo> { +export async function getInfo(url: string): Promise<BasicYoutubeVideoInfo> { if (streamStrategy === "play-dl") { const rawPlayDlVideoInfo = await video_basic_info(url); return { diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index b9b22e0bf..ac60fb9d1 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -5,13 +5,13 @@ import { ServerQueue } from "../../../structures/ServerQueue"; import { createEmbed } from "../../functions/createEmbed"; import { Rawon } from "../../../structures/Rawon"; import { chunk } from "../../functions/chunk"; -import { ISong } from "../../../typings"; +import { Song } from "../../../typings"; import { play } from "./play"; import i18n from "../../../config"; import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; -export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: ISong[], voiceChannel: StageChannel | VoiceChannel): Promise<Message | undefined> { +export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: Song[], voiceChannel: StageChannel | VoiceChannel): Promise<Message | undefined> { const wasIdle = ctx.guild?.queue?.idle; async function sendPagination(): Promise<void> { diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index 6327da040..86c5ee594 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -1,6 +1,6 @@ import { createEmbed } from "../../functions/createEmbed"; import { Rawon } from "../../../structures/Rawon"; -import { IQueueSong } from "../../../typings"; +import { QueueSong } from "../../../typings"; import { getStream } from "../YTDLUtil"; import i18n from "../../../config"; import { AudioPlayerError, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, createAudioResource, entersState, VoiceConnectionStatus } from "@discordjs/voice"; @@ -48,7 +48,7 @@ export async function play(client: Rawon, guild: Guild, nextSong?: string, wasId queue?.player?.play(resource); } - const sendStartPlayingMsg = (newSong: IQueueSong["song"]): void => { + const sendStartPlayingMsg = (newSong: QueueSong["song"]): void => { client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${guild.name} has started.`); queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) .then(m => queue.lastMusicMsg = m.id) @@ -73,7 +73,7 @@ export async function play(client: Rawon, guild: Guild, nextSong?: string, wasId queue.player.on("stateChange", (oldState, newState) => { if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { - const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as IQueueSong).song; + const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong).song; sendStartPlayingMsg(newSong); } else if (newState.status === AudioPlayerStatus.Idle) { client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${guild.name} has ended.`); diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index 009fbde66..9eb5974c4 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -1,4 +1,4 @@ -import { ISong, SearchTrackResult, SpotifyTrack } from "../../../typings"; +import { Song, SearchTrackResult, SpotifyTrack } from "../../../typings"; import { Rawon } from "../../../structures/Rawon"; import { checkQuery } from "./checkQuery"; import { youtube } from "../YouTubeUtil"; @@ -45,7 +45,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "playlist": { const playlist = await client.soundcloud.playlists.getV2(scUrl.toString()); - const tracks = await Promise.all(playlist.tracks.map((track): ISong => ({ + const tracks = await Promise.all(playlist.tracks.map((track): Song => ({ duration: track.full_duration, id: track.id.toString(), thumbnail: track.artwork_url, @@ -88,7 +88,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl const playlist = await youtube.getPlaylist(url.toString()); if (playlist) { - const tracks = await Promise.all(playlist.videos.map((track): ISong => ({ + const tracks = await Promise.all(playlist.videos.map((track): Song => ({ duration: track.duration === null ? 0 : track.duration, id: track.id, thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, @@ -148,7 +148,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "playlist": { const songs = await client.spotify.resolveTracks(url.toString()) as unknown as { track: SpotifyTrack }[]; - const tracks = await Promise.all(songs.map(async (x): Promise<ISong> => { + const tracks = await Promise.all(songs.map(async (x): Promise<Song> => { const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }) as SearchResult<"video">)[0]; return { duration: track.duration === null ? 0 : track.duration, @@ -189,7 +189,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl const searchRes = await client.soundcloud.tracks.searchV2({ q: query }); - const tracks = await Promise.all(searchRes.collection.map((track): ISong => ({ + const tracks = await Promise.all(searchRes.collection.map((track): Song => ({ duration: track.full_duration, id: track.id.toString(), thumbnail: track.artwork_url, @@ -200,7 +200,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl result.items = tracks; } else { const searchRes = (await youtube.search(query, { type: "video" })) as SearchResult<"video">; - const tracks = await Promise.all(searchRes.map((track): ISong => ({ + const tracks = await Promise.all(searchRes.map((track): Song => ({ duration: track.duration === null ? 0 : track.duration, id: track.id, thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index 56a1e05b5..ea69d3912 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -1,6 +1,6 @@ import { pathStringToURLString } from "../functions/pathStringToURLString"; import { CommandContext } from "../../structures/CommandContext"; -import { ICategoryMeta, ICommandComponent } from "../../typings"; +import { CategoryMeta, CommandComponent } from "../../typings"; import { createEmbed } from "../functions/createEmbed"; import { Rawon } from "../../structures/Rawon"; import i18n from "../../config"; @@ -8,9 +8,9 @@ import { ApplicationCommandData, Collection, Message, Snowflake, TextChannel } f import { promises as fs } from "fs"; import { resolve } from "path"; -export class CommandManager extends Collection<string, ICommandComponent> { +export class CommandManager extends Collection<string, CommandComponent> { public isReady = false; - public readonly categories: Collection<string, ICategoryMeta> = new Collection(); + public readonly categories: Collection<string, CategoryMeta> = new Collection(); public readonly aliases: Collection<string, string> = new Collection(); private readonly cooldowns: Collection<string, Collection<Snowflake, number>> = new Collection(); @@ -21,7 +21,7 @@ export class CommandManager extends Collection<string, ICommandComponent> { .then(async categories => { this.client.logger.info(`Found ${categories.length} categories, registering...`); for (const category of categories) { - const meta = (await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as { default: ICategoryMeta }).default; + const meta = (await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as { default: CategoryMeta }).default; this.categories.set(category, meta); this.client.logger.info(`Registering ${category} category...`); @@ -37,7 +37,7 @@ export class CommandManager extends Collection<string, ICommandComponent> { for (const file of files) { try { const path = pathStringToURLString(resolve(this.path, category, file)); - const command = await this.client.utils.import<ICommandComponent>(path, this.client); + const command = await this.client.utils.import<CommandComponent>(path, this.client); if (command === undefined) throw new Error(`File ${file} is not a valid command file.`); diff --git a/src/utils/structures/EventsLoader.ts b/src/utils/structures/EventsLoader.ts index 713872007..1f52326ea 100644 --- a/src/utils/structures/EventsLoader.ts +++ b/src/utils/structures/EventsLoader.ts @@ -1,6 +1,6 @@ import { pathStringToURLString } from "../functions/pathStringToURLString"; import { Rawon } from "../../structures/Rawon"; -import { IEvent } from "../../typings"; +import { Event } from "../../typings"; import { promises as fs } from "fs"; import { resolve } from "path"; @@ -11,7 +11,7 @@ export class EventsLoader { .then(async events => { this.client.logger.info(`Loading ${events.length} events...`); for (const file of events) { - const event = await this.client.utils.import<IEvent>( + const event = await this.client.utils.import<Event>( pathStringToURLString(resolve(this.path, file)), this.client ); diff --git a/src/utils/structures/RawonLogger.ts b/src/utils/structures/RawonLogger.ts index 27d17212c..78e2b70d2 100644 --- a/src/utils/structures/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -1,5 +1,5 @@ /* eslint-disable no-nested-ternary */ -import { IRawonLoggerOptions } from "../../typings"; +import { RawonLoggerOptions } from "../../typings"; import { format } from "date-fns"; enum Colors { @@ -11,7 +11,7 @@ enum Colors { } export class RawonLogger { - public constructor(public readonly options: IRawonLoggerOptions) {} + public constructor(public readonly options: RawonLoggerOptions) {} public info(...messages: any[]): void { this.log(messages, "info"); diff --git a/src/utils/structures/SongManager.ts b/src/utils/structures/SongManager.ts index 704300a78..91d9e79b2 100644 --- a/src/utils/structures/SongManager.ts +++ b/src/utils/structures/SongManager.ts @@ -1,10 +1,10 @@ -import { ISong, IQueueSong } from "../../typings"; +import { Song, QueueSong } from "../../typings"; import { Collection, GuildMember, Snowflake, SnowflakeUtil } from "discord.js"; -export class SongManager extends Collection<Snowflake, IQueueSong> { - public addSong(song: ISong, requester: GuildMember): Snowflake { +export class SongManager extends Collection<Snowflake, QueueSong> { + public addSong(song: Song, requester: GuildMember): Snowflake { const key = SnowflakeUtil.generate(); - const data: IQueueSong = { + const data: QueueSong = { index: Date.now(), key, requester, From e795d1edf00a97ea7e5c3ba461f79de4dd072d9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Feb 2022 08:49:09 +0000 Subject: [PATCH 136/411] ci(deps): bump actions/setup-node from 2.5.1 to 3.0.0 (#795) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.1 to 3.0.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.5.1...v3.0.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4aca49c62..bd8424755 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v2.4.0 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.5.1 + uses: actions/setup-node@v3.0.0 with: node-version: ${{ matrix.node-version }} check-latest: true @@ -41,7 +41,7 @@ jobs: uses: actions/checkout@v2.4.0 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.5.1 + uses: actions/setup-node@v3.0.0 with: node-version: ${{ matrix.node-version }} check-latest: true From 81da82f875b0e9d656dc656ccd3bf82ef67f1263 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 23:12:41 +0900 Subject: [PATCH 137/411] chore(env_example): add 'DEV' label --- .env_example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env_example b/.env_example index 0ac175310..31bb9362a 100644 --- a/.env_example +++ b/.env_example @@ -3,6 +3,7 @@ # OPTIONAL = The value is optional and can be left blank # IMPORTANT = It is recommended that you pay attention to the value # MULTIPLE - The value can be multiple, each value splitted with comma or semi-colon. You can use single-string (') to escape if you have any comma or semicolon in the value. +# DEV - The value is recommended to be checked or changed only if you know what you are doing #============================================================================== # IMPORTANT - What is your Discord bot's token? # Example: DISCORD_TOKEN="NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd" From e7b72311315395d6ea4a6c2853ebebb4ec33482a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 23:17:12 +0900 Subject: [PATCH 138/411] chore(env_example): add 'DEBUG_MODE' value --- .env_example | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.env_example b/.env_example index 31bb9362a..2ee99f454 100644 --- a/.env_example +++ b/.env_example @@ -121,3 +121,11 @@ YES_EMOJI="" # Example: NO_EMOJI="❌" # Default: ❌ NO_EMOJI="" + +#============================================================================== +# OPTIONAL, DEV - Do you want to enable Debug Mode? +# This mode will print all information (such as raw event data, queue changes, etc) on the console. +# Example: DEBUG_MODE="no" +# Default: no +DEBUG_MODE="" + From f1ffc1216d6aec78dd66ec00e10f8fd04a1b204b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 23:37:02 +0900 Subject: [PATCH 139/411] style(config): separate env configs from other configs --- src/{config.ts => config/env.ts} | 63 ++------------------------------ src/config/index.ts | 58 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 60 deletions(-) rename src/{config.ts => config/env.ts} (51%) create mode 100644 src/config/index.ts diff --git a/src/config.ts b/src/config/env.ts similarity index 51% rename from src/config.ts rename to src/config/env.ts index f0f912696..90a3e8ee3 100644 --- a/src/config.ts +++ b/src/config/env.ts @@ -1,48 +1,7 @@ -import { parseEnvValue } from "./utils/functions/parseEnvValue"; -import { PresenceData } from "./typings"; -import { - ActivityType, - ClientOptions, - ClientPresenceStatus, - Intents, - Options, - ShardingManagerMode, - Sweepers -} from "discord.js"; -import { join } from "path"; -import i18n from "i18n"; +import { parseEnvValue } from "../utils/functions/parseEnvValue"; +import { PresenceData } from "../typings"; +import { ActivityType, ClientPresenceStatus } from "discord.js"; -export const clientOptions: ClientOptions = { - allowedMentions: { parse: ["users"], repliedUser: true }, - intents: [ - Intents.FLAGS.GUILDS, - Intents.FLAGS.GUILD_MESSAGES, - Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, - Intents.FLAGS.GUILD_VOICE_STATES, - Intents.FLAGS.GUILD_BANS - ], - makeCache: Options.cacheWithLimits({ - MessageManager: { - maxSize: Infinity, - sweepInterval: 300, - sweepFilter: Sweepers.filterByLifetime({ - lifetime: 10800 - }) - }, - ThreadManager: { - maxSize: Infinity, - sweepInterval: 300, - sweepFilter: Sweepers.filterByLifetime({ - lifetime: 10800, - getComparisonTimestamp: e => e.archiveTimestamp!, - excludeFromSweep: e => !e.archived - }) - } - }), - retryLimit: 3 -}; -export const shardsCount: number | "auto" = "auto"; -export const shardingMode: ShardingManagerMode = "worker"; export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const isProd = !isDev; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; @@ -60,7 +19,6 @@ export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; - export const presenceData: PresenceData = { activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, @@ -69,18 +27,3 @@ export const presenceData: PresenceData = { status: ["online"] as ClientPresenceStatus[], interval: 60000 }; - -i18n.configure({ - defaultLocale: "en", - directory: join(process.cwd(), "lang"), - locales: [ - "en", - "es", - "id" - ], - objectNotation: true -}); - -i18n.setLocale(lang); - -export default i18n; diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 000000000..d11e61f2a --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,58 @@ +import { lang } from "./env"; +import { + ClientOptions, + Intents, + Options, + ShardingManagerMode, + Sweepers +} from "discord.js"; +import { join } from "path"; +import i18n from "i18n"; + +export const clientOptions: ClientOptions = { + allowedMentions: { parse: ["users"], repliedUser: true }, + intents: [ + Intents.FLAGS.GUILDS, + Intents.FLAGS.GUILD_MESSAGES, + Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, + Intents.FLAGS.GUILD_VOICE_STATES, + Intents.FLAGS.GUILD_BANS + ], + makeCache: Options.cacheWithLimits({ + MessageManager: { + maxSize: Infinity, + sweepInterval: 300, + sweepFilter: Sweepers.filterByLifetime({ + lifetime: 10800 + }) + }, + ThreadManager: { + maxSize: Infinity, + sweepInterval: 300, + sweepFilter: Sweepers.filterByLifetime({ + lifetime: 10800, + getComparisonTimestamp: e => e.archiveTimestamp!, + excludeFromSweep: e => !e.archived + }) + } + }), + retryLimit: 3 +}; + +i18n.configure({ + defaultLocale: "en", + directory: join(process.cwd(), "lang"), + locales: [ + "en", + "es", + "id" + ], + objectNotation: true +}); + +i18n.setLocale(lang); + +export const shardsCount: number | "auto" = "auto"; +export const shardingMode: ShardingManagerMode = "worker"; +export * from "./env"; +export default i18n; From 861c90b4d3bec4b95219181995146298390c0333 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Feb 2022 23:50:57 +0900 Subject: [PATCH 140/411] style(config/env): separate values and sort by length --- src/config/env.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/config/env.ts b/src/config/env.ts index 90a3e8ee3..305641546 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -2,23 +2,28 @@ import { parseEnvValue } from "../utils/functions/parseEnvValue"; import { PresenceData } from "../typings"; import { ActivityType, ClientPresenceStatus } from "discord.js"; +// Boolean values +export const stayInVCAfterFinished = process.env.STAY_IN_VC_AFTER_FINISHED?.toLowerCase() === "yes"; +export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; +export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const isProd = !isDev; -export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; -export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); + +// String values +export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; -export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; -export const owners: string[] = parseEnvValue(process.env.OWNERS ?? ""); -export const devGuild = parseEnvValue(process.env.DEV_GUILD ?? ""); export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; -export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; -export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; -export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; -export const stayInVCAfterFinished = process.env.STAY_IN_VC_AFTER_FINISHED?.toLowerCase() === "yes"; -export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; +export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; +export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; +export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; + +// Multiple values +export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); +export const owners: string[] = parseEnvValue(process.env.OWNERS ?? ""); +export const devGuild = parseEnvValue(process.env.DEV_GUILD ?? ""); export const presenceData: PresenceData = { activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, From 8bef53be4234a3c17fd7ed7b795d3219566085dd Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Feb 2022 00:23:19 +0900 Subject: [PATCH 141/411] feat(config/env): add 'debugMode' --- src/config/env.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/config/env.ts b/src/config/env.ts index 305641546..c8e316880 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -7,6 +7,7 @@ export const stayInVCAfterFinished = process.env.STAY_IN_VC_AFTER_FINISHED?.toLo export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase() !== "no"; export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; +export const debugMode = process.env.DEBUG_MODE?.toLowerCase() === "yes"; export const isProd = !isDev; // String values From 46a7eaaf4ac703a2ce8b52cb3b47c181df897895 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Feb 2022 23:32:16 +0000 Subject: [PATCH 142/411] chore(deps): bump youtube-dl-exec from 2.0.5 to 2.0.6 (#796) Bumps [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec) from 2.0.5 to 2.0.6. - [Release notes](https://github.com/microlinkhq/youtube-dl-exec/releases) - [Changelog](https://github.com/microlinkhq/youtube-dl-exec/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/youtube-dl-exec/compare/v2.0.5...v2.0.6) --- updated-dependencies: - dependency-name: youtube-dl-exec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e5c202e2..3e695b511 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", + "youtube-dl-exec": "^2.0.6", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -38,7 +39,7 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.5" + "youtube-dl-exec": "^2.0.6" } }, "node_modules/@discordjs/builders": { @@ -2826,9 +2827,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.5.tgz", - "integrity": "sha512-30U32q9eVfudfsFILHKqHGCzxPAm4X6ndA74modMGuYrM9hVyEYmn9xRYf7dqj0DB28EDuiA1e0veJ1eMkKiig==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.6.tgz", + "integrity": "sha512-oVYruSPHNidZ1BzthyA8kX40oIrJEJdc7zpFlVcOlm8Pvk9HzLQcDJCAPOJbh3yKQKpXgXFHCUDlEFJ8py7Ueg==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -4726,9 +4727,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.5.tgz", - "integrity": "sha512-30U32q9eVfudfsFILHKqHGCzxPAm4X6ndA74modMGuYrM9hVyEYmn9xRYf7dqj0DB28EDuiA1e0veJ1eMkKiig==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.6.tgz", + "integrity": "sha512-oVYruSPHNidZ1BzthyA8kX40oIrJEJdc7zpFlVcOlm8Pvk9HzLQcDJCAPOJbh3yKQKpXgXFHCUDlEFJ8py7Ueg==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index cb3566df2..ca68df5dc 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.8.8", - "youtube-dl-exec": "^2.0.5" + "youtube-dl-exec": "^2.0.6" } } From f5754f92cd255513fd0608d93a28f74fc0654910 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Feb 2022 16:36:20 +0900 Subject: [PATCH 143/411] feat(RawonLogger): create 'LogLevel' type --- src/utils/structures/RawonLogger.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/structures/RawonLogger.ts b/src/utils/structures/RawonLogger.ts index 78e2b70d2..4b1455aed 100644 --- a/src/utils/structures/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -10,6 +10,8 @@ enum Colors { Blue = "\x1b[34m" } +export type LogLevel = "debug" | "error" | "info" | "warn"; + export class RawonLogger { public constructor(public readonly options: RawonLoggerOptions) {} @@ -29,7 +31,7 @@ export class RawonLogger { this.log(messages, "warn"); } - private log(messages: any[], level: "debug" | "error" | "info" | "warn" = "info"): void { + private log(messages: any[], level: LogLevel = "info"): void { if (this.options.prod && level === "debug") return; console[level](`${ From 266cc823a8b4b20d7dd435f4f555f428ddcc2e60 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Feb 2022 16:53:33 +0900 Subject: [PATCH 144/411] feat(RawonLogger): better logging string and code --- src/utils/structures/RawonLogger.ts | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/utils/structures/RawonLogger.ts b/src/utils/structures/RawonLogger.ts index 4b1455aed..dd8f42859 100644 --- a/src/utils/structures/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -1,17 +1,24 @@ -/* eslint-disable no-nested-ternary */ import { RawonLoggerOptions } from "../../typings"; import { format } from "date-fns"; -enum Colors { - Reset = "\x1b[0m", +enum ANSIColorOpening { Red = "\x1b[31m", Yellow = "\x1b[33m", Green = "\x1b[32m", Blue = "\x1b[34m" } +const ansiColorClosing = "\x1b[39m"; + export type LogLevel = "debug" | "error" | "info" | "warn"; +const levelColors: Record<LogLevel, string> = { + debug: ANSIColorOpening.Blue, + error: ANSIColorOpening.Red, + info: ANSIColorOpening.Green, + warn: ANSIColorOpening.Yellow +}; + export class RawonLogger { public constructor(public readonly options: RawonLoggerOptions) {} @@ -34,16 +41,11 @@ export class RawonLogger { private log(messages: any[], level: LogLevel = "info"): void { if (this.options.prod && level === "debug") return; - console[level](`${ - this.options.prod - ? "" - : level === "debug" - ? Colors.Blue - : level === "error" - ? Colors.Red - : level === "warn" - ? Colors.Yellow - : Colors.Green - }[${format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)")}] [${level}]: ${messages.map(x => String(x)).join(" ")} ${Colors.Reset}`); + const opening = this.options.prod ? "" : levelColors[level]; + const closing = this.options.prod ? "" : ansiColorClosing; + const formattedDate = format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)"); + const message = messages.map(x => String(x)).join(" "); + + console[level](`${opening}[${formattedDate}] [${level}]: ${message} ${closing}`); } } From 1321be39d21860d064a8441d71615af9f0172183 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Feb 2022 17:10:07 +0900 Subject: [PATCH 145/411] feat(RawonLogger): create a re-usable BaseLogger class --- src/utils/structures/RawonLogger.ts | 31 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/utils/structures/RawonLogger.ts b/src/utils/structures/RawonLogger.ts index dd8f42859..af22da35c 100644 --- a/src/utils/structures/RawonLogger.ts +++ b/src/utils/structures/RawonLogger.ts @@ -19,14 +19,30 @@ const levelColors: Record<LogLevel, string> = { warn: ANSIColorOpening.Yellow }; -export class RawonLogger { - public constructor(public readonly options: RawonLoggerOptions) {} +export class BaseLogger { + public constructor(public readonly color: boolean = true) {} + + protected log(messages: any[], level: LogLevel = "info"): void { + const opening = this.color ? "" : levelColors[level]; + const closing = this.color ? "" : ansiColorClosing; + const formattedDate = format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)"); + const message = messages.map(x => String(x)).join(" "); + + console[level](`${opening}[${formattedDate}] [${level}]: ${message} ${closing}`); + } +} + +export class RawonLogger extends BaseLogger { + public constructor(public readonly options: RawonLoggerOptions) { + super(options.prod); + } public info(...messages: any[]): void { this.log(messages, "info"); } public debug(...messages: any[]): void { + if (this.options.prod) return; this.log(messages, "debug"); } @@ -37,15 +53,4 @@ export class RawonLogger { public warn(...messages: any[]): void { this.log(messages, "warn"); } - - private log(messages: any[], level: LogLevel = "info"): void { - if (this.options.prod && level === "debug") return; - - const opening = this.options.prod ? "" : levelColors[level]; - const closing = this.options.prod ? "" : ansiColorClosing; - const formattedDate = format(Date.now(), "yyyy-MM-dd HH:mm:ss (x)"); - const message = messages.map(x => String(x)).join(" "); - - console[level](`${opening}[${formattedDate}] [${level}]: ${message} ${closing}`); - } } From a2249d3e5d057dd2d5a296b832d5a86c8acc79e6 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Feb 2022 17:31:12 +0900 Subject: [PATCH 146/411] feat(utils): create DebugLogManager util --- src/utils/structures/DebugLogManager.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/utils/structures/DebugLogManager.ts diff --git a/src/utils/structures/DebugLogManager.ts b/src/utils/structures/DebugLogManager.ts new file mode 100644 index 000000000..6cba01449 --- /dev/null +++ b/src/utils/structures/DebugLogManager.ts @@ -0,0 +1,21 @@ +import { BaseLogger, LogLevel } from "./RawonLogger"; + +export class DebugLogManager extends BaseLogger { + public constructor(prod = true) { + super(prod); + } + + public logData(level: LogLevel, contextName: string, data: string[][] | string): void { + const messages: string[] = [`[${contextName}]`]; + + if (Array.isArray(data)) { + for (const [key, value] of data) { + messages.push(`${key.trim() ? `${key}: ` : ""}${value}`); + } + } else { + messages.push(data); + } + + this.log(messages, level); + } +} From 2645ce6b7af9723c7b5105c2ff338ef6beaad099 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 08:54:03 +0700 Subject: [PATCH 147/411] chore(deps): bump @swc/core from 1.2.145 to 1.2.146 (#798) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.145 to 1.2.146. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.145...v1.2.146) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 223 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e695b511..5439d2b04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.145", + "@swc/core": "^1.2.146", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -22,7 +22,6 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.6", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -278,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.145.tgz", - "integrity": "sha512-E9cXql7G7XPSBZKZ8ALONLbuuPdC5Kj0I7D7CN+LGyAGLlhs7e70VJsq7RMT4o1UY7UkqbLU598C7KtSMpZFyg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.146.tgz", + "integrity": "sha512-axIapm2mReT45ILuYxwe0xEWqtITj3dyfDIGIgdC8Tx7ss5vpXvr22UbDSUTRIS+nypFy6hViIR1RhXE1hXnig==", "engines": { "node": ">=10" }, @@ -289,25 +288,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.145", - "@swc/core-android-arm64": "1.2.145", - "@swc/core-darwin-arm64": "1.2.145", - "@swc/core-darwin-x64": "1.2.145", - "@swc/core-freebsd-x64": "1.2.145", - "@swc/core-linux-arm-gnueabihf": "1.2.145", - "@swc/core-linux-arm64-gnu": "1.2.145", - "@swc/core-linux-arm64-musl": "1.2.145", - "@swc/core-linux-x64-gnu": "1.2.145", - "@swc/core-linux-x64-musl": "1.2.145", - "@swc/core-win32-arm64-msvc": "1.2.145", - "@swc/core-win32-ia32-msvc": "1.2.145", - "@swc/core-win32-x64-msvc": "1.2.145" + "@swc/core-android-arm-eabi": "1.2.146", + "@swc/core-android-arm64": "1.2.146", + "@swc/core-darwin-arm64": "1.2.146", + "@swc/core-darwin-x64": "1.2.146", + "@swc/core-freebsd-x64": "1.2.146", + "@swc/core-linux-arm-gnueabihf": "1.2.146", + "@swc/core-linux-arm64-gnu": "1.2.146", + "@swc/core-linux-arm64-musl": "1.2.146", + "@swc/core-linux-x64-gnu": "1.2.146", + "@swc/core-linux-x64-musl": "1.2.146", + "@swc/core-win32-arm64-msvc": "1.2.146", + "@swc/core-win32-ia32-msvc": "1.2.146", + "@swc/core-win32-x64-msvc": "1.2.146" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.145.tgz", - "integrity": "sha512-uHlRBYlnKfASaQ+I+GI80YVpylHG+R4IRd4UXPmCtsOqCkb5gPvunbWBwlWDcuseRxgAP6EA1uLyTE2YGxLmrQ==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.146.tgz", + "integrity": "sha512-vRlxDksEDdprqfj9VACYUGyCJr/tYLetNjhjel46qmKoXU5uAib1WLWWgMB1Ur+oh8eCSTN8cnOblOziqfC1Rw==", "cpu": [ "arm" ], @@ -323,9 +322,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.145.tgz", - "integrity": "sha512-o+bJBJOMYeS8cSadApt0NXqhDTj/h5Cg5aEfVRO3Tjxt7KxREMrAFRY0ITfOn7DHF00z+Gec5W+m6X8Mqvy0Xg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.146.tgz", + "integrity": "sha512-YoJygRvjZ6IXvWstYZHGThEj1aWshzoMohX0i6WH5NIZhkzeF0UhRu/IZoS9VcQsd0WtDEMQe0G0wcrd/FToNg==", "cpu": [ "arm64" ], @@ -341,9 +340,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.145.tgz", - "integrity": "sha512-by8NYwS3bXQMlDBySAvKPtpkSjqz/+PpNaLpAbC5oCEx/mFBv37FxbTTDEMJ/Nw3uPG9z1VR+nCsYj8bb8rvLw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.146.tgz", + "integrity": "sha512-ftAyhczQHSUQo1Mox/VyZ3YL9KtG0LgOFUUUuLD3Pb9zKQB20Jc/Dfnh/bFktemVG8XiH0rOyR9yEI2EANHuEA==", "cpu": [ "arm64" ], @@ -359,9 +358,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.145.tgz", - "integrity": "sha512-uSvGeY+7Wa0tfE7T3bYlTrUpZEZ8XGo1aCCQYHQ3tJk/v/pfhhEAg80O8sHsdn0DA7AkVWR3L3kqg2O0JAfF/A==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.146.tgz", + "integrity": "sha512-mYRN/WTS7TfYt3jqJYghcrpAW7zkpjdeEx9Rot8rmUEmk97luh9Bcwqafzjb9ndoG1mAiaTQcqvs/QqT2efS5Q==", "cpu": [ "x64" ], @@ -377,9 +376,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.145.tgz", - "integrity": "sha512-br4Lsp2x2yNjrzre+wVPtUUMH86k7RfSlYXd6OrnuGAU7447yuMhziR17j096e4cY5BQhULtBhyiN5ZX+Rvj5g==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.146.tgz", + "integrity": "sha512-eYU5g7p/dY98+hvg3VJtwiX+btRWnq+WO4y4M+X1nguqghvuTv6jtVLeHDNr8FEhc+FMSJPYKO321ZVa0xCKXw==", "cpu": [ "x64" ], @@ -395,9 +394,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.145.tgz", - "integrity": "sha512-Xtbdm6KTRE5vpKdBTxxdTm8JlFrl486BBauG5IkA7x+kdz3HoULn9ESXPJggkKmjOf3CdFoIFVRBHNrH6nz2Zg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.146.tgz", + "integrity": "sha512-ahKwlP9b41HUlwY+0eRJjgG4yJZN+uT16iBB2X7VedipmRO0aOOaP8xLReDjn4Z13DL14iAPC6Jnxiaw5rl8LQ==", "cpu": [ "arm" ], @@ -413,9 +412,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.145.tgz", - "integrity": "sha512-ZpeIPj4ZrRaUizDcAelGlj+JDmlYqbVPe+2xXQvk3i8dy4gNDJbadJncmYG3/WGTNLyXpzK+MgevDW1FsNUo4g==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.146.tgz", + "integrity": "sha512-S/0EJI8BWBQtsyIuYwVg+Gq03NlGl/xWOJgwLJss5+DawvxK8YZFteczw7M/bN/E5D2TqZRyybLM6baQozgDAg==", "cpu": [ "arm64" ], @@ -431,9 +430,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.145.tgz", - "integrity": "sha512-h3EPP/ljEeJmCado/YSTWCVBUPf+Wee7Qa5a6vdu/kjAkCb1UTGV13VkQvEApPM2fmXXVQ3HQhnhuvO8U+lJIw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.146.tgz", + "integrity": "sha512-tOHcanuqgniMwUWMwjA+zr/hZyVn931l8DiIi3Mthyplp/PDY68PVAUJ8miJd4C5XDPcYfPOe5kRyXsFrdZzhw==", "cpu": [ "arm64" ], @@ -449,9 +448,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.145.tgz", - "integrity": "sha512-YNQ26qLOf0XxxAWZo9DIMAFUrorCraqBkEVZrqd6CPm4NXzyFgjUEToi39S+ipdEEEjRT6Wty858hSjHN4OOUg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.146.tgz", + "integrity": "sha512-w9jHnFe1XLYfQYWkaJwKgmtb/HKsgyFy0sCQpVjgDq/+ds8PPyACthDINpiEMsAOFN+IfE59HDn4A2gN3qyVgg==", "cpu": [ "x64" ], @@ -467,9 +466,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.145.tgz", - "integrity": "sha512-92tmgOiuQTYzN0SyExhnnmUinVNcdYXIPEVoIQZq7UdUHpgi2cJHDkfY8zzcRQ85aFwC0gIOzFcdnccWVSPdEw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.146.tgz", + "integrity": "sha512-iwKiHvV8p48/82+eJRCy/WcnAZBOFr2ZJ5VLtRuV+sz0mkWjoimnLZ8SEshoru9PVoKF7hfG7AMqKaVOUjSJFg==", "cpu": [ "x64" ], @@ -485,9 +484,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.145.tgz", - "integrity": "sha512-cv9UZT8/RWyaWZyvuS5fOT5YgA9opnsprQ6DKOJNljx2zCCHy+GulrwGYPk8cIGRuD3RSP/nOua7WPg8FE1ExA==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.146.tgz", + "integrity": "sha512-n21riIEGTPim19Y0mrBIDVZfOrYdfd2W8QEgbiG/f+kcOlWckvyh9ZKexd6D8QpHe73C4lOX1RrmH3DgnPGhqA==", "cpu": [ "arm64" ], @@ -503,9 +502,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.145.tgz", - "integrity": "sha512-bj00Ihd9DpKVIShXUTG0ivEd4eTPTq3uhksUz+1yUcH4neJADPM0vzkj/a/A7rSDMpgkm7Hn53QH6tU9kZvXgw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.146.tgz", + "integrity": "sha512-5b99VzxvTqTQCZDmpKrGevUc9SK0QBiGZG4Oeh5CnSJyx8SZU0A3R7rbMoSR5/raP9OA/0ZvlXefUDXIsKNadA==", "cpu": [ "ia32" ], @@ -521,9 +520,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.145.tgz", - "integrity": "sha512-DcJ2qg1Tazm+BfXHTSyIZe81iV1EVflcXex3V7hJ04Fc/1K9hAuXS0INrvVGtK3P70aFUoY7+2AYXcxbm3JdbQ==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.146.tgz", + "integrity": "sha512-P45vAh0hR9dISIceSv6MkypjT0WduLWB4U8LPoCneeAw7mA1U7liS0Uu1PeiafxQVMWg8SNyIJFDcSg/haLJgg==", "cpu": [ "x64" ], @@ -3023,101 +3022,101 @@ } }, "@swc/core": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.145.tgz", - "integrity": "sha512-E9cXql7G7XPSBZKZ8ALONLbuuPdC5Kj0I7D7CN+LGyAGLlhs7e70VJsq7RMT4o1UY7UkqbLU598C7KtSMpZFyg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.146.tgz", + "integrity": "sha512-axIapm2mReT45ILuYxwe0xEWqtITj3dyfDIGIgdC8Tx7ss5vpXvr22UbDSUTRIS+nypFy6hViIR1RhXE1hXnig==", "requires": { - "@swc/core-android-arm-eabi": "1.2.145", - "@swc/core-android-arm64": "1.2.145", - "@swc/core-darwin-arm64": "1.2.145", - "@swc/core-darwin-x64": "1.2.145", - "@swc/core-freebsd-x64": "1.2.145", - "@swc/core-linux-arm-gnueabihf": "1.2.145", - "@swc/core-linux-arm64-gnu": "1.2.145", - "@swc/core-linux-arm64-musl": "1.2.145", - "@swc/core-linux-x64-gnu": "1.2.145", - "@swc/core-linux-x64-musl": "1.2.145", - "@swc/core-win32-arm64-msvc": "1.2.145", - "@swc/core-win32-ia32-msvc": "1.2.145", - "@swc/core-win32-x64-msvc": "1.2.145" + "@swc/core-android-arm-eabi": "1.2.146", + "@swc/core-android-arm64": "1.2.146", + "@swc/core-darwin-arm64": "1.2.146", + "@swc/core-darwin-x64": "1.2.146", + "@swc/core-freebsd-x64": "1.2.146", + "@swc/core-linux-arm-gnueabihf": "1.2.146", + "@swc/core-linux-arm64-gnu": "1.2.146", + "@swc/core-linux-arm64-musl": "1.2.146", + "@swc/core-linux-x64-gnu": "1.2.146", + "@swc/core-linux-x64-musl": "1.2.146", + "@swc/core-win32-arm64-msvc": "1.2.146", + "@swc/core-win32-ia32-msvc": "1.2.146", + "@swc/core-win32-x64-msvc": "1.2.146" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.145.tgz", - "integrity": "sha512-uHlRBYlnKfASaQ+I+GI80YVpylHG+R4IRd4UXPmCtsOqCkb5gPvunbWBwlWDcuseRxgAP6EA1uLyTE2YGxLmrQ==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.146.tgz", + "integrity": "sha512-vRlxDksEDdprqfj9VACYUGyCJr/tYLetNjhjel46qmKoXU5uAib1WLWWgMB1Ur+oh8eCSTN8cnOblOziqfC1Rw==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.145.tgz", - "integrity": "sha512-o+bJBJOMYeS8cSadApt0NXqhDTj/h5Cg5aEfVRO3Tjxt7KxREMrAFRY0ITfOn7DHF00z+Gec5W+m6X8Mqvy0Xg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.146.tgz", + "integrity": "sha512-YoJygRvjZ6IXvWstYZHGThEj1aWshzoMohX0i6WH5NIZhkzeF0UhRu/IZoS9VcQsd0WtDEMQe0G0wcrd/FToNg==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.145.tgz", - "integrity": "sha512-by8NYwS3bXQMlDBySAvKPtpkSjqz/+PpNaLpAbC5oCEx/mFBv37FxbTTDEMJ/Nw3uPG9z1VR+nCsYj8bb8rvLw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.146.tgz", + "integrity": "sha512-ftAyhczQHSUQo1Mox/VyZ3YL9KtG0LgOFUUUuLD3Pb9zKQB20Jc/Dfnh/bFktemVG8XiH0rOyR9yEI2EANHuEA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.145.tgz", - "integrity": "sha512-uSvGeY+7Wa0tfE7T3bYlTrUpZEZ8XGo1aCCQYHQ3tJk/v/pfhhEAg80O8sHsdn0DA7AkVWR3L3kqg2O0JAfF/A==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.146.tgz", + "integrity": "sha512-mYRN/WTS7TfYt3jqJYghcrpAW7zkpjdeEx9Rot8rmUEmk97luh9Bcwqafzjb9ndoG1mAiaTQcqvs/QqT2efS5Q==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.145.tgz", - "integrity": "sha512-br4Lsp2x2yNjrzre+wVPtUUMH86k7RfSlYXd6OrnuGAU7447yuMhziR17j096e4cY5BQhULtBhyiN5ZX+Rvj5g==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.146.tgz", + "integrity": "sha512-eYU5g7p/dY98+hvg3VJtwiX+btRWnq+WO4y4M+X1nguqghvuTv6jtVLeHDNr8FEhc+FMSJPYKO321ZVa0xCKXw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.145.tgz", - "integrity": "sha512-Xtbdm6KTRE5vpKdBTxxdTm8JlFrl486BBauG5IkA7x+kdz3HoULn9ESXPJggkKmjOf3CdFoIFVRBHNrH6nz2Zg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.146.tgz", + "integrity": "sha512-ahKwlP9b41HUlwY+0eRJjgG4yJZN+uT16iBB2X7VedipmRO0aOOaP8xLReDjn4Z13DL14iAPC6Jnxiaw5rl8LQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.145.tgz", - "integrity": "sha512-ZpeIPj4ZrRaUizDcAelGlj+JDmlYqbVPe+2xXQvk3i8dy4gNDJbadJncmYG3/WGTNLyXpzK+MgevDW1FsNUo4g==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.146.tgz", + "integrity": "sha512-S/0EJI8BWBQtsyIuYwVg+Gq03NlGl/xWOJgwLJss5+DawvxK8YZFteczw7M/bN/E5D2TqZRyybLM6baQozgDAg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.145.tgz", - "integrity": "sha512-h3EPP/ljEeJmCado/YSTWCVBUPf+Wee7Qa5a6vdu/kjAkCb1UTGV13VkQvEApPM2fmXXVQ3HQhnhuvO8U+lJIw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.146.tgz", + "integrity": "sha512-tOHcanuqgniMwUWMwjA+zr/hZyVn931l8DiIi3Mthyplp/PDY68PVAUJ8miJd4C5XDPcYfPOe5kRyXsFrdZzhw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.145.tgz", - "integrity": "sha512-YNQ26qLOf0XxxAWZo9DIMAFUrorCraqBkEVZrqd6CPm4NXzyFgjUEToi39S+ipdEEEjRT6Wty858hSjHN4OOUg==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.146.tgz", + "integrity": "sha512-w9jHnFe1XLYfQYWkaJwKgmtb/HKsgyFy0sCQpVjgDq/+ds8PPyACthDINpiEMsAOFN+IfE59HDn4A2gN3qyVgg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.145.tgz", - "integrity": "sha512-92tmgOiuQTYzN0SyExhnnmUinVNcdYXIPEVoIQZq7UdUHpgi2cJHDkfY8zzcRQ85aFwC0gIOzFcdnccWVSPdEw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.146.tgz", + "integrity": "sha512-iwKiHvV8p48/82+eJRCy/WcnAZBOFr2ZJ5VLtRuV+sz0mkWjoimnLZ8SEshoru9PVoKF7hfG7AMqKaVOUjSJFg==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.145.tgz", - "integrity": "sha512-cv9UZT8/RWyaWZyvuS5fOT5YgA9opnsprQ6DKOJNljx2zCCHy+GulrwGYPk8cIGRuD3RSP/nOua7WPg8FE1ExA==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.146.tgz", + "integrity": "sha512-n21riIEGTPim19Y0mrBIDVZfOrYdfd2W8QEgbiG/f+kcOlWckvyh9ZKexd6D8QpHe73C4lOX1RrmH3DgnPGhqA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.145.tgz", - "integrity": "sha512-bj00Ihd9DpKVIShXUTG0ivEd4eTPTq3uhksUz+1yUcH4neJADPM0vzkj/a/A7rSDMpgkm7Hn53QH6tU9kZvXgw==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.146.tgz", + "integrity": "sha512-5b99VzxvTqTQCZDmpKrGevUc9SK0QBiGZG4Oeh5CnSJyx8SZU0A3R7rbMoSR5/raP9OA/0ZvlXefUDXIsKNadA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.145", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.145.tgz", - "integrity": "sha512-DcJ2qg1Tazm+BfXHTSyIZe81iV1EVflcXex3V7hJ04Fc/1K9hAuXS0INrvVGtK3P70aFUoY7+2AYXcxbm3JdbQ==", + "version": "1.2.146", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.146.tgz", + "integrity": "sha512-P45vAh0hR9dISIceSv6MkypjT0WduLWB4U8LPoCneeAw7mA1U7liS0Uu1PeiafxQVMWg8SNyIJFDcSg/haLJgg==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index ca68df5dc..b529c098f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.145", + "@swc/core": "^1.2.146", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 7f75e6f6f3084d813a7912efce7ccbb12b52b46a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 01:56:16 +0000 Subject: [PATCH 148/411] chore(deps): bump play-dl from 1.8.8 to 1.8.9 (#800) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.8.8 to 1.8.9. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.8.8...1.8.9) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5439d2b04..29ec7c884 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", + "play-dl": "^1.8.9", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,7 +38,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.8", + "play-dl": "^1.8.9", "youtube-dl-exec": "^2.0.6" } }, @@ -2344,9 +2345,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.8.tgz", - "integrity": "sha512-MK1njgYgHHTq9g4pkRd1Siz/LE7pbmgivkXycC1Zpl4psEsPtxq44Atl3fv2MeuISdx/hE7S0H8Oz4l0ZgwhHw==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.9.tgz", + "integrity": "sha512-mIdge+xH7x9ji2+gVFPZl34K+iSvb0sx+N7yYCIGX/OEsGoH84uHj8tCR5Jvy+VETPjY165cjAZnfzHmFPN9DQ==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4405,9 +4406,9 @@ "optional": true }, "play-dl": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.8.tgz", - "integrity": "sha512-MK1njgYgHHTq9g4pkRd1Siz/LE7pbmgivkXycC1Zpl4psEsPtxq44Atl3fv2MeuISdx/hE7S0H8Oz4l0ZgwhHw==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.9.tgz", + "integrity": "sha512-mIdge+xH7x9ji2+gVFPZl34K+iSvb0sx+N7yYCIGX/OEsGoH84uHj8tCR5Jvy+VETPjY165cjAZnfzHmFPN9DQ==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index b529c098f..767334c3a 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.8", + "play-dl": "^1.8.9", "youtube-dl-exec": "^2.0.6" } } From 9e488f9d658589a556eb73a219de99967812dcf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 01:58:31 +0000 Subject: [PATCH 149/411] chore(deps-dev): bump eslint from 8.9.0 to 8.10.0 (#799) Bumps [eslint](https://github.com/eslint/eslint) from 8.9.0 to 8.10.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.9.0...v8.10.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 31 +++++++++++++++---------------- package.json | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29ec7c884..72155ff55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ "got": "^12.0.1", "i18n": "0.14.1", "opusscript": "^0.0.8", - "play-dl": "^1.8.9", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -31,7 +30,7 @@ "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "typescript": "^4.5.5" }, "engines": { @@ -84,9 +83,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1356,12 +1355,12 @@ } }, "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2889,9 +2888,9 @@ } }, "@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -3678,12 +3677,12 @@ "dev": true }, "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", diff --git a/package.json b/package.json index 767334c3a..382d8f89f 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.0", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "typescript": "^4.5.5" }, "engines": { From 9c3b36bfd4ab83a24ad8bb01d057e3dc3ea4fa15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 02:05:37 +0000 Subject: [PATCH 150/411] chore(deps-dev): bump @typescript-eslint/parser from 5.12.0 to 5.12.1 (#797) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.12.0 to 5.12.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.12.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 278 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 236 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72155ff55..de179d03c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", - "@typescript-eslint/parser": "^5.12.0", + "@typescript-eslint/parser": "^5.12.1", "eslint": "^8.10.0", "typescript": "^4.5.5" }, @@ -660,62 +660,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", + "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "5.12.1", "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz", - "integrity": "sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/typescript-estree": "5.12.0", + "@typescript-eslint/typescript-estree": "5.12.1", "debug": "^4.3.2" }, "engines": { @@ -735,13 +688,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", - "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0" + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -778,9 +731,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", - "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -791,13 +744,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", - "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -841,64 +794,7 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", @@ -915,23 +811,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", - "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -3220,56 +3099,28 @@ "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - } - }, - "@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz", - "integrity": "sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", + "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.12.0", - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/typescript-estree": "5.12.0", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz", - "integrity": "sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0" + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" } }, "@typescript-eslint/type-utils": { @@ -3284,19 +3135,19 @@ } }, "@typescript-eslint/types": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz", - "integrity": "sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz", - "integrity": "sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.0", - "@typescript-eslint/visitor-keys": "5.12.0", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3316,58 +3167,15 @@ "@typescript-eslint/typescript-estree": "5.12.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - } - }, - "@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz", - "integrity": "sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.0", + "@typescript-eslint/types": "5.12.1", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 382d8f89f..2820acb9a 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", - "@typescript-eslint/parser": "^5.12.0", + "@typescript-eslint/parser": "^5.12.1", "eslint": "^8.10.0", "typescript": "^4.5.5" }, From 639d8d8b6e700aad557069904b3f1b4a8f8f8cac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 06:45:03 +0700 Subject: [PATCH 151/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#801) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.12.1 to 5.13.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.13.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 258 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 226 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index de179d03c..afc0161e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.12.1", + "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.12.1", "eslint": "^8.10.0", "typescript": "^4.5.5" @@ -628,14 +628,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", - "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", + "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/type-utils": "5.12.1", - "@typescript-eslint/utils": "5.12.1", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/type-utils": "5.13.0", + "@typescript-eslint/utils": "5.13.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -660,6 +660,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", @@ -705,12 +752,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", - "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", + "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.12.1", + "@typescript-eslint/utils": "5.13.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -771,15 +818,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -794,6 +841,80 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", @@ -3085,20 +3206,48 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", - "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", + "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/type-utils": "5.12.1", - "@typescript-eslint/utils": "5.12.1", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/type-utils": "5.13.0", + "@typescript-eslint/utils": "5.13.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + } + }, + "@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/parser": { @@ -3124,12 +3273,12 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", - "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", + "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.12.1", + "@typescript-eslint/utils": "5.13.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } @@ -3156,17 +3305,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + } + }, + "@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { diff --git a/package.json b/package.json index 2820acb9a..d518c827c 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.12.1", + "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.12.1", "eslint": "^8.10.0", "typescript": "^4.5.5" From 8a97d7c0a59506182f05d39d0151b233f76429ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 23:47:09 +0000 Subject: [PATCH 152/411] chore(deps-dev): bump @typescript-eslint/parser from 5.12.1 to 5.13.0 (#802) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.12.1 to 5.13.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.13.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 278 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 236 deletions(-) diff --git a/package-lock.json b/package-lock.json index afc0161e9..f1edd833a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.12.1", + "@typescript-eslint/parser": "^5.13.0", "eslint": "^8.10.0", "typescript": "^4.5.5" }, @@ -660,62 +660,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", - "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", + "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "5.13.0", "@typescript-eslint/types": "5.13.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", - "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", + "@typescript-eslint/typescript-estree": "5.13.0", "debug": "^4.3.2" }, "engines": { @@ -735,13 +688,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -778,9 +731,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -791,13 +744,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -841,64 +794,7 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", - "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", @@ -915,23 +811,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -3220,56 +3099,28 @@ "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" - } - }, - "@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", - "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.13.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", - "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", + "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" } }, "@typescript-eslint/type-utils": { @@ -3284,19 +3135,19 @@ } }, "@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3316,58 +3167,15 @@ "@typescript-eslint/typescript-estree": "5.13.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" - } - }, - "@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", - "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", - "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.13.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", "dev": true, "requires": { - "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/types": "5.13.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index d518c827c..c1a087f7b 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.12.1", + "@typescript-eslint/parser": "^5.13.0", "eslint": "^8.10.0", "typescript": "^4.5.5" }, From c72ae5357c9d374ef21e338f44675f5b12922024 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 07:35:26 +0700 Subject: [PATCH 153/411] ci(deps): bump actions/checkout from 2.4.0 to 3 (#803) Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bd8424755..2117ad518 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: node-version: [">=16.6.0 <17.x"] steps: - name: Checkout repository - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.0.0 @@ -38,7 +38,7 @@ jobs: node-version: [">=16.6.0 <17.x"] steps: - name: Checkout repository - uses: actions/checkout@v2.4.0 + uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.0.0 From 6efd044200b758e08f2c085c4f618d9305e6e1c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 07:47:03 +0700 Subject: [PATCH 154/411] chore(deps): bump youtube-dl-exec from 2.0.6 to 2.0.7 (#805) Bumps [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/microlinkhq/youtube-dl-exec/releases) - [Changelog](https://github.com/microlinkhq/youtube-dl-exec/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/youtube-dl-exec/compare/v2.0.6...v2.0.7) --- updated-dependencies: - dependency-name: youtube-dl-exec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f1edd833a..5eeb7dc9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", + "youtube-dl-exec": "^2.0.7", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -38,7 +39,7 @@ }, "optionalDependencies": { "play-dl": "^1.8.9", - "youtube-dl-exec": "^2.0.6" + "youtube-dl-exec": "^2.0.7" } }, "node_modules/@discordjs/builders": { @@ -2705,9 +2706,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.6.tgz", - "integrity": "sha512-oVYruSPHNidZ1BzthyA8kX40oIrJEJdc7zpFlVcOlm8Pvk9HzLQcDJCAPOJbh3yKQKpXgXFHCUDlEFJ8py7Ueg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.7.tgz", + "integrity": "sha512-L9PQf6K1ytHU5IkSdEelkVXbhBOJShc7tOqf7tpsHjdC2thjdMMmCqKbuy4xmAHlHa7vgBlsm+6JoaToMTIjJg==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -4534,9 +4535,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.6.tgz", - "integrity": "sha512-oVYruSPHNidZ1BzthyA8kX40oIrJEJdc7zpFlVcOlm8Pvk9HzLQcDJCAPOJbh3yKQKpXgXFHCUDlEFJ8py7Ueg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.7.tgz", + "integrity": "sha512-L9PQf6K1ytHU5IkSdEelkVXbhBOJShc7tOqf7tpsHjdC2thjdMMmCqKbuy4xmAHlHa7vgBlsm+6JoaToMTIjJg==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index c1a087f7b..6df8c076b 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.8.9", - "youtube-dl-exec": "^2.0.6" + "youtube-dl-exec": "^2.0.7" } } From c7a498589a51c321666580ebc062e39a63cf9bbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 00:49:18 +0000 Subject: [PATCH 155/411] chore(deps): bump @swc/core from 1.2.146 to 1.2.147 (#806) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.146 to 1.2.147. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.146...v1.2.147) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 265 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 115 insertions(+), 152 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5eeb7dc9f..b0646b58e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.146", + "@swc/core": "^1.2.147", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -22,7 +22,6 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.7", "youtubei": "^0.0.1-rc.28" }, "devDependencies": { @@ -278,9 +277,12 @@ } }, "node_modules/@swc/core": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.146.tgz", - "integrity": "sha512-axIapm2mReT45ILuYxwe0xEWqtITj3dyfDIGIgdC8Tx7ss5vpXvr22UbDSUTRIS+nypFy6hViIR1RhXE1hXnig==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.147.tgz", + "integrity": "sha512-FXHgp2/vbiHjOCHLxaxAblLTAw8/sCe2wEfE/BmSAdHapm/ynEAWt6+5tN0t6rVs835lCJswBK1YVsRQvnNxYA==", + "bin": { + "swcx": "run_swcx.js" + }, "engines": { "node": ">=10" }, @@ -289,25 +291,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.146", - "@swc/core-android-arm64": "1.2.146", - "@swc/core-darwin-arm64": "1.2.146", - "@swc/core-darwin-x64": "1.2.146", - "@swc/core-freebsd-x64": "1.2.146", - "@swc/core-linux-arm-gnueabihf": "1.2.146", - "@swc/core-linux-arm64-gnu": "1.2.146", - "@swc/core-linux-arm64-musl": "1.2.146", - "@swc/core-linux-x64-gnu": "1.2.146", - "@swc/core-linux-x64-musl": "1.2.146", - "@swc/core-win32-arm64-msvc": "1.2.146", - "@swc/core-win32-ia32-msvc": "1.2.146", - "@swc/core-win32-x64-msvc": "1.2.146" + "@swc/core-android-arm-eabi": "1.2.147", + "@swc/core-android-arm64": "1.2.147", + "@swc/core-darwin-arm64": "1.2.147", + "@swc/core-darwin-x64": "1.2.147", + "@swc/core-freebsd-x64": "1.2.147", + "@swc/core-linux-arm-gnueabihf": "1.2.147", + "@swc/core-linux-arm64-gnu": "1.2.147", + "@swc/core-linux-arm64-musl": "1.2.147", + "@swc/core-linux-x64-gnu": "1.2.147", + "@swc/core-linux-x64-musl": "1.2.147", + "@swc/core-win32-arm64-msvc": "1.2.147", + "@swc/core-win32-ia32-msvc": "1.2.147", + "@swc/core-win32-x64-msvc": "1.2.147" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.146.tgz", - "integrity": "sha512-vRlxDksEDdprqfj9VACYUGyCJr/tYLetNjhjel46qmKoXU5uAib1WLWWgMB1Ur+oh8eCSTN8cnOblOziqfC1Rw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.147.tgz", + "integrity": "sha512-WOCTic99tAlki8WO6FhaP+5uZQyTMoz50utb4+eqvKX3QKoNcVbjXrPr9m3dj+OP2LHXGebo8F4lT5gAhjsIAw==", "cpu": [ "arm" ], @@ -315,17 +317,14 @@ "os": [ "android" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.146.tgz", - "integrity": "sha512-YoJygRvjZ6IXvWstYZHGThEj1aWshzoMohX0i6WH5NIZhkzeF0UhRu/IZoS9VcQsd0WtDEMQe0G0wcrd/FToNg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.147.tgz", + "integrity": "sha512-cqfOZKR31k4HCy2qDUnpE1fZ+d9xqEicxxtpeAik580DBXZ0GAgFqwtjY5FLhTPhiXZBZnoZ61NtwL2jxfDj2w==", "cpu": [ "arm64" ], @@ -333,17 +332,14 @@ "os": [ "android" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.146.tgz", - "integrity": "sha512-ftAyhczQHSUQo1Mox/VyZ3YL9KtG0LgOFUUUuLD3Pb9zKQB20Jc/Dfnh/bFktemVG8XiH0rOyR9yEI2EANHuEA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.147.tgz", + "integrity": "sha512-k4vWk67QVARnk0NaxYAWC01Aa2oYLQegqOGFllnasZcu/T/mq8H6HWHXH9efkyGNQ5S1hkgunLC2ZMcD80Tsng==", "cpu": [ "arm64" ], @@ -351,17 +347,14 @@ "os": [ "darwin" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.146.tgz", - "integrity": "sha512-mYRN/WTS7TfYt3jqJYghcrpAW7zkpjdeEx9Rot8rmUEmk97luh9Bcwqafzjb9ndoG1mAiaTQcqvs/QqT2efS5Q==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.147.tgz", + "integrity": "sha512-Q7mRrgFbH7JXFAvQYqZlG0HIPy5jwAp/VGuPF9P9VPu+gZl+4oSBBCaU2cQW9FdNpdQhPJVBjq3T1Z0qK2x2ww==", "cpu": [ "x64" ], @@ -369,17 +362,14 @@ "os": [ "darwin" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.146.tgz", - "integrity": "sha512-eYU5g7p/dY98+hvg3VJtwiX+btRWnq+WO4y4M+X1nguqghvuTv6jtVLeHDNr8FEhc+FMSJPYKO321ZVa0xCKXw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.147.tgz", + "integrity": "sha512-DrCOvyRWNrpwOEqEOALwsiDJcG9Ll+EuwscefJCUPWI1nXMX4JyPVBkKG55LVrerBq/+Gqqpc3pOSjBj5BZJhg==", "cpu": [ "x64" ], @@ -387,17 +377,14 @@ "os": [ "freebsd" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.146.tgz", - "integrity": "sha512-ahKwlP9b41HUlwY+0eRJjgG4yJZN+uT16iBB2X7VedipmRO0aOOaP8xLReDjn4Z13DL14iAPC6Jnxiaw5rl8LQ==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.147.tgz", + "integrity": "sha512-LVM/el40J+iHswbztd/GOcNuUDNwvu0vgAf9K8G9e7zNrMu3Mb0LIF2Ee9/LYk/iRWe+W1x0AsyBWCR0DNcyeA==", "cpu": [ "arm" ], @@ -405,17 +392,14 @@ "os": [ "linux" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.146.tgz", - "integrity": "sha512-S/0EJI8BWBQtsyIuYwVg+Gq03NlGl/xWOJgwLJss5+DawvxK8YZFteczw7M/bN/E5D2TqZRyybLM6baQozgDAg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.147.tgz", + "integrity": "sha512-rPiDrgbjx7idgQ64aJ6TE58uahvGE2oGTA7il2RmtD5pxFK0E3QN569eJvmzBagrlU848ntB0LjazAGw3rqP9g==", "cpu": [ "arm64" ], @@ -423,17 +407,14 @@ "os": [ "linux" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.146.tgz", - "integrity": "sha512-tOHcanuqgniMwUWMwjA+zr/hZyVn931l8DiIi3Mthyplp/PDY68PVAUJ8miJd4C5XDPcYfPOe5kRyXsFrdZzhw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.147.tgz", + "integrity": "sha512-TilrlBVkRyXrHNlTJ2WPTped+eC9R0RGu6sxzkNzcMY1DDXYDUy+Z+clotFU7t286hQy46gEdKTofsNIRzwt0g==", "cpu": [ "arm64" ], @@ -441,17 +422,14 @@ "os": [ "linux" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.146.tgz", - "integrity": "sha512-w9jHnFe1XLYfQYWkaJwKgmtb/HKsgyFy0sCQpVjgDq/+ds8PPyACthDINpiEMsAOFN+IfE59HDn4A2gN3qyVgg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.147.tgz", + "integrity": "sha512-Trp8xOc1jSlSryEqOqNhzffZxSLIpSgTCKQZTrpyrelP0egA0hvxZun6Nb7sF97G3GI0MKg6SPP0FZo6gvI3kw==", "cpu": [ "x64" ], @@ -459,17 +437,14 @@ "os": [ "linux" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.146.tgz", - "integrity": "sha512-iwKiHvV8p48/82+eJRCy/WcnAZBOFr2ZJ5VLtRuV+sz0mkWjoimnLZ8SEshoru9PVoKF7hfG7AMqKaVOUjSJFg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.147.tgz", + "integrity": "sha512-m1Zz8DIz7somKDoJFjxrCemTlF3OtfNbRH/o9l81CaoRXTT26FmVoIP0k9tVwA6K/qybXey3XH3TX75hjwH+pw==", "cpu": [ "x64" ], @@ -477,17 +452,14 @@ "os": [ "linux" ], - "bin": { - "swcx": "swc" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.146.tgz", - "integrity": "sha512-n21riIEGTPim19Y0mrBIDVZfOrYdfd2W8QEgbiG/f+kcOlWckvyh9ZKexd6D8QpHe73C4lOX1RrmH3DgnPGhqA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.147.tgz", + "integrity": "sha512-8e2lMEBWsv2+dY0m/9hIOJjc6wf6vl++E4D7SVNYYjZQ+m/npYO5/PSrbnGLONz4Zsz94i/nJIECjaNHIJCiNw==", "cpu": [ "arm64" ], @@ -495,17 +467,14 @@ "os": [ "win32" ], - "bin": { - "swcx": "swc.exe" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.146.tgz", - "integrity": "sha512-5b99VzxvTqTQCZDmpKrGevUc9SK0QBiGZG4Oeh5CnSJyx8SZU0A3R7rbMoSR5/raP9OA/0ZvlXefUDXIsKNadA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.147.tgz", + "integrity": "sha512-YzFhcBhFruZpFVbBXr2K5rglcVe9Lx/BQ9HDes3+NkQAB8K4EeunPtqBN67YgkdDqKTGORqkMWRtWMSTECJZqQ==", "cpu": [ "ia32" ], @@ -513,17 +482,14 @@ "os": [ "win32" ], - "bin": { - "swcx": "swc.exe" - }, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.146.tgz", - "integrity": "sha512-P45vAh0hR9dISIceSv6MkypjT0WduLWB4U8LPoCneeAw7mA1U7liS0Uu1PeiafxQVMWg8SNyIJFDcSg/haLJgg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.147.tgz", + "integrity": "sha512-csRYCQVL0jJtDtJX3K7u0yqFkyq/APQGHPaPMxcTMGQllEY4yX93RyAHDGVVp1PdjQ+GSWnp2i+jcF3DnjYNIQ==", "cpu": [ "x64" ], @@ -531,9 +497,6 @@ "os": [ "win32" ], - "bin": { - "swcx": "swc.exe" - }, "engines": { "node": ">=10" } @@ -2902,101 +2865,101 @@ } }, "@swc/core": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.146.tgz", - "integrity": "sha512-axIapm2mReT45ILuYxwe0xEWqtITj3dyfDIGIgdC8Tx7ss5vpXvr22UbDSUTRIS+nypFy6hViIR1RhXE1hXnig==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.147.tgz", + "integrity": "sha512-FXHgp2/vbiHjOCHLxaxAblLTAw8/sCe2wEfE/BmSAdHapm/ynEAWt6+5tN0t6rVs835lCJswBK1YVsRQvnNxYA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.146", - "@swc/core-android-arm64": "1.2.146", - "@swc/core-darwin-arm64": "1.2.146", - "@swc/core-darwin-x64": "1.2.146", - "@swc/core-freebsd-x64": "1.2.146", - "@swc/core-linux-arm-gnueabihf": "1.2.146", - "@swc/core-linux-arm64-gnu": "1.2.146", - "@swc/core-linux-arm64-musl": "1.2.146", - "@swc/core-linux-x64-gnu": "1.2.146", - "@swc/core-linux-x64-musl": "1.2.146", - "@swc/core-win32-arm64-msvc": "1.2.146", - "@swc/core-win32-ia32-msvc": "1.2.146", - "@swc/core-win32-x64-msvc": "1.2.146" + "@swc/core-android-arm-eabi": "1.2.147", + "@swc/core-android-arm64": "1.2.147", + "@swc/core-darwin-arm64": "1.2.147", + "@swc/core-darwin-x64": "1.2.147", + "@swc/core-freebsd-x64": "1.2.147", + "@swc/core-linux-arm-gnueabihf": "1.2.147", + "@swc/core-linux-arm64-gnu": "1.2.147", + "@swc/core-linux-arm64-musl": "1.2.147", + "@swc/core-linux-x64-gnu": "1.2.147", + "@swc/core-linux-x64-musl": "1.2.147", + "@swc/core-win32-arm64-msvc": "1.2.147", + "@swc/core-win32-ia32-msvc": "1.2.147", + "@swc/core-win32-x64-msvc": "1.2.147" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.146.tgz", - "integrity": "sha512-vRlxDksEDdprqfj9VACYUGyCJr/tYLetNjhjel46qmKoXU5uAib1WLWWgMB1Ur+oh8eCSTN8cnOblOziqfC1Rw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.147.tgz", + "integrity": "sha512-WOCTic99tAlki8WO6FhaP+5uZQyTMoz50utb4+eqvKX3QKoNcVbjXrPr9m3dj+OP2LHXGebo8F4lT5gAhjsIAw==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.146.tgz", - "integrity": "sha512-YoJygRvjZ6IXvWstYZHGThEj1aWshzoMohX0i6WH5NIZhkzeF0UhRu/IZoS9VcQsd0WtDEMQe0G0wcrd/FToNg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.147.tgz", + "integrity": "sha512-cqfOZKR31k4HCy2qDUnpE1fZ+d9xqEicxxtpeAik580DBXZ0GAgFqwtjY5FLhTPhiXZBZnoZ61NtwL2jxfDj2w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.146.tgz", - "integrity": "sha512-ftAyhczQHSUQo1Mox/VyZ3YL9KtG0LgOFUUUuLD3Pb9zKQB20Jc/Dfnh/bFktemVG8XiH0rOyR9yEI2EANHuEA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.147.tgz", + "integrity": "sha512-k4vWk67QVARnk0NaxYAWC01Aa2oYLQegqOGFllnasZcu/T/mq8H6HWHXH9efkyGNQ5S1hkgunLC2ZMcD80Tsng==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.146.tgz", - "integrity": "sha512-mYRN/WTS7TfYt3jqJYghcrpAW7zkpjdeEx9Rot8rmUEmk97luh9Bcwqafzjb9ndoG1mAiaTQcqvs/QqT2efS5Q==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.147.tgz", + "integrity": "sha512-Q7mRrgFbH7JXFAvQYqZlG0HIPy5jwAp/VGuPF9P9VPu+gZl+4oSBBCaU2cQW9FdNpdQhPJVBjq3T1Z0qK2x2ww==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.146.tgz", - "integrity": "sha512-eYU5g7p/dY98+hvg3VJtwiX+btRWnq+WO4y4M+X1nguqghvuTv6jtVLeHDNr8FEhc+FMSJPYKO321ZVa0xCKXw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.147.tgz", + "integrity": "sha512-DrCOvyRWNrpwOEqEOALwsiDJcG9Ll+EuwscefJCUPWI1nXMX4JyPVBkKG55LVrerBq/+Gqqpc3pOSjBj5BZJhg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.146.tgz", - "integrity": "sha512-ahKwlP9b41HUlwY+0eRJjgG4yJZN+uT16iBB2X7VedipmRO0aOOaP8xLReDjn4Z13DL14iAPC6Jnxiaw5rl8LQ==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.147.tgz", + "integrity": "sha512-LVM/el40J+iHswbztd/GOcNuUDNwvu0vgAf9K8G9e7zNrMu3Mb0LIF2Ee9/LYk/iRWe+W1x0AsyBWCR0DNcyeA==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.146.tgz", - "integrity": "sha512-S/0EJI8BWBQtsyIuYwVg+Gq03NlGl/xWOJgwLJss5+DawvxK8YZFteczw7M/bN/E5D2TqZRyybLM6baQozgDAg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.147.tgz", + "integrity": "sha512-rPiDrgbjx7idgQ64aJ6TE58uahvGE2oGTA7il2RmtD5pxFK0E3QN569eJvmzBagrlU848ntB0LjazAGw3rqP9g==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.146.tgz", - "integrity": "sha512-tOHcanuqgniMwUWMwjA+zr/hZyVn931l8DiIi3Mthyplp/PDY68PVAUJ8miJd4C5XDPcYfPOe5kRyXsFrdZzhw==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.147.tgz", + "integrity": "sha512-TilrlBVkRyXrHNlTJ2WPTped+eC9R0RGu6sxzkNzcMY1DDXYDUy+Z+clotFU7t286hQy46gEdKTofsNIRzwt0g==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.146.tgz", - "integrity": "sha512-w9jHnFe1XLYfQYWkaJwKgmtb/HKsgyFy0sCQpVjgDq/+ds8PPyACthDINpiEMsAOFN+IfE59HDn4A2gN3qyVgg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.147.tgz", + "integrity": "sha512-Trp8xOc1jSlSryEqOqNhzffZxSLIpSgTCKQZTrpyrelP0egA0hvxZun6Nb7sF97G3GI0MKg6SPP0FZo6gvI3kw==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.146.tgz", - "integrity": "sha512-iwKiHvV8p48/82+eJRCy/WcnAZBOFr2ZJ5VLtRuV+sz0mkWjoimnLZ8SEshoru9PVoKF7hfG7AMqKaVOUjSJFg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.147.tgz", + "integrity": "sha512-m1Zz8DIz7somKDoJFjxrCemTlF3OtfNbRH/o9l81CaoRXTT26FmVoIP0k9tVwA6K/qybXey3XH3TX75hjwH+pw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.146.tgz", - "integrity": "sha512-n21riIEGTPim19Y0mrBIDVZfOrYdfd2W8QEgbiG/f+kcOlWckvyh9ZKexd6D8QpHe73C4lOX1RrmH3DgnPGhqA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.147.tgz", + "integrity": "sha512-8e2lMEBWsv2+dY0m/9hIOJjc6wf6vl++E4D7SVNYYjZQ+m/npYO5/PSrbnGLONz4Zsz94i/nJIECjaNHIJCiNw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.146.tgz", - "integrity": "sha512-5b99VzxvTqTQCZDmpKrGevUc9SK0QBiGZG4Oeh5CnSJyx8SZU0A3R7rbMoSR5/raP9OA/0ZvlXefUDXIsKNadA==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.147.tgz", + "integrity": "sha512-YzFhcBhFruZpFVbBXr2K5rglcVe9Lx/BQ9HDes3+NkQAB8K4EeunPtqBN67YgkdDqKTGORqkMWRtWMSTECJZqQ==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.146", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.146.tgz", - "integrity": "sha512-P45vAh0hR9dISIceSv6MkypjT0WduLWB4U8LPoCneeAw7mA1U7liS0Uu1PeiafxQVMWg8SNyIJFDcSg/haLJgg==", + "version": "1.2.147", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.147.tgz", + "integrity": "sha512-csRYCQVL0jJtDtJX3K7u0yqFkyq/APQGHPaPMxcTMGQllEY4yX93RyAHDGVVp1PdjQ+GSWnp2i+jcF3DnjYNIQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 6df8c076b..212a3730f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.146", + "@swc/core": "^1.2.147", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 5a489d250b7186ad31b81195132758674815b43b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 5 Mar 2022 10:19:15 +0900 Subject: [PATCH 156/411] refactor(CommandManager): create a reusable method to create interaction-based cmds --- src/typings/index.d.ts | 7 +- src/utils/structures/CommandManager.ts | 93 ++++++++++++-------------- 2 files changed, 49 insertions(+), 51 deletions(-) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index c5d029e75..5f6244536 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -2,7 +2,7 @@ import { CommandContext } from "../structures/CommandContext"; import { ServerQueue } from "../structures/ServerQueue"; import { Rawon } from "../structures/Rawon"; -import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed } from "discord.js"; +import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed, Guild } from "discord.js"; export type MessageInteractionAction = "editReply" | "followUp" | "reply"; @@ -196,3 +196,8 @@ export type MethodDecorator<Target, Result> = ( export type ClassDecorator<Target extends Constructor, Result = unknown> = (target: Target) => Result; export type Promisable<Output> = Output | Promise<Output>; export type FunctionType<Args extends any[] = any[], Result = any> = (...args: Args) => Result; + +export interface RegisterCmdOptions { + onRegistered: (guild: Guild) => Promisable<any>; + onError: (guild: Guild | null, error: Error) => Promisable<any>; +} diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index ea69d3912..f6d2ba0a1 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -1,10 +1,10 @@ import { pathStringToURLString } from "../functions/pathStringToURLString"; import { CommandContext } from "../../structures/CommandContext"; -import { CategoryMeta, CommandComponent } from "../../typings"; +import { CategoryMeta, CommandComponent, RegisterCmdOptions } from "../../typings"; import { createEmbed } from "../functions/createEmbed"; import { Rawon } from "../../structures/Rawon"; import i18n from "../../config"; -import { ApplicationCommandData, Collection, Message, Snowflake, TextChannel } from "discord.js"; +import { ApplicationCommandData, Collection, Guild, Message, Snowflake, TextChannel } from "discord.js"; import { promises as fs } from "fs"; import { resolve } from "path"; @@ -50,44 +50,24 @@ export class CommandManager extends Collection<string, CommandComponent> { this.set(command.meta.name, command); if (command.meta.contextChat) { - if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { - const g = await this.client.guilds.fetch({ guild }); - - await g.commands.create({ - name: command.meta.contextChat, - type: "MESSAGE" - }) - .catch(() => this.client.logger.info(`Missing access on ${guild} [MESSAGE_CTX]`)); - this.client.logger.info(`Registered ${command.meta.name} to message context for ${guild}`); - } - } else { - await this.client.application!.commands.create({ - name: command.meta.contextChat, - type: "MESSAGE" - }); - this.client.logger.info(`Registered ${command.meta.name} to message context for global.`); - } + await this.registerCmd({ + name: command.meta.contextChat, + type: "MESSAGE" + }, { + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to message context for ${g?.id ?? "???"}. Reason: ${err.message}`), + onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to message context for ${g.id}`) + }); + if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to message context for global.`); } if (command.meta.contextUser) { - if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { - const g = await this.client.guilds.fetch({ guild }); - - await g.commands.create({ - name: command.meta.contextUser, - type: "USER" - }) - .catch(() => this.client.logger.info(`Missing access on ${guild} [USER_CTX]`)); - this.client.logger.info(`Registered ${command.meta.name} to user context for ${guild}`); - } - } else { - await this.client.application!.commands.create({ - name: command.meta.contextUser, - type: "USER" - }); - this.client.logger.info(`Registered ${command.meta.name} to user context for global.`); - } + await this.registerCmd({ + name: command.meta.contextUser, + type: "USER" + }, { + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to user context for ${g?.id ?? "???"}. Reason: ${err.message}`), + onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to user context for ${g.id}`) + }); + if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to user context for global.`); } if (!allCmd.has(command.meta.name) && command.meta.slash && this.client.config.enableSlashCommand) { if (!command.meta.slash.name) { @@ -101,18 +81,11 @@ export class CommandManager extends Collection<string, CommandComponent> { }); } - if (this.client.config.isDev) { - for (const guild of this.client.config.devGuild) { - const g = await this.client.guilds.fetch({ guild }); - - await g.commands.create(command.meta.slash as ApplicationCommandData) - .catch(() => this.client.logger.info(`Missing access on ${guild} [SLASH_COMMAND]`)); - this.client.logger.info(`Registered ${command.meta.name} to slash command for ${guild}`); - } - } else { - await this.client.application!.commands.create(command.meta.slash as ApplicationCommandData); - this.client.logger.info(`Registered ${command.meta.name} to slash command for global.`); - } + await this.registerCmd(command.meta.slash as ApplicationCommandData, { + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to slash command for ${g?.id ?? "???"}. Reason: ${err.message}`), + onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to slash command for ${g.id}`) + }); + if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to slash command for global.`); } this.client.logger.info(`Command ${command.meta.name} from ${category} category is now loaded.`); if (command.meta.disable) disabledCount++; @@ -186,4 +159,24 @@ export class CommandManager extends Collection<string, CommandComponent> { ); } } + + private async registerCmd(data: ApplicationCommandData, options?: RegisterCmdOptions): Promise<void> { + if (options && this.client.config.isDev) { + for (const id of this.client.config.devGuild) { + let guild: Guild | null = null; + + try { + guild = await this.client.guilds.fetch(id).catch(() => null); + if (!guild) throw new Error("Invalid Guild"); + + await guild.commands.create(data); + void options.onRegistered(guild); + } catch (err) { + void options.onError(guild, err as Error); + } + } + } else { + await this.client.application!.commands.create(data); + } + } } From d967f088669aedf145ed3b471d5681aa25a9fcc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 07:33:06 +0700 Subject: [PATCH 157/411] chore(deps): bump i18n from 0.14.1 to 0.14.2 (#807) Bumps [i18n](https://github.com/mashpie/i18n-node) from 0.14.1 to 0.14.2. - [Release notes](https://github.com/mashpie/i18n-node/releases) - [Changelog](https://github.com/mashpie/i18n-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/mashpie/i18n-node/compare/0.14.1...0.14.2) --- updated-dependencies: - dependency-name: i18n dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0646b58e..ff22a8f92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "discord.js": "^13.6.0", "dotenv": "^16.0.0", "got": "^12.0.1", - "i18n": "0.14.1", + "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", @@ -1711,9 +1711,9 @@ } }, "node_modules/i18n": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.1.tgz", - "integrity": "sha512-Mu7JS17Fv52jwBJ6q7ssIBlYi+ARkeBTehTV/brlVH0x5u6YzsK8l9fANE8CqUjVBoSEdVa+2vYPB0RF/QF58g==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", + "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", "dependencies": { "@messageformat/core": "^3.0.0", "debug": "^4.3.3", @@ -3835,9 +3835,9 @@ "optional": true }, "i18n": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.1.tgz", - "integrity": "sha512-Mu7JS17Fv52jwBJ6q7ssIBlYi+ARkeBTehTV/brlVH0x5u6YzsK8l9fANE8CqUjVBoSEdVa+2vYPB0RF/QF58g==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", + "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", "requires": { "@messageformat/core": "^3.0.0", "debug": "^4.3.3", diff --git a/package.json b/package.json index 212a3730f..89f10f961 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "discord.js": "^13.6.0", "dotenv": "^16.0.0", "got": "^12.0.1", - "i18n": "0.14.1", + "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", From 8e84343b2182f564946713c728e2a3aecba87633 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:36:05 +0000 Subject: [PATCH 158/411] chore(deps): bump youtubei from 0.0.1-rc.28 to 0.0.1-rc.29 (#808) Bumps [youtubei](https://github.com/SuspiciousLookingOwl/youtubei) from 0.0.1-rc.28 to 0.0.1-rc.29. - [Release notes](https://github.com/SuspiciousLookingOwl/youtubei/releases) - [Changelog](https://github.com/SuspiciousLookingOwl/youtubei/blob/main/CHANGELOG.md) - [Commits](https://github.com/SuspiciousLookingOwl/youtubei/commits) --- updated-dependencies: - dependency-name: youtubei dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff22a8f92..679c4a88f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.28" + "youtubei": "^0.0.1-rc.29" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", @@ -2686,9 +2686,9 @@ } }, "node_modules/youtubei": { - "version": "0.0.1-rc.28", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.28.tgz", - "integrity": "sha512-oWR1hK0C/TN7i34MrMAT/MGfTjP52LYuP13VD2rhxTO6Ia+jRw+bI+/gn65h6qxSxg7QC8LleSiNGWwEWkw4FA==" + "version": "0.0.1-rc.29", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.29.tgz", + "integrity": "sha512-4y9GiPHK5oA37BH7Mlkemi5V8CJbkPd5ZJWx3P9r25GHvSHHkmDrk3eg/IGb+8yOnYyiFOVC64GoVwziaDOInA==" }, "node_modules/zod": { "version": "3.11.6", @@ -4511,9 +4511,9 @@ } }, "youtubei": { - "version": "0.0.1-rc.28", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.28.tgz", - "integrity": "sha512-oWR1hK0C/TN7i34MrMAT/MGfTjP52LYuP13VD2rhxTO6Ia+jRw+bI+/gn65h6qxSxg7QC8LleSiNGWwEWkw4FA==" + "version": "0.0.1-rc.29", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.29.tgz", + "integrity": "sha512-4y9GiPHK5oA37BH7Mlkemi5V8CJbkPd5ZJWx3P9r25GHvSHHkmDrk3eg/IGb+8yOnYyiFOVC64GoVwziaDOInA==" }, "zod": { "version": "3.11.6", diff --git a/package.json b/package.json index 89f10f961..171a42297 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.28" + "youtubei": "^0.0.1-rc.29" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", From 2be1c5b37f0133096edcdde514e1b7b22fb1d71a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:47:43 +0000 Subject: [PATCH 159/411] chore(deps): bump play-dl from 1.8.9 to 1.9.0 (#815) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.8.9 to 1.9.0. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.8.9...1.9.0) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 679c4a88f..394e7cb2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "got": "^12.0.1", "i18n": "0.14.2", "opusscript": "^0.0.8", + "play-dl": "^1.9.0", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,7 +38,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.9", + "play-dl": "^1.9.0", "youtube-dl-exec": "^2.0.7" } }, @@ -2187,9 +2188,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.9.tgz", - "integrity": "sha512-mIdge+xH7x9ji2+gVFPZl34K+iSvb0sx+N7yYCIGX/OEsGoH84uHj8tCR5Jvy+VETPjY165cjAZnfzHmFPN9DQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.0.tgz", + "integrity": "sha512-2OHScAZXmIXM6M53t+QxjehSkQZsYB9NxlaaqI5FI2Zekn2Pvp61d+SjyyCVDBjtw611fcoRp+NFXg+kgruwCA==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4177,9 +4178,9 @@ "optional": true }, "play-dl": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.8.9.tgz", - "integrity": "sha512-mIdge+xH7x9ji2+gVFPZl34K+iSvb0sx+N7yYCIGX/OEsGoH84uHj8tCR5Jvy+VETPjY165cjAZnfzHmFPN9DQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.0.tgz", + "integrity": "sha512-2OHScAZXmIXM6M53t+QxjehSkQZsYB9NxlaaqI5FI2Zekn2Pvp61d+SjyyCVDBjtw611fcoRp+NFXg+kgruwCA==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index 171a42297..becc20a02 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.8.9", + "play-dl": "^1.9.0", "youtube-dl-exec": "^2.0.7" } } From 278ce0017f9c20dca20ebc91281abba9596a74b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:50:14 +0000 Subject: [PATCH 160/411] chore(deps): bump @swc/core from 1.2.147 to 1.2.152 (#814) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.147 to 1.2.152. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.147...v1.2.152) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 223 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 394e7cb2a..b30caee34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,14 +11,13 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.147", + "@swc/core": "^1.2.152", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", "got": "^12.0.1", "i18n": "0.14.2", "opusscript": "^0.0.8", - "play-dl": "^1.9.0", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -278,9 +277,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.147.tgz", - "integrity": "sha512-FXHgp2/vbiHjOCHLxaxAblLTAw8/sCe2wEfE/BmSAdHapm/ynEAWt6+5tN0t6rVs835lCJswBK1YVsRQvnNxYA==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.152.tgz", + "integrity": "sha512-ZklzoNsvEUWqc73BdYvM+F97N+ghwa01Fd49Hpt6abqYz8ZCvXkY2Hloe0HuppCX4BKCaMDfCgDtWMBqCacSKw==", "bin": { "swcx": "run_swcx.js" }, @@ -292,25 +291,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.147", - "@swc/core-android-arm64": "1.2.147", - "@swc/core-darwin-arm64": "1.2.147", - "@swc/core-darwin-x64": "1.2.147", - "@swc/core-freebsd-x64": "1.2.147", - "@swc/core-linux-arm-gnueabihf": "1.2.147", - "@swc/core-linux-arm64-gnu": "1.2.147", - "@swc/core-linux-arm64-musl": "1.2.147", - "@swc/core-linux-x64-gnu": "1.2.147", - "@swc/core-linux-x64-musl": "1.2.147", - "@swc/core-win32-arm64-msvc": "1.2.147", - "@swc/core-win32-ia32-msvc": "1.2.147", - "@swc/core-win32-x64-msvc": "1.2.147" + "@swc/core-android-arm-eabi": "1.2.152", + "@swc/core-android-arm64": "1.2.152", + "@swc/core-darwin-arm64": "1.2.152", + "@swc/core-darwin-x64": "1.2.152", + "@swc/core-freebsd-x64": "1.2.152", + "@swc/core-linux-arm-gnueabihf": "1.2.152", + "@swc/core-linux-arm64-gnu": "1.2.152", + "@swc/core-linux-arm64-musl": "1.2.152", + "@swc/core-linux-x64-gnu": "1.2.152", + "@swc/core-linux-x64-musl": "1.2.152", + "@swc/core-win32-arm64-msvc": "1.2.152", + "@swc/core-win32-ia32-msvc": "1.2.152", + "@swc/core-win32-x64-msvc": "1.2.152" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.147.tgz", - "integrity": "sha512-WOCTic99tAlki8WO6FhaP+5uZQyTMoz50utb4+eqvKX3QKoNcVbjXrPr9m3dj+OP2LHXGebo8F4lT5gAhjsIAw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.152.tgz", + "integrity": "sha512-Vl4mHTL5mEDqPiJMLAqwsTvsl8aREudjUmEfjmM7C+ZcD0W+lNpzpZInbWIaVblNLj04wXoKR2JOpxUC43yy1Q==", "cpu": [ "arm" ], @@ -323,9 +322,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.147.tgz", - "integrity": "sha512-cqfOZKR31k4HCy2qDUnpE1fZ+d9xqEicxxtpeAik580DBXZ0GAgFqwtjY5FLhTPhiXZBZnoZ61NtwL2jxfDj2w==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.152.tgz", + "integrity": "sha512-+Xwe882tK1cyVViZhSNYSQmpLtuYIVGw2AvKsrP+VjWf9giiL4Y0Faj6w8KoC24THSxgSX2OTMzw71C+yduj2g==", "cpu": [ "arm64" ], @@ -338,9 +337,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.147.tgz", - "integrity": "sha512-k4vWk67QVARnk0NaxYAWC01Aa2oYLQegqOGFllnasZcu/T/mq8H6HWHXH9efkyGNQ5S1hkgunLC2ZMcD80Tsng==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.152.tgz", + "integrity": "sha512-UGhzOz8KC3uT1Uzjttv9Gxd4bAXIgyjJ338eI0hxmwXDauoiPYK6PylhmQr91ExNmDnXJH4WkP9UME3fk5JgVg==", "cpu": [ "arm64" ], @@ -353,9 +352,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.147.tgz", - "integrity": "sha512-Q7mRrgFbH7JXFAvQYqZlG0HIPy5jwAp/VGuPF9P9VPu+gZl+4oSBBCaU2cQW9FdNpdQhPJVBjq3T1Z0qK2x2ww==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.152.tgz", + "integrity": "sha512-2B18L/mD2I5r7OJJjZzikXrzj9+9+izRgSbg9Unwo33eUwtlKrk4gT/iV5FaNjHDeWpJ8+SPquFyic8Plq6rGQ==", "cpu": [ "x64" ], @@ -368,9 +367,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.147.tgz", - "integrity": "sha512-DrCOvyRWNrpwOEqEOALwsiDJcG9Ll+EuwscefJCUPWI1nXMX4JyPVBkKG55LVrerBq/+Gqqpc3pOSjBj5BZJhg==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.152.tgz", + "integrity": "sha512-fe/qqSX14uKFWYN/72BmjSl3DEgK1M5+bJnJpbHFoPePEf3Jv5Vwwo/dq6YxGf4ITo5O8++/9VAkq346vhAHAg==", "cpu": [ "x64" ], @@ -383,9 +382,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.147.tgz", - "integrity": "sha512-LVM/el40J+iHswbztd/GOcNuUDNwvu0vgAf9K8G9e7zNrMu3Mb0LIF2Ee9/LYk/iRWe+W1x0AsyBWCR0DNcyeA==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.152.tgz", + "integrity": "sha512-Vqn9O7AK9GlGGTwvJ8Ze+3XyDS/DSAnEVaC4VMk1c6fWh4xHXxmEdnhVGKt+nWpxU/mRir5ayTCcUSd/ia7ogw==", "cpu": [ "arm" ], @@ -398,9 +397,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.147.tgz", - "integrity": "sha512-rPiDrgbjx7idgQ64aJ6TE58uahvGE2oGTA7il2RmtD5pxFK0E3QN569eJvmzBagrlU848ntB0LjazAGw3rqP9g==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.152.tgz", + "integrity": "sha512-79hGkWLS0H2l6tMJpdsFacTh8PmHdRIg8vfs5cHn9mNvXTKLOrIHe9eUwiYGrM2XyYVQikebaXyJXjJIOoMw9Q==", "cpu": [ "arm64" ], @@ -413,9 +412,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.147.tgz", - "integrity": "sha512-TilrlBVkRyXrHNlTJ2WPTped+eC9R0RGu6sxzkNzcMY1DDXYDUy+Z+clotFU7t286hQy46gEdKTofsNIRzwt0g==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.152.tgz", + "integrity": "sha512-Rb81Ds1J+0swDrmqsL9dgowiNtVy+1Rf09kC9oKHSWYt2qXWacul8r42O5s1BPK8K5O/6ufj8stYU+g92YjARg==", "cpu": [ "arm64" ], @@ -428,9 +427,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.147.tgz", - "integrity": "sha512-Trp8xOc1jSlSryEqOqNhzffZxSLIpSgTCKQZTrpyrelP0egA0hvxZun6Nb7sF97G3GI0MKg6SPP0FZo6gvI3kw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.152.tgz", + "integrity": "sha512-K8uOIO594Mpr9KXUVc7grGfT5KU3wh/BZwUVHBSVaYbCCgwxitHDDQR3KzvYpZSKjx/YwLwRWXZuo0dxmw+NcQ==", "cpu": [ "x64" ], @@ -443,9 +442,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.147.tgz", - "integrity": "sha512-m1Zz8DIz7somKDoJFjxrCemTlF3OtfNbRH/o9l81CaoRXTT26FmVoIP0k9tVwA6K/qybXey3XH3TX75hjwH+pw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.152.tgz", + "integrity": "sha512-Q34NF30LM5vynfyCTZNR+Co0AT/0TsLoeXOxkroT9GOfQ+UcsawFs1ZCTBdX15Jv8MXrqZAw5FwcaSReuG58rw==", "cpu": [ "x64" ], @@ -458,9 +457,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.147.tgz", - "integrity": "sha512-8e2lMEBWsv2+dY0m/9hIOJjc6wf6vl++E4D7SVNYYjZQ+m/npYO5/PSrbnGLONz4Zsz94i/nJIECjaNHIJCiNw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.152.tgz", + "integrity": "sha512-i9QaNgntUDDrgj8k3ZyUh3HjGgG3aKa2diPCKR+fPArfFpN352mW3pC4EgSj+gF0FdgmTPnRGzT/n/kq770xqg==", "cpu": [ "arm64" ], @@ -473,9 +472,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.147.tgz", - "integrity": "sha512-YzFhcBhFruZpFVbBXr2K5rglcVe9Lx/BQ9HDes3+NkQAB8K4EeunPtqBN67YgkdDqKTGORqkMWRtWMSTECJZqQ==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.152.tgz", + "integrity": "sha512-HFtEADtw8EF4Rcp87smgEcrm1h2bUVIMshN77K3nzNnjoKRqkTCXpcEaYWzW0pKovEDscHUGQ+YC7LVVAGayMA==", "cpu": [ "ia32" ], @@ -488,9 +487,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.147.tgz", - "integrity": "sha512-csRYCQVL0jJtDtJX3K7u0yqFkyq/APQGHPaPMxcTMGQllEY4yX93RyAHDGVVp1PdjQ+GSWnp2i+jcF3DnjYNIQ==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.152.tgz", + "integrity": "sha512-zdSzmtlwaJga/48KQncKIo9vH1miS40Gr/TJ2QGtMU7u3XyiFz/PL8BDYQFLqSEWSSRcAwVpm6Mucb30mvuf7Q==", "cpu": [ "x64" ], @@ -2866,101 +2865,101 @@ } }, "@swc/core": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.147.tgz", - "integrity": "sha512-FXHgp2/vbiHjOCHLxaxAblLTAw8/sCe2wEfE/BmSAdHapm/ynEAWt6+5tN0t6rVs835lCJswBK1YVsRQvnNxYA==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.152.tgz", + "integrity": "sha512-ZklzoNsvEUWqc73BdYvM+F97N+ghwa01Fd49Hpt6abqYz8ZCvXkY2Hloe0HuppCX4BKCaMDfCgDtWMBqCacSKw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.147", - "@swc/core-android-arm64": "1.2.147", - "@swc/core-darwin-arm64": "1.2.147", - "@swc/core-darwin-x64": "1.2.147", - "@swc/core-freebsd-x64": "1.2.147", - "@swc/core-linux-arm-gnueabihf": "1.2.147", - "@swc/core-linux-arm64-gnu": "1.2.147", - "@swc/core-linux-arm64-musl": "1.2.147", - "@swc/core-linux-x64-gnu": "1.2.147", - "@swc/core-linux-x64-musl": "1.2.147", - "@swc/core-win32-arm64-msvc": "1.2.147", - "@swc/core-win32-ia32-msvc": "1.2.147", - "@swc/core-win32-x64-msvc": "1.2.147" + "@swc/core-android-arm-eabi": "1.2.152", + "@swc/core-android-arm64": "1.2.152", + "@swc/core-darwin-arm64": "1.2.152", + "@swc/core-darwin-x64": "1.2.152", + "@swc/core-freebsd-x64": "1.2.152", + "@swc/core-linux-arm-gnueabihf": "1.2.152", + "@swc/core-linux-arm64-gnu": "1.2.152", + "@swc/core-linux-arm64-musl": "1.2.152", + "@swc/core-linux-x64-gnu": "1.2.152", + "@swc/core-linux-x64-musl": "1.2.152", + "@swc/core-win32-arm64-msvc": "1.2.152", + "@swc/core-win32-ia32-msvc": "1.2.152", + "@swc/core-win32-x64-msvc": "1.2.152" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.147.tgz", - "integrity": "sha512-WOCTic99tAlki8WO6FhaP+5uZQyTMoz50utb4+eqvKX3QKoNcVbjXrPr9m3dj+OP2LHXGebo8F4lT5gAhjsIAw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.152.tgz", + "integrity": "sha512-Vl4mHTL5mEDqPiJMLAqwsTvsl8aREudjUmEfjmM7C+ZcD0W+lNpzpZInbWIaVblNLj04wXoKR2JOpxUC43yy1Q==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.147.tgz", - "integrity": "sha512-cqfOZKR31k4HCy2qDUnpE1fZ+d9xqEicxxtpeAik580DBXZ0GAgFqwtjY5FLhTPhiXZBZnoZ61NtwL2jxfDj2w==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.152.tgz", + "integrity": "sha512-+Xwe882tK1cyVViZhSNYSQmpLtuYIVGw2AvKsrP+VjWf9giiL4Y0Faj6w8KoC24THSxgSX2OTMzw71C+yduj2g==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.147.tgz", - "integrity": "sha512-k4vWk67QVARnk0NaxYAWC01Aa2oYLQegqOGFllnasZcu/T/mq8H6HWHXH9efkyGNQ5S1hkgunLC2ZMcD80Tsng==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.152.tgz", + "integrity": "sha512-UGhzOz8KC3uT1Uzjttv9Gxd4bAXIgyjJ338eI0hxmwXDauoiPYK6PylhmQr91ExNmDnXJH4WkP9UME3fk5JgVg==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.147.tgz", - "integrity": "sha512-Q7mRrgFbH7JXFAvQYqZlG0HIPy5jwAp/VGuPF9P9VPu+gZl+4oSBBCaU2cQW9FdNpdQhPJVBjq3T1Z0qK2x2ww==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.152.tgz", + "integrity": "sha512-2B18L/mD2I5r7OJJjZzikXrzj9+9+izRgSbg9Unwo33eUwtlKrk4gT/iV5FaNjHDeWpJ8+SPquFyic8Plq6rGQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.147.tgz", - "integrity": "sha512-DrCOvyRWNrpwOEqEOALwsiDJcG9Ll+EuwscefJCUPWI1nXMX4JyPVBkKG55LVrerBq/+Gqqpc3pOSjBj5BZJhg==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.152.tgz", + "integrity": "sha512-fe/qqSX14uKFWYN/72BmjSl3DEgK1M5+bJnJpbHFoPePEf3Jv5Vwwo/dq6YxGf4ITo5O8++/9VAkq346vhAHAg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.147.tgz", - "integrity": "sha512-LVM/el40J+iHswbztd/GOcNuUDNwvu0vgAf9K8G9e7zNrMu3Mb0LIF2Ee9/LYk/iRWe+W1x0AsyBWCR0DNcyeA==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.152.tgz", + "integrity": "sha512-Vqn9O7AK9GlGGTwvJ8Ze+3XyDS/DSAnEVaC4VMk1c6fWh4xHXxmEdnhVGKt+nWpxU/mRir5ayTCcUSd/ia7ogw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.147.tgz", - "integrity": "sha512-rPiDrgbjx7idgQ64aJ6TE58uahvGE2oGTA7il2RmtD5pxFK0E3QN569eJvmzBagrlU848ntB0LjazAGw3rqP9g==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.152.tgz", + "integrity": "sha512-79hGkWLS0H2l6tMJpdsFacTh8PmHdRIg8vfs5cHn9mNvXTKLOrIHe9eUwiYGrM2XyYVQikebaXyJXjJIOoMw9Q==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.147.tgz", - "integrity": "sha512-TilrlBVkRyXrHNlTJ2WPTped+eC9R0RGu6sxzkNzcMY1DDXYDUy+Z+clotFU7t286hQy46gEdKTofsNIRzwt0g==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.152.tgz", + "integrity": "sha512-Rb81Ds1J+0swDrmqsL9dgowiNtVy+1Rf09kC9oKHSWYt2qXWacul8r42O5s1BPK8K5O/6ufj8stYU+g92YjARg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.147.tgz", - "integrity": "sha512-Trp8xOc1jSlSryEqOqNhzffZxSLIpSgTCKQZTrpyrelP0egA0hvxZun6Nb7sF97G3GI0MKg6SPP0FZo6gvI3kw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.152.tgz", + "integrity": "sha512-K8uOIO594Mpr9KXUVc7grGfT5KU3wh/BZwUVHBSVaYbCCgwxitHDDQR3KzvYpZSKjx/YwLwRWXZuo0dxmw+NcQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.147.tgz", - "integrity": "sha512-m1Zz8DIz7somKDoJFjxrCemTlF3OtfNbRH/o9l81CaoRXTT26FmVoIP0k9tVwA6K/qybXey3XH3TX75hjwH+pw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.152.tgz", + "integrity": "sha512-Q34NF30LM5vynfyCTZNR+Co0AT/0TsLoeXOxkroT9GOfQ+UcsawFs1ZCTBdX15Jv8MXrqZAw5FwcaSReuG58rw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.147.tgz", - "integrity": "sha512-8e2lMEBWsv2+dY0m/9hIOJjc6wf6vl++E4D7SVNYYjZQ+m/npYO5/PSrbnGLONz4Zsz94i/nJIECjaNHIJCiNw==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.152.tgz", + "integrity": "sha512-i9QaNgntUDDrgj8k3ZyUh3HjGgG3aKa2diPCKR+fPArfFpN352mW3pC4EgSj+gF0FdgmTPnRGzT/n/kq770xqg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.147.tgz", - "integrity": "sha512-YzFhcBhFruZpFVbBXr2K5rglcVe9Lx/BQ9HDes3+NkQAB8K4EeunPtqBN67YgkdDqKTGORqkMWRtWMSTECJZqQ==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.152.tgz", + "integrity": "sha512-HFtEADtw8EF4Rcp87smgEcrm1h2bUVIMshN77K3nzNnjoKRqkTCXpcEaYWzW0pKovEDscHUGQ+YC7LVVAGayMA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.147", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.147.tgz", - "integrity": "sha512-csRYCQVL0jJtDtJX3K7u0yqFkyq/APQGHPaPMxcTMGQllEY4yX93RyAHDGVVp1PdjQ+GSWnp2i+jcF3DnjYNIQ==", + "version": "1.2.152", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.152.tgz", + "integrity": "sha512-zdSzmtlwaJga/48KQncKIo9vH1miS40Gr/TJ2QGtMU7u3XyiFz/PL8BDYQFLqSEWSSRcAwVpm6Mucb30mvuf7Q==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index becc20a02..c69e5fbda 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.147", + "@swc/core": "^1.2.152", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From e56714815712f62ef1b19efcaccc636941014961 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:52:43 +0000 Subject: [PATCH 161/411] chore(deps-dev): bump @typescript-eslint/parser from 5.13.0 to 5.14.0 (#812) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.13.0 to 5.14.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.14.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index b30caee34..a1be22808 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.13.0", + "@typescript-eslint/parser": "^5.14.0", "eslint": "^8.10.0", "typescript": "^4.5.5" }, @@ -625,14 +625,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", - "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", + "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/typescript-estree": "5.13.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "debug": "^4.3.2" }, "engines": { @@ -651,6 +651,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", + "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", + "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", + "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", + "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.14.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.13.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", @@ -3066,15 +3140,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", - "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", + "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/typescript-estree": "5.13.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", + "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0" + } + }, + "@typescript-eslint/types": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", + "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", + "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", + "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.14.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index c69e5fbda..f740955af 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.13.0", + "@typescript-eslint/parser": "^5.14.0", "eslint": "^8.10.0", "typescript": "^4.5.5" }, From 45720a336e0ea7e61b60ad8e436bc6834bb9f972 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Mar 2022 06:13:03 +0700 Subject: [PATCH 162/411] chore(deps): bump play-dl from 1.9.0 to 1.9.1 (#816) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.9.0...1.9.1) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1be22808..15e931f86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "got": "^12.0.1", "i18n": "0.14.2", "opusscript": "^0.0.8", + "play-dl": "^1.9.1", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,7 +38,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.0", + "play-dl": "^1.9.1", "youtube-dl-exec": "^2.0.7" } }, @@ -2261,9 +2262,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.0.tgz", - "integrity": "sha512-2OHScAZXmIXM6M53t+QxjehSkQZsYB9NxlaaqI5FI2Zekn2Pvp61d+SjyyCVDBjtw611fcoRp+NFXg+kgruwCA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.1.tgz", + "integrity": "sha512-rthIn7onPu371VOLgEr8/g+I91CcJ5HpFpAELP52sNQ+/fm9pBHWak46SJKzluI/jd+C6QEC+nJubgNDveqUsw==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4294,9 +4295,9 @@ "optional": true }, "play-dl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.0.tgz", - "integrity": "sha512-2OHScAZXmIXM6M53t+QxjehSkQZsYB9NxlaaqI5FI2Zekn2Pvp61d+SjyyCVDBjtw611fcoRp+NFXg+kgruwCA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.1.tgz", + "integrity": "sha512-rthIn7onPu371VOLgEr8/g+I91CcJ5HpFpAELP52sNQ+/fm9pBHWak46SJKzluI/jd+C6QEC+nJubgNDveqUsw==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index f740955af..2c55d04d2 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.0", + "play-dl": "^1.9.1", "youtube-dl-exec": "^2.0.7" } } From 1b8d6bb9f4fa9469f1b0dfa352938b015c42452b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 23:15:25 +0000 Subject: [PATCH 163/411] chore(deps-dev): bump eslint from 8.10.0 to 8.11.0 (#817) Bumps [eslint](https://github.com/eslint/eslint) from 8.10.0 to 8.11.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.10.0...v8.11.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 64 +++++++++++++++++------------------------------ package.json | 2 +- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index 15e931f86..69080307d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ "got": "^12.0.1", "i18n": "0.14.2", "opusscript": "^0.0.8", - "play-dl": "^1.9.1", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -31,7 +30,7 @@ "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.14.0", - "eslint": "^8.10.0", + "eslint": "^8.11.0", "typescript": "^4.5.5" }, "engines": { @@ -84,16 +83,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", - "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", @@ -103,15 +102,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", @@ -1273,12 +1263,12 @@ } }, "node_modules/eslint": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", - "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -1690,9 +1680,9 @@ } }, "node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2806,28 +2796,20 @@ } }, "@eslint/eslintrc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", - "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } } }, "@humanwhocodes/config-array": { @@ -3567,12 +3549,12 @@ "dev": true }, "eslint": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", - "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3884,9 +3866,9 @@ } }, "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { "type-fest": "^0.20.2" diff --git a/package.json b/package.json index 2c55d04d2..698a9a1b1 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.14.0", - "eslint": "^8.10.0", + "eslint": "^8.11.0", "typescript": "^4.5.5" }, "engines": { From a5048d2c0b1c1b1c826d5807aaab2102e7a5d75f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 23:17:52 +0000 Subject: [PATCH 164/411] chore(deps): bump youtube-dl-exec from 2.0.7 to 2.0.8 (#820) Bumps [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/microlinkhq/youtube-dl-exec/releases) - [Changelog](https://github.com/microlinkhq/youtube-dl-exec/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/youtube-dl-exec/compare/v2.0.7...v2.0.8) --- updated-dependencies: - dependency-name: youtube-dl-exec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 69080307d..42d8ade85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", + "youtube-dl-exec": "^2.0.8", "youtubei": "^0.0.1-rc.29" }, "devDependencies": { @@ -38,7 +39,7 @@ }, "optionalDependencies": { "play-dl": "^1.9.1", - "youtube-dl-exec": "^2.0.7" + "youtube-dl-exec": "^2.0.8" } }, "node_modules/@discordjs/builders": { @@ -2734,9 +2735,9 @@ "dev": true }, "node_modules/youtube-dl-exec": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.7.tgz", - "integrity": "sha512-L9PQf6K1ytHU5IkSdEelkVXbhBOJShc7tOqf7tpsHjdC2thjdMMmCqKbuy4xmAHlHa7vgBlsm+6JoaToMTIjJg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.8.tgz", + "integrity": "sha512-bsqS7QK7MT0AmVibbH6cI+tBfJ2rLN/qukpQbtAGvqmEgkwfwGiV31DzMnHa1bRAkwCeZELqj6kMFMBW4U4FRg==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -4598,9 +4599,9 @@ "dev": true }, "youtube-dl-exec": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.7.tgz", - "integrity": "sha512-L9PQf6K1ytHU5IkSdEelkVXbhBOJShc7tOqf7tpsHjdC2thjdMMmCqKbuy4xmAHlHa7vgBlsm+6JoaToMTIjJg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.8.tgz", + "integrity": "sha512-bsqS7QK7MT0AmVibbH6cI+tBfJ2rLN/qukpQbtAGvqmEgkwfwGiV31DzMnHa1bRAkwCeZELqj6kMFMBW4U4FRg==", "optional": true, "requires": { "dargs": "~7.0.0", diff --git a/package.json b/package.json index 698a9a1b1..0cd2990e5 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "play-dl": "^1.9.1", - "youtube-dl-exec": "^2.0.7" + "youtube-dl-exec": "^2.0.8" } } From 1dbca98031451a0eeab4580b472d32d737308cbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 23:20:23 +0000 Subject: [PATCH 165/411] chore(deps): bump @swc/core from 1.2.152 to 1.2.155 (#821) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.152 to 1.2.155. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.152...v1.2.155) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 223 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42d8ade85..e5a9e5345 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.152", + "@swc/core": "^1.2.155", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -22,7 +22,6 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtube-dl-exec": "^2.0.8", "youtubei": "^0.0.1-rc.29" }, "devDependencies": { @@ -269,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.152.tgz", - "integrity": "sha512-ZklzoNsvEUWqc73BdYvM+F97N+ghwa01Fd49Hpt6abqYz8ZCvXkY2Hloe0HuppCX4BKCaMDfCgDtWMBqCacSKw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.155.tgz", + "integrity": "sha512-rNJ4NWL0vqwAqHk2m/GKnveDHttsZGGDWxht3iQFdVMPHdreHTln7dYJl1U+Vzw5FG/nS/uqz+fc+Jd4EhAF/w==", "bin": { "swcx": "run_swcx.js" }, @@ -283,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.152", - "@swc/core-android-arm64": "1.2.152", - "@swc/core-darwin-arm64": "1.2.152", - "@swc/core-darwin-x64": "1.2.152", - "@swc/core-freebsd-x64": "1.2.152", - "@swc/core-linux-arm-gnueabihf": "1.2.152", - "@swc/core-linux-arm64-gnu": "1.2.152", - "@swc/core-linux-arm64-musl": "1.2.152", - "@swc/core-linux-x64-gnu": "1.2.152", - "@swc/core-linux-x64-musl": "1.2.152", - "@swc/core-win32-arm64-msvc": "1.2.152", - "@swc/core-win32-ia32-msvc": "1.2.152", - "@swc/core-win32-x64-msvc": "1.2.152" + "@swc/core-android-arm-eabi": "1.2.155", + "@swc/core-android-arm64": "1.2.155", + "@swc/core-darwin-arm64": "1.2.155", + "@swc/core-darwin-x64": "1.2.155", + "@swc/core-freebsd-x64": "1.2.155", + "@swc/core-linux-arm-gnueabihf": "1.2.155", + "@swc/core-linux-arm64-gnu": "1.2.155", + "@swc/core-linux-arm64-musl": "1.2.155", + "@swc/core-linux-x64-gnu": "1.2.155", + "@swc/core-linux-x64-musl": "1.2.155", + "@swc/core-win32-arm64-msvc": "1.2.155", + "@swc/core-win32-ia32-msvc": "1.2.155", + "@swc/core-win32-x64-msvc": "1.2.155" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.152.tgz", - "integrity": "sha512-Vl4mHTL5mEDqPiJMLAqwsTvsl8aREudjUmEfjmM7C+ZcD0W+lNpzpZInbWIaVblNLj04wXoKR2JOpxUC43yy1Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.155.tgz", + "integrity": "sha512-5gFUHeKvdifHgIxu5wc20r0W3WjBYazbZ91u6uT4NUasBDf44k7HvmXMi5r0+QDWX739hy17WzNqKyfnWIHAVQ==", "cpu": [ "arm" ], @@ -314,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.152.tgz", - "integrity": "sha512-+Xwe882tK1cyVViZhSNYSQmpLtuYIVGw2AvKsrP+VjWf9giiL4Y0Faj6w8KoC24THSxgSX2OTMzw71C+yduj2g==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.155.tgz", + "integrity": "sha512-kqfcaPYZTXxgkm8E766SpygZhcbYLyoO+lTIH1BXuNPp8QJDg/y2/+woW3oFSSYlWG9G1AngaPefDX7UtD4xoQ==", "cpu": [ "arm64" ], @@ -329,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.152.tgz", - "integrity": "sha512-UGhzOz8KC3uT1Uzjttv9Gxd4bAXIgyjJ338eI0hxmwXDauoiPYK6PylhmQr91ExNmDnXJH4WkP9UME3fk5JgVg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.155.tgz", + "integrity": "sha512-UqEvicLmBy3+cjNCVQbcmVNKUhHnOFBEO6oJDPbWqxi/QH7aeAbU89lmQFYI1zwTlkjb5fq4nKAy2jxzZsOi9g==", "cpu": [ "arm64" ], @@ -344,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.152.tgz", - "integrity": "sha512-2B18L/mD2I5r7OJJjZzikXrzj9+9+izRgSbg9Unwo33eUwtlKrk4gT/iV5FaNjHDeWpJ8+SPquFyic8Plq6rGQ==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.155.tgz", + "integrity": "sha512-DenQBSr+g7iGfHgNv3iVIrEABtvPWvJKDv52EuKMzBwvffIW/jqgoEriCVCSFhXkfuJUFaMrCgb5vrKMtGnRdA==", "cpu": [ "x64" ], @@ -359,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.152.tgz", - "integrity": "sha512-fe/qqSX14uKFWYN/72BmjSl3DEgK1M5+bJnJpbHFoPePEf3Jv5Vwwo/dq6YxGf4ITo5O8++/9VAkq346vhAHAg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.155.tgz", + "integrity": "sha512-elOP8YppzGDjFpNW7PJ6OGAiF9LoQ6WBZknZGrdD7GBduqHX6+xAC1i2YKXLz0w3bXAJlEUijrKeGcqxD+tjIA==", "cpu": [ "x64" ], @@ -374,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.152.tgz", - "integrity": "sha512-Vqn9O7AK9GlGGTwvJ8Ze+3XyDS/DSAnEVaC4VMk1c6fWh4xHXxmEdnhVGKt+nWpxU/mRir5ayTCcUSd/ia7ogw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.155.tgz", + "integrity": "sha512-/octthMIQg8mhRRk84v+I6Rtj2FdwgxgaXvkwM4y1jl+hoQAFDI3mosJn4aFPW8gOSGKJVWASiJaBvQtBzx9Fg==", "cpu": [ "arm" ], @@ -389,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.152.tgz", - "integrity": "sha512-79hGkWLS0H2l6tMJpdsFacTh8PmHdRIg8vfs5cHn9mNvXTKLOrIHe9eUwiYGrM2XyYVQikebaXyJXjJIOoMw9Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.155.tgz", + "integrity": "sha512-JdbRTK49pcsSrr98daB2ArWt/IFXhzh1JnXLgApMZVQIaGZnlCj2uRGZep8kLTZQ3CCJuM1QEk3ecJ0eDFLOAA==", "cpu": [ "arm64" ], @@ -404,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.152.tgz", - "integrity": "sha512-Rb81Ds1J+0swDrmqsL9dgowiNtVy+1Rf09kC9oKHSWYt2qXWacul8r42O5s1BPK8K5O/6ufj8stYU+g92YjARg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.155.tgz", + "integrity": "sha512-9cYJP9eKXDp+huJoP+7cRtK6QL2ydsgQpeQ0O6hpX1NmBM/slSCWj7eXBAKd89v1AoxQWoSJYeP3SzGg/uTCiA==", "cpu": [ "arm64" ], @@ -419,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.152.tgz", - "integrity": "sha512-K8uOIO594Mpr9KXUVc7grGfT5KU3wh/BZwUVHBSVaYbCCgwxitHDDQR3KzvYpZSKjx/YwLwRWXZuo0dxmw+NcQ==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.155.tgz", + "integrity": "sha512-hIi6epWH05yAVTrxB81/5/yILT/5mhw+n52JrZcUT1CkxCZJmPPLHrlLWR/A4QtPpwHUdNm01vn0hBWdDHWtxQ==", "cpu": [ "x64" ], @@ -434,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.152.tgz", - "integrity": "sha512-Q34NF30LM5vynfyCTZNR+Co0AT/0TsLoeXOxkroT9GOfQ+UcsawFs1ZCTBdX15Jv8MXrqZAw5FwcaSReuG58rw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.155.tgz", + "integrity": "sha512-HI2117+Y9vXwPIJOCWhAQHulyD1o+xNfiwjJeF42ukxKsBLoDm1STwNKbx8PUgWTAVwade9UG2YCskVX89OOGA==", "cpu": [ "x64" ], @@ -449,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.152.tgz", - "integrity": "sha512-i9QaNgntUDDrgj8k3ZyUh3HjGgG3aKa2diPCKR+fPArfFpN352mW3pC4EgSj+gF0FdgmTPnRGzT/n/kq770xqg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.155.tgz", + "integrity": "sha512-X/0Lg3ZR5ZCQi2tqUpSRIfzbgeU9RLxuPUWyIGA6lVsM4RHGCIgCJxvY2gTgDPPN5rSIr5y+4OhwqyuTAyBXFw==", "cpu": [ "arm64" ], @@ -464,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.152.tgz", - "integrity": "sha512-HFtEADtw8EF4Rcp87smgEcrm1h2bUVIMshN77K3nzNnjoKRqkTCXpcEaYWzW0pKovEDscHUGQ+YC7LVVAGayMA==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.155.tgz", + "integrity": "sha512-7c4sylnJy9nUB6wWDrMVktdQYnrSSt7wqXRh6ETOAVI6kwxrQQe9D7dJLXX9NzJZTIUfeK5rGWwUhZm3ATsRPg==", "cpu": [ "ia32" ], @@ -479,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.152.tgz", - "integrity": "sha512-zdSzmtlwaJga/48KQncKIo9vH1miS40Gr/TJ2QGtMU7u3XyiFz/PL8BDYQFLqSEWSSRcAwVpm6Mucb30mvuf7Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.155.tgz", + "integrity": "sha512-YXkO8IOtup0FN5bkQH5nIbft80SOAvRrNjqYx7KXSux3o5by15dEcQ11A67mc9WOtO+umGTquynh3S2bMdLaEQ==", "cpu": [ "x64" ], @@ -2923,101 +2922,101 @@ } }, "@swc/core": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.152.tgz", - "integrity": "sha512-ZklzoNsvEUWqc73BdYvM+F97N+ghwa01Fd49Hpt6abqYz8ZCvXkY2Hloe0HuppCX4BKCaMDfCgDtWMBqCacSKw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.155.tgz", + "integrity": "sha512-rNJ4NWL0vqwAqHk2m/GKnveDHttsZGGDWxht3iQFdVMPHdreHTln7dYJl1U+Vzw5FG/nS/uqz+fc+Jd4EhAF/w==", "requires": { - "@swc/core-android-arm-eabi": "1.2.152", - "@swc/core-android-arm64": "1.2.152", - "@swc/core-darwin-arm64": "1.2.152", - "@swc/core-darwin-x64": "1.2.152", - "@swc/core-freebsd-x64": "1.2.152", - "@swc/core-linux-arm-gnueabihf": "1.2.152", - "@swc/core-linux-arm64-gnu": "1.2.152", - "@swc/core-linux-arm64-musl": "1.2.152", - "@swc/core-linux-x64-gnu": "1.2.152", - "@swc/core-linux-x64-musl": "1.2.152", - "@swc/core-win32-arm64-msvc": "1.2.152", - "@swc/core-win32-ia32-msvc": "1.2.152", - "@swc/core-win32-x64-msvc": "1.2.152" + "@swc/core-android-arm-eabi": "1.2.155", + "@swc/core-android-arm64": "1.2.155", + "@swc/core-darwin-arm64": "1.2.155", + "@swc/core-darwin-x64": "1.2.155", + "@swc/core-freebsd-x64": "1.2.155", + "@swc/core-linux-arm-gnueabihf": "1.2.155", + "@swc/core-linux-arm64-gnu": "1.2.155", + "@swc/core-linux-arm64-musl": "1.2.155", + "@swc/core-linux-x64-gnu": "1.2.155", + "@swc/core-linux-x64-musl": "1.2.155", + "@swc/core-win32-arm64-msvc": "1.2.155", + "@swc/core-win32-ia32-msvc": "1.2.155", + "@swc/core-win32-x64-msvc": "1.2.155" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.152.tgz", - "integrity": "sha512-Vl4mHTL5mEDqPiJMLAqwsTvsl8aREudjUmEfjmM7C+ZcD0W+lNpzpZInbWIaVblNLj04wXoKR2JOpxUC43yy1Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.155.tgz", + "integrity": "sha512-5gFUHeKvdifHgIxu5wc20r0W3WjBYazbZ91u6uT4NUasBDf44k7HvmXMi5r0+QDWX739hy17WzNqKyfnWIHAVQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.152.tgz", - "integrity": "sha512-+Xwe882tK1cyVViZhSNYSQmpLtuYIVGw2AvKsrP+VjWf9giiL4Y0Faj6w8KoC24THSxgSX2OTMzw71C+yduj2g==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.155.tgz", + "integrity": "sha512-kqfcaPYZTXxgkm8E766SpygZhcbYLyoO+lTIH1BXuNPp8QJDg/y2/+woW3oFSSYlWG9G1AngaPefDX7UtD4xoQ==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.152.tgz", - "integrity": "sha512-UGhzOz8KC3uT1Uzjttv9Gxd4bAXIgyjJ338eI0hxmwXDauoiPYK6PylhmQr91ExNmDnXJH4WkP9UME3fk5JgVg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.155.tgz", + "integrity": "sha512-UqEvicLmBy3+cjNCVQbcmVNKUhHnOFBEO6oJDPbWqxi/QH7aeAbU89lmQFYI1zwTlkjb5fq4nKAy2jxzZsOi9g==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.152.tgz", - "integrity": "sha512-2B18L/mD2I5r7OJJjZzikXrzj9+9+izRgSbg9Unwo33eUwtlKrk4gT/iV5FaNjHDeWpJ8+SPquFyic8Plq6rGQ==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.155.tgz", + "integrity": "sha512-DenQBSr+g7iGfHgNv3iVIrEABtvPWvJKDv52EuKMzBwvffIW/jqgoEriCVCSFhXkfuJUFaMrCgb5vrKMtGnRdA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.152.tgz", - "integrity": "sha512-fe/qqSX14uKFWYN/72BmjSl3DEgK1M5+bJnJpbHFoPePEf3Jv5Vwwo/dq6YxGf4ITo5O8++/9VAkq346vhAHAg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.155.tgz", + "integrity": "sha512-elOP8YppzGDjFpNW7PJ6OGAiF9LoQ6WBZknZGrdD7GBduqHX6+xAC1i2YKXLz0w3bXAJlEUijrKeGcqxD+tjIA==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.152.tgz", - "integrity": "sha512-Vqn9O7AK9GlGGTwvJ8Ze+3XyDS/DSAnEVaC4VMk1c6fWh4xHXxmEdnhVGKt+nWpxU/mRir5ayTCcUSd/ia7ogw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.155.tgz", + "integrity": "sha512-/octthMIQg8mhRRk84v+I6Rtj2FdwgxgaXvkwM4y1jl+hoQAFDI3mosJn4aFPW8gOSGKJVWASiJaBvQtBzx9Fg==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.152.tgz", - "integrity": "sha512-79hGkWLS0H2l6tMJpdsFacTh8PmHdRIg8vfs5cHn9mNvXTKLOrIHe9eUwiYGrM2XyYVQikebaXyJXjJIOoMw9Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.155.tgz", + "integrity": "sha512-JdbRTK49pcsSrr98daB2ArWt/IFXhzh1JnXLgApMZVQIaGZnlCj2uRGZep8kLTZQ3CCJuM1QEk3ecJ0eDFLOAA==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.152.tgz", - "integrity": "sha512-Rb81Ds1J+0swDrmqsL9dgowiNtVy+1Rf09kC9oKHSWYt2qXWacul8r42O5s1BPK8K5O/6ufj8stYU+g92YjARg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.155.tgz", + "integrity": "sha512-9cYJP9eKXDp+huJoP+7cRtK6QL2ydsgQpeQ0O6hpX1NmBM/slSCWj7eXBAKd89v1AoxQWoSJYeP3SzGg/uTCiA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.152.tgz", - "integrity": "sha512-K8uOIO594Mpr9KXUVc7grGfT5KU3wh/BZwUVHBSVaYbCCgwxitHDDQR3KzvYpZSKjx/YwLwRWXZuo0dxmw+NcQ==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.155.tgz", + "integrity": "sha512-hIi6epWH05yAVTrxB81/5/yILT/5mhw+n52JrZcUT1CkxCZJmPPLHrlLWR/A4QtPpwHUdNm01vn0hBWdDHWtxQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.152.tgz", - "integrity": "sha512-Q34NF30LM5vynfyCTZNR+Co0AT/0TsLoeXOxkroT9GOfQ+UcsawFs1ZCTBdX15Jv8MXrqZAw5FwcaSReuG58rw==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.155.tgz", + "integrity": "sha512-HI2117+Y9vXwPIJOCWhAQHulyD1o+xNfiwjJeF42ukxKsBLoDm1STwNKbx8PUgWTAVwade9UG2YCskVX89OOGA==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.152.tgz", - "integrity": "sha512-i9QaNgntUDDrgj8k3ZyUh3HjGgG3aKa2diPCKR+fPArfFpN352mW3pC4EgSj+gF0FdgmTPnRGzT/n/kq770xqg==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.155.tgz", + "integrity": "sha512-X/0Lg3ZR5ZCQi2tqUpSRIfzbgeU9RLxuPUWyIGA6lVsM4RHGCIgCJxvY2gTgDPPN5rSIr5y+4OhwqyuTAyBXFw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.152.tgz", - "integrity": "sha512-HFtEADtw8EF4Rcp87smgEcrm1h2bUVIMshN77K3nzNnjoKRqkTCXpcEaYWzW0pKovEDscHUGQ+YC7LVVAGayMA==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.155.tgz", + "integrity": "sha512-7c4sylnJy9nUB6wWDrMVktdQYnrSSt7wqXRh6ETOAVI6kwxrQQe9D7dJLXX9NzJZTIUfeK5rGWwUhZm3ATsRPg==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.152", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.152.tgz", - "integrity": "sha512-zdSzmtlwaJga/48KQncKIo9vH1miS40Gr/TJ2QGtMU7u3XyiFz/PL8BDYQFLqSEWSSRcAwVpm6Mucb30mvuf7Q==", + "version": "1.2.155", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.155.tgz", + "integrity": "sha512-YXkO8IOtup0FN5bkQH5nIbft80SOAvRrNjqYx7KXSux3o5by15dEcQ11A67mc9WOtO+umGTquynh3S2bMdLaEQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 0cd2990e5..d1bcc5de4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.152", + "@swc/core": "^1.2.155", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From c18034926af001438cc60175dbb301b0fab9326d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 23:23:04 +0000 Subject: [PATCH 166/411] chore(deps-dev): bump @typescript-eslint/parser from 5.14.0 to 5.15.0 (#819) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.14.0 to 5.15.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.15.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 94 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5a9e5345..7bd7c16c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.14.0", + "@typescript-eslint/parser": "^5.15.0", "eslint": "^8.11.0", "typescript": "^4.5.5" }, @@ -616,14 +616,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", - "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", + "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.14.0", - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/typescript-estree": "5.14.0", + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", "debug": "^4.3.2" }, "engines": { @@ -643,13 +643,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", - "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", + "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/visitor-keys": "5.14.0" + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -660,9 +660,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", - "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", + "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -673,13 +673,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", - "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", + "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/visitor-keys": "5.14.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -700,12 +700,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", - "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", + "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/types": "5.15.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3123,41 +3123,41 @@ } }, "@typescript-eslint/parser": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", - "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", + "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.14.0", - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/typescript-estree": "5.14.0", + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", "debug": "^4.3.2" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", - "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", + "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/visitor-keys": "5.14.0" + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0" } }, "@typescript-eslint/types": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", - "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", + "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", - "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", + "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.14.0", - "@typescript-eslint/visitor-keys": "5.14.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3166,12 +3166,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", - "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", + "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/types": "5.15.0", "eslint-visitor-keys": "^3.0.0" } } diff --git a/package.json b/package.json index d1bcc5de4..e9c1cb568 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.14.0", + "@typescript-eslint/parser": "^5.15.0", "eslint": "^8.11.0", "typescript": "^4.5.5" }, From defe8f7ca089a7dedd0cf982dd98bbca001d6411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Mar 2022 07:25:08 +0700 Subject: [PATCH 167/411] chore(deps): bump youtubei from 0.0.1-rc.29 to 0.0.1-rc.31 (#823) Bumps [youtubei](https://github.com/SuspiciousLookingOwl/youtubei) from 0.0.1-rc.29 to 0.0.1-rc.31. - [Release notes](https://github.com/SuspiciousLookingOwl/youtubei/releases) - [Changelog](https://github.com/SuspiciousLookingOwl/youtubei/blob/main/CHANGELOG.md) - [Commits](https://github.com/SuspiciousLookingOwl/youtubei/commits) --- updated-dependencies: - dependency-name: youtubei dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bd7c16c0..ba821fa8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.29" + "youtubei": "^0.0.1-rc.31" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", @@ -2751,9 +2751,9 @@ } }, "node_modules/youtubei": { - "version": "0.0.1-rc.29", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.29.tgz", - "integrity": "sha512-4y9GiPHK5oA37BH7Mlkemi5V8CJbkPd5ZJWx3P9r25GHvSHHkmDrk3eg/IGb+8yOnYyiFOVC64GoVwziaDOInA==" + "version": "0.0.1-rc.31", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.31.tgz", + "integrity": "sha512-bdNJ8uRcvz3Llp/14NdRKoy5XE2TtfsYuDHljF8zm2ExnpmIC9QwsAZ41KmA9Le4lg0aPCMB0BY7njKlORDg0A==" }, "node_modules/zod": { "version": "3.11.6", @@ -4611,9 +4611,9 @@ } }, "youtubei": { - "version": "0.0.1-rc.29", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.29.tgz", - "integrity": "sha512-4y9GiPHK5oA37BH7Mlkemi5V8CJbkPd5ZJWx3P9r25GHvSHHkmDrk3eg/IGb+8yOnYyiFOVC64GoVwziaDOInA==" + "version": "0.0.1-rc.31", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.31.tgz", + "integrity": "sha512-bdNJ8uRcvz3Llp/14NdRKoy5XE2TtfsYuDHljF8zm2ExnpmIC9QwsAZ41KmA9Le4lg0aPCMB0BY7njKlORDg0A==" }, "zod": { "version": "3.11.6", diff --git a/package.json b/package.json index e9c1cb568..87312ffe5 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.29" + "youtubei": "^0.0.1-rc.31" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", From ef468d7c4875a58c9ee7e8f83105484c2e4f81b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Mar 2022 00:52:06 +0000 Subject: [PATCH 168/411] chore(deps): bump play-dl from 1.9.1 to 1.9.2 (#824) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.9.1 to 1.9.2. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.9.1...1.9.2) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba821fa8b..08a4a73e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "got": "^12.0.1", "i18n": "0.14.2", "opusscript": "^0.0.8", + "play-dl": "^1.9.2", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,7 +38,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.1", + "play-dl": "^1.9.2", "youtube-dl-exec": "^2.0.8" } }, @@ -2252,9 +2253,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.1.tgz", - "integrity": "sha512-rthIn7onPu371VOLgEr8/g+I91CcJ5HpFpAELP52sNQ+/fm9pBHWak46SJKzluI/jd+C6QEC+nJubgNDveqUsw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.2.tgz", + "integrity": "sha512-rhTt3ap4Oajl6NULOOWe35nysT2PwNNuaIrpLF7EPQhZrjBqaJfwiqtr60hn8b46fPR9utNsEnDv6dkTRNYr6Q==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4277,9 +4278,9 @@ "optional": true }, "play-dl": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.1.tgz", - "integrity": "sha512-rthIn7onPu371VOLgEr8/g+I91CcJ5HpFpAELP52sNQ+/fm9pBHWak46SJKzluI/jd+C6QEC+nJubgNDveqUsw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.2.tgz", + "integrity": "sha512-rhTt3ap4Oajl6NULOOWe35nysT2PwNNuaIrpLF7EPQhZrjBqaJfwiqtr60hn8b46fPR9utNsEnDv6dkTRNYr6Q==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index 87312ffe5..0e7dee48c 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.1", + "play-dl": "^1.9.2", "youtube-dl-exec": "^2.0.8" } } From e3b9f31c040baad902fb2730bd0395bc419be995 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Mar 2022 01:00:51 +0000 Subject: [PATCH 169/411] chore(deps): bump got from 12.0.1 to 12.0.2 (#825) Bumps [got](https://github.com/sindresorhus/got) from 12.0.1 to 12.0.2. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v12.0.1...v12.0.2) --- updated-dependencies: - dependency-name: got dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 35 +++++++++++++++++------------------ package.json | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08a4a73e0..6434170da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,10 +15,9 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.1", + "got": "^12.0.2", "i18n": "0.14.2", "opusscript": "^0.0.8", - "play-dl": "^1.9.2", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -231,9 +230,9 @@ } }, "node_modules/@sindresorhus/is": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz", - "integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "engines": { "node": ">=10" }, @@ -1716,11 +1715,11 @@ } }, "node_modules/got": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", - "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.2.tgz", + "integrity": "sha512-Zi4yHiqCgaorUbknr/RHFBsC3XqjSodaw0F3qxlqAqyj+OGYZl37/uy01R0qz++KANKQYdY5FHJ0okXZpEzwWQ==", "dependencies": { - "@sindresorhus/is": "^4.2.0", + "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", @@ -1729,7 +1728,7 @@ "decompress-response": "^6.0.0", "form-data-encoder": "1.7.1", "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.9", + "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^2.0.0" @@ -2907,9 +2906,9 @@ "integrity": "sha512-O5ND5Ljpef86X5oy8zXorQ754TMjWALcPSAgPBu4+76HLtDTrNoDyzU2uGE2G4A8Wv51u0MXHzGQ0WZ4GMtpIw==" }, "@sindresorhus/is": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz", - "integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@swc/cli": { "version": "0.1.55", @@ -3890,11 +3889,11 @@ } }, "got": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", - "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.2.tgz", + "integrity": "sha512-Zi4yHiqCgaorUbknr/RHFBsC3XqjSodaw0F3qxlqAqyj+OGYZl37/uy01R0qz++KANKQYdY5FHJ0okXZpEzwWQ==", "requires": { - "@sindresorhus/is": "^4.2.0", + "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", @@ -3903,7 +3902,7 @@ "decompress-response": "^6.0.0", "form-data-encoder": "1.7.1", "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.9", + "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^2.0.0" diff --git a/package.json b/package.json index 0e7dee48c..da19f2439 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.1", + "got": "^12.0.2", "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", From d5185b66ebf486eaf4b88506010c2eb643cdd356 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Mar 2022 01:03:53 +0000 Subject: [PATCH 170/411] chore(deps): bump @swc/core from 1.2.155 to 1.2.156 (#826) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.155 to 1.2.156. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.155...v1.2.156) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6434170da..3bfa6eb44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.155", + "@swc/core": "^1.2.156", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.155.tgz", - "integrity": "sha512-rNJ4NWL0vqwAqHk2m/GKnveDHttsZGGDWxht3iQFdVMPHdreHTln7dYJl1U+Vzw5FG/nS/uqz+fc+Jd4EhAF/w==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.156.tgz", + "integrity": "sha512-icEIxirqpbKXX7tESdfBpa7XdpX0pSWtREfhWgWHXsWiSiOjQ4Vij4fAAdIOOXxm1amCCKjr6bThOIiA0dtTug==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.155", - "@swc/core-android-arm64": "1.2.155", - "@swc/core-darwin-arm64": "1.2.155", - "@swc/core-darwin-x64": "1.2.155", - "@swc/core-freebsd-x64": "1.2.155", - "@swc/core-linux-arm-gnueabihf": "1.2.155", - "@swc/core-linux-arm64-gnu": "1.2.155", - "@swc/core-linux-arm64-musl": "1.2.155", - "@swc/core-linux-x64-gnu": "1.2.155", - "@swc/core-linux-x64-musl": "1.2.155", - "@swc/core-win32-arm64-msvc": "1.2.155", - "@swc/core-win32-ia32-msvc": "1.2.155", - "@swc/core-win32-x64-msvc": "1.2.155" + "@swc/core-android-arm-eabi": "1.2.156", + "@swc/core-android-arm64": "1.2.156", + "@swc/core-darwin-arm64": "1.2.156", + "@swc/core-darwin-x64": "1.2.156", + "@swc/core-freebsd-x64": "1.2.156", + "@swc/core-linux-arm-gnueabihf": "1.2.156", + "@swc/core-linux-arm64-gnu": "1.2.156", + "@swc/core-linux-arm64-musl": "1.2.156", + "@swc/core-linux-x64-gnu": "1.2.156", + "@swc/core-linux-x64-musl": "1.2.156", + "@swc/core-win32-arm64-msvc": "1.2.156", + "@swc/core-win32-ia32-msvc": "1.2.156", + "@swc/core-win32-x64-msvc": "1.2.156" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.155.tgz", - "integrity": "sha512-5gFUHeKvdifHgIxu5wc20r0W3WjBYazbZ91u6uT4NUasBDf44k7HvmXMi5r0+QDWX739hy17WzNqKyfnWIHAVQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.156.tgz", + "integrity": "sha512-epFJaBn/tqWxtprFucJfbJgRtCoamKUO2vxQ1VYp69VTQ78cF4kdizoxjlHjt4ZMZ+Y4AKULAtwqs4zDrQIxXg==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.155.tgz", - "integrity": "sha512-kqfcaPYZTXxgkm8E766SpygZhcbYLyoO+lTIH1BXuNPp8QJDg/y2/+woW3oFSSYlWG9G1AngaPefDX7UtD4xoQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.156.tgz", + "integrity": "sha512-gdGjd0GuAoBPJvKAbSwnzbvBBHvmmHjETH7hoTUxRlmB1QETrI7AnM3RZ75l6HtHu+RjgsiuBk2yiHbic1Hh7Q==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.155.tgz", - "integrity": "sha512-UqEvicLmBy3+cjNCVQbcmVNKUhHnOFBEO6oJDPbWqxi/QH7aeAbU89lmQFYI1zwTlkjb5fq4nKAy2jxzZsOi9g==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.156.tgz", + "integrity": "sha512-kFnWPrxOfIIYRqv8DCGOT8KsMPgbblLJQ45TKT1wCkCsQ3xmujC86XZMWx7xyYmDd+V6QbfawLBJvb4Pq4jvFw==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.155.tgz", - "integrity": "sha512-DenQBSr+g7iGfHgNv3iVIrEABtvPWvJKDv52EuKMzBwvffIW/jqgoEriCVCSFhXkfuJUFaMrCgb5vrKMtGnRdA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.156.tgz", + "integrity": "sha512-G0H2zJKIWsUx9+QpontN1Rlm2g+pLuaFzHDeULRYnxEyZl2tUcvi2TuKi3imjpr26xBx9Zesz9vSThmwU9Ll2A==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.155.tgz", - "integrity": "sha512-elOP8YppzGDjFpNW7PJ6OGAiF9LoQ6WBZknZGrdD7GBduqHX6+xAC1i2YKXLz0w3bXAJlEUijrKeGcqxD+tjIA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.156.tgz", + "integrity": "sha512-S9PsqcVgG10plsoWDGAUjoH0GbM8t9PR1JFx+sAHY1JKUxSW4iwMZDGTzIrIRO3agTMZLgpoLG/LV+1Ljcrr+Q==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.155.tgz", - "integrity": "sha512-/octthMIQg8mhRRk84v+I6Rtj2FdwgxgaXvkwM4y1jl+hoQAFDI3mosJn4aFPW8gOSGKJVWASiJaBvQtBzx9Fg==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.156.tgz", + "integrity": "sha512-nQP/c4tvxlyCQXSByNhS4lCxSCJZ/FrCbEv5l0tAcMKdO21fYSHduAvAisQAMfyTZHCL+2ubTeWV0pd8P432Ug==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.155.tgz", - "integrity": "sha512-JdbRTK49pcsSrr98daB2ArWt/IFXhzh1JnXLgApMZVQIaGZnlCj2uRGZep8kLTZQ3CCJuM1QEk3ecJ0eDFLOAA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.156.tgz", + "integrity": "sha512-kRSCfVWfvukxvOFWGts1u+qoRYUbw5Hlqty0PG3/lVoDM6pu6wK4TZEEERLbUuN7TDWKbpEchpG01kGtW/g9Cg==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.155.tgz", - "integrity": "sha512-9cYJP9eKXDp+huJoP+7cRtK6QL2ydsgQpeQ0O6hpX1NmBM/slSCWj7eXBAKd89v1AoxQWoSJYeP3SzGg/uTCiA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.156.tgz", + "integrity": "sha512-SowJYHa2NjVCkPdg004npZj6bMdQel74G6DUD9zl8tw8QV9MLRTgp0cg6EJZdBTSjQ3M79HQYIB4cMGjm1qbJA==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.155.tgz", - "integrity": "sha512-hIi6epWH05yAVTrxB81/5/yILT/5mhw+n52JrZcUT1CkxCZJmPPLHrlLWR/A4QtPpwHUdNm01vn0hBWdDHWtxQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.156.tgz", + "integrity": "sha512-qcP4xn9NDm4BkZvLDeSdRfbSUrTG87Usb0ZVtoW6L2cXBZtaOWSS62s1eALUQDDehA/HpB4qgwVFUdvzHwx8qg==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.155.tgz", - "integrity": "sha512-HI2117+Y9vXwPIJOCWhAQHulyD1o+xNfiwjJeF42ukxKsBLoDm1STwNKbx8PUgWTAVwade9UG2YCskVX89OOGA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.156.tgz", + "integrity": "sha512-l6xzgNuKB6QQYxWNMDTNVAnle/mNk35AgD83otiKoL23o8m0gxExm8OQbd0HEi/Wf6BrPl3rlxsGpYWvOJHztQ==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.155.tgz", - "integrity": "sha512-X/0Lg3ZR5ZCQi2tqUpSRIfzbgeU9RLxuPUWyIGA6lVsM4RHGCIgCJxvY2gTgDPPN5rSIr5y+4OhwqyuTAyBXFw==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.156.tgz", + "integrity": "sha512-og3lIrHcQY0Fjxdt5LLMvUqYn1EbqrWFhpn5S9b3M5hkQO+rbZZulONWdHT0xmRzuPvyeK7ZEyLdzItWEeym8A==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.155.tgz", - "integrity": "sha512-7c4sylnJy9nUB6wWDrMVktdQYnrSSt7wqXRh6ETOAVI6kwxrQQe9D7dJLXX9NzJZTIUfeK5rGWwUhZm3ATsRPg==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.156.tgz", + "integrity": "sha512-08TMu53hImO8SlQmaElRQEr7z8TTtdXl9/18ZnHv1jcAIEk/5BdP8SeQaTtf2l3uQjdKdZWFZrAK12Jek4pe9w==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.155.tgz", - "integrity": "sha512-YXkO8IOtup0FN5bkQH5nIbft80SOAvRrNjqYx7KXSux3o5by15dEcQ11A67mc9WOtO+umGTquynh3S2bMdLaEQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.156.tgz", + "integrity": "sha512-oLfkNd+SN8gWKaT9i0awbagq2oYyLqw8GhU3bZmMI1Ssx2u2IBA1mW07LPAnXsKNEGqnayc6cY0pyCN4IVEgLQ==", "cpu": [ "x64" ], @@ -2922,101 +2922,101 @@ } }, "@swc/core": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.155.tgz", - "integrity": "sha512-rNJ4NWL0vqwAqHk2m/GKnveDHttsZGGDWxht3iQFdVMPHdreHTln7dYJl1U+Vzw5FG/nS/uqz+fc+Jd4EhAF/w==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.156.tgz", + "integrity": "sha512-icEIxirqpbKXX7tESdfBpa7XdpX0pSWtREfhWgWHXsWiSiOjQ4Vij4fAAdIOOXxm1amCCKjr6bThOIiA0dtTug==", "requires": { - "@swc/core-android-arm-eabi": "1.2.155", - "@swc/core-android-arm64": "1.2.155", - "@swc/core-darwin-arm64": "1.2.155", - "@swc/core-darwin-x64": "1.2.155", - "@swc/core-freebsd-x64": "1.2.155", - "@swc/core-linux-arm-gnueabihf": "1.2.155", - "@swc/core-linux-arm64-gnu": "1.2.155", - "@swc/core-linux-arm64-musl": "1.2.155", - "@swc/core-linux-x64-gnu": "1.2.155", - "@swc/core-linux-x64-musl": "1.2.155", - "@swc/core-win32-arm64-msvc": "1.2.155", - "@swc/core-win32-ia32-msvc": "1.2.155", - "@swc/core-win32-x64-msvc": "1.2.155" + "@swc/core-android-arm-eabi": "1.2.156", + "@swc/core-android-arm64": "1.2.156", + "@swc/core-darwin-arm64": "1.2.156", + "@swc/core-darwin-x64": "1.2.156", + "@swc/core-freebsd-x64": "1.2.156", + "@swc/core-linux-arm-gnueabihf": "1.2.156", + "@swc/core-linux-arm64-gnu": "1.2.156", + "@swc/core-linux-arm64-musl": "1.2.156", + "@swc/core-linux-x64-gnu": "1.2.156", + "@swc/core-linux-x64-musl": "1.2.156", + "@swc/core-win32-arm64-msvc": "1.2.156", + "@swc/core-win32-ia32-msvc": "1.2.156", + "@swc/core-win32-x64-msvc": "1.2.156" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.155.tgz", - "integrity": "sha512-5gFUHeKvdifHgIxu5wc20r0W3WjBYazbZ91u6uT4NUasBDf44k7HvmXMi5r0+QDWX739hy17WzNqKyfnWIHAVQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.156.tgz", + "integrity": "sha512-epFJaBn/tqWxtprFucJfbJgRtCoamKUO2vxQ1VYp69VTQ78cF4kdizoxjlHjt4ZMZ+Y4AKULAtwqs4zDrQIxXg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.155.tgz", - "integrity": "sha512-kqfcaPYZTXxgkm8E766SpygZhcbYLyoO+lTIH1BXuNPp8QJDg/y2/+woW3oFSSYlWG9G1AngaPefDX7UtD4xoQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.156.tgz", + "integrity": "sha512-gdGjd0GuAoBPJvKAbSwnzbvBBHvmmHjETH7hoTUxRlmB1QETrI7AnM3RZ75l6HtHu+RjgsiuBk2yiHbic1Hh7Q==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.155.tgz", - "integrity": "sha512-UqEvicLmBy3+cjNCVQbcmVNKUhHnOFBEO6oJDPbWqxi/QH7aeAbU89lmQFYI1zwTlkjb5fq4nKAy2jxzZsOi9g==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.156.tgz", + "integrity": "sha512-kFnWPrxOfIIYRqv8DCGOT8KsMPgbblLJQ45TKT1wCkCsQ3xmujC86XZMWx7xyYmDd+V6QbfawLBJvb4Pq4jvFw==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.155.tgz", - "integrity": "sha512-DenQBSr+g7iGfHgNv3iVIrEABtvPWvJKDv52EuKMzBwvffIW/jqgoEriCVCSFhXkfuJUFaMrCgb5vrKMtGnRdA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.156.tgz", + "integrity": "sha512-G0H2zJKIWsUx9+QpontN1Rlm2g+pLuaFzHDeULRYnxEyZl2tUcvi2TuKi3imjpr26xBx9Zesz9vSThmwU9Ll2A==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.155.tgz", - "integrity": "sha512-elOP8YppzGDjFpNW7PJ6OGAiF9LoQ6WBZknZGrdD7GBduqHX6+xAC1i2YKXLz0w3bXAJlEUijrKeGcqxD+tjIA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.156.tgz", + "integrity": "sha512-S9PsqcVgG10plsoWDGAUjoH0GbM8t9PR1JFx+sAHY1JKUxSW4iwMZDGTzIrIRO3agTMZLgpoLG/LV+1Ljcrr+Q==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.155.tgz", - "integrity": "sha512-/octthMIQg8mhRRk84v+I6Rtj2FdwgxgaXvkwM4y1jl+hoQAFDI3mosJn4aFPW8gOSGKJVWASiJaBvQtBzx9Fg==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.156.tgz", + "integrity": "sha512-nQP/c4tvxlyCQXSByNhS4lCxSCJZ/FrCbEv5l0tAcMKdO21fYSHduAvAisQAMfyTZHCL+2ubTeWV0pd8P432Ug==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.155.tgz", - "integrity": "sha512-JdbRTK49pcsSrr98daB2ArWt/IFXhzh1JnXLgApMZVQIaGZnlCj2uRGZep8kLTZQ3CCJuM1QEk3ecJ0eDFLOAA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.156.tgz", + "integrity": "sha512-kRSCfVWfvukxvOFWGts1u+qoRYUbw5Hlqty0PG3/lVoDM6pu6wK4TZEEERLbUuN7TDWKbpEchpG01kGtW/g9Cg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.155.tgz", - "integrity": "sha512-9cYJP9eKXDp+huJoP+7cRtK6QL2ydsgQpeQ0O6hpX1NmBM/slSCWj7eXBAKd89v1AoxQWoSJYeP3SzGg/uTCiA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.156.tgz", + "integrity": "sha512-SowJYHa2NjVCkPdg004npZj6bMdQel74G6DUD9zl8tw8QV9MLRTgp0cg6EJZdBTSjQ3M79HQYIB4cMGjm1qbJA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.155.tgz", - "integrity": "sha512-hIi6epWH05yAVTrxB81/5/yILT/5mhw+n52JrZcUT1CkxCZJmPPLHrlLWR/A4QtPpwHUdNm01vn0hBWdDHWtxQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.156.tgz", + "integrity": "sha512-qcP4xn9NDm4BkZvLDeSdRfbSUrTG87Usb0ZVtoW6L2cXBZtaOWSS62s1eALUQDDehA/HpB4qgwVFUdvzHwx8qg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.155.tgz", - "integrity": "sha512-HI2117+Y9vXwPIJOCWhAQHulyD1o+xNfiwjJeF42ukxKsBLoDm1STwNKbx8PUgWTAVwade9UG2YCskVX89OOGA==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.156.tgz", + "integrity": "sha512-l6xzgNuKB6QQYxWNMDTNVAnle/mNk35AgD83otiKoL23o8m0gxExm8OQbd0HEi/Wf6BrPl3rlxsGpYWvOJHztQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.155.tgz", - "integrity": "sha512-X/0Lg3ZR5ZCQi2tqUpSRIfzbgeU9RLxuPUWyIGA6lVsM4RHGCIgCJxvY2gTgDPPN5rSIr5y+4OhwqyuTAyBXFw==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.156.tgz", + "integrity": "sha512-og3lIrHcQY0Fjxdt5LLMvUqYn1EbqrWFhpn5S9b3M5hkQO+rbZZulONWdHT0xmRzuPvyeK7ZEyLdzItWEeym8A==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.155.tgz", - "integrity": "sha512-7c4sylnJy9nUB6wWDrMVktdQYnrSSt7wqXRh6ETOAVI6kwxrQQe9D7dJLXX9NzJZTIUfeK5rGWwUhZm3ATsRPg==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.156.tgz", + "integrity": "sha512-08TMu53hImO8SlQmaElRQEr7z8TTtdXl9/18ZnHv1jcAIEk/5BdP8SeQaTtf2l3uQjdKdZWFZrAK12Jek4pe9w==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.155", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.155.tgz", - "integrity": "sha512-YXkO8IOtup0FN5bkQH5nIbft80SOAvRrNjqYx7KXSux3o5by15dEcQ11A67mc9WOtO+umGTquynh3S2bMdLaEQ==", + "version": "1.2.156", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.156.tgz", + "integrity": "sha512-oLfkNd+SN8gWKaT9i0awbagq2oYyLqw8GhU3bZmMI1Ssx2u2IBA1mW07LPAnXsKNEGqnayc6cY0pyCN4IVEgLQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index da19f2439..60c051bf3 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.155", + "@swc/core": "^1.2.156", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 0df8a4b66c8825c38ae89e963d1bfff73e787646 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Mar 2022 19:03:42 +0900 Subject: [PATCH 171/411] chore(deps): bump @swc/core from 1.2.156 to 1.2.157 (#827) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3bfa6eb44..5ec27d2de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.156", + "@swc/core": "^1.2.157", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.156.tgz", - "integrity": "sha512-icEIxirqpbKXX7tESdfBpa7XdpX0pSWtREfhWgWHXsWiSiOjQ4Vij4fAAdIOOXxm1amCCKjr6bThOIiA0dtTug==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.157.tgz", + "integrity": "sha512-l2m/KTDJnb6614jI9e2bJkjComiiZfgzx3vAPgm0kBfw4pP3sukL/y9yxJujkZYMv+CLqLwX7N0RkR7BHfayYA==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.156", - "@swc/core-android-arm64": "1.2.156", - "@swc/core-darwin-arm64": "1.2.156", - "@swc/core-darwin-x64": "1.2.156", - "@swc/core-freebsd-x64": "1.2.156", - "@swc/core-linux-arm-gnueabihf": "1.2.156", - "@swc/core-linux-arm64-gnu": "1.2.156", - "@swc/core-linux-arm64-musl": "1.2.156", - "@swc/core-linux-x64-gnu": "1.2.156", - "@swc/core-linux-x64-musl": "1.2.156", - "@swc/core-win32-arm64-msvc": "1.2.156", - "@swc/core-win32-ia32-msvc": "1.2.156", - "@swc/core-win32-x64-msvc": "1.2.156" + "@swc/core-android-arm-eabi": "1.2.157", + "@swc/core-android-arm64": "1.2.157", + "@swc/core-darwin-arm64": "1.2.157", + "@swc/core-darwin-x64": "1.2.157", + "@swc/core-freebsd-x64": "1.2.157", + "@swc/core-linux-arm-gnueabihf": "1.2.157", + "@swc/core-linux-arm64-gnu": "1.2.157", + "@swc/core-linux-arm64-musl": "1.2.157", + "@swc/core-linux-x64-gnu": "1.2.157", + "@swc/core-linux-x64-musl": "1.2.157", + "@swc/core-win32-arm64-msvc": "1.2.157", + "@swc/core-win32-ia32-msvc": "1.2.157", + "@swc/core-win32-x64-msvc": "1.2.157" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.156.tgz", - "integrity": "sha512-epFJaBn/tqWxtprFucJfbJgRtCoamKUO2vxQ1VYp69VTQ78cF4kdizoxjlHjt4ZMZ+Y4AKULAtwqs4zDrQIxXg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.157.tgz", + "integrity": "sha512-n0AlbqYA0Ti7pSiKlCohy1GYjL5JpKUkDQW6vrBZoU8bdkoOaHWMlem4IdnaLtPpgWuxJdSnWcyR8osK9XgppA==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.156.tgz", - "integrity": "sha512-gdGjd0GuAoBPJvKAbSwnzbvBBHvmmHjETH7hoTUxRlmB1QETrI7AnM3RZ75l6HtHu+RjgsiuBk2yiHbic1Hh7Q==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.157.tgz", + "integrity": "sha512-pRmiFBXx2vMC4oXYGtf+ttwreJMK61Ikbaq99nyaRYzuhQpUa/M06v+tqwdskmehhMMGZHjL2ZylEU95iJWz0w==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.156.tgz", - "integrity": "sha512-kFnWPrxOfIIYRqv8DCGOT8KsMPgbblLJQ45TKT1wCkCsQ3xmujC86XZMWx7xyYmDd+V6QbfawLBJvb4Pq4jvFw==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.157.tgz", + "integrity": "sha512-2KiufwT79hsXOb1eToZBRER/nmKEVs5Ap5kwiUN5jmD23PVmxAqLFPO8Bj1R787XMSn0wg0r75IvYD7M/PCpTA==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.156.tgz", - "integrity": "sha512-G0H2zJKIWsUx9+QpontN1Rlm2g+pLuaFzHDeULRYnxEyZl2tUcvi2TuKi3imjpr26xBx9Zesz9vSThmwU9Ll2A==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.157.tgz", + "integrity": "sha512-HooyX9OgnB7bCr1M5OxidC1ynbrGIMVYwiUBqIGLcUMDZT0JNnPOwI+sjOClEAPEDgipZJY+foe22k2Jz37CRw==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.156.tgz", - "integrity": "sha512-S9PsqcVgG10plsoWDGAUjoH0GbM8t9PR1JFx+sAHY1JKUxSW4iwMZDGTzIrIRO3agTMZLgpoLG/LV+1Ljcrr+Q==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.157.tgz", + "integrity": "sha512-Y1HotTdblrRr2fN/oJzP2FhSWemBBzEriVYvi+29C5GekvbpnR6hZLPI+dllaHgpNk4X+METdqb2MudR9aV/Hw==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.156.tgz", - "integrity": "sha512-nQP/c4tvxlyCQXSByNhS4lCxSCJZ/FrCbEv5l0tAcMKdO21fYSHduAvAisQAMfyTZHCL+2ubTeWV0pd8P432Ug==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.157.tgz", + "integrity": "sha512-nDnIsyWDoGsroWY+whtopv/+GhZv8wSz6D/pnpCYYO+k5Blctr1zlpRQubPyi+i+yiJICdW/I40X/Ck9bH2ZNA==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.156.tgz", - "integrity": "sha512-kRSCfVWfvukxvOFWGts1u+qoRYUbw5Hlqty0PG3/lVoDM6pu6wK4TZEEERLbUuN7TDWKbpEchpG01kGtW/g9Cg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.157.tgz", + "integrity": "sha512-BZ78UbVwEHmSc7P5h4oNYh21vw/zNtMdyanYWMfCAahJ/Yu6EU4S3AdtTnJPraKzG2U3GaChI2//LtpTrBomAg==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.156.tgz", - "integrity": "sha512-SowJYHa2NjVCkPdg004npZj6bMdQel74G6DUD9zl8tw8QV9MLRTgp0cg6EJZdBTSjQ3M79HQYIB4cMGjm1qbJA==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.157.tgz", + "integrity": "sha512-e6PY+LfDRzuaqs1tUBVgAbeFQpeX+qO0+anmMQ9hjF/y0zp6zjVdCOG5LLbcLIheduhSxmEWrKYbqEP0PYoraQ==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.156.tgz", - "integrity": "sha512-qcP4xn9NDm4BkZvLDeSdRfbSUrTG87Usb0ZVtoW6L2cXBZtaOWSS62s1eALUQDDehA/HpB4qgwVFUdvzHwx8qg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.157.tgz", + "integrity": "sha512-PErxgvgVXxy7n37276/FncxLAncY7xu/bubGutkhTZBfGarKBHW6pc3lZZURoXNREgYfxM0gTtj5nNh+Qzt/TQ==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.156.tgz", - "integrity": "sha512-l6xzgNuKB6QQYxWNMDTNVAnle/mNk35AgD83otiKoL23o8m0gxExm8OQbd0HEi/Wf6BrPl3rlxsGpYWvOJHztQ==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.157.tgz", + "integrity": "sha512-vRUAE9LWBsNLt/BQ+LoKj5Wfau/Wbc6yaLn5mw+saXfZ0uYAJELcnYvs/aVuhjB9MKrNnY3LZgqMHXSgRIZqlw==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.156.tgz", - "integrity": "sha512-og3lIrHcQY0Fjxdt5LLMvUqYn1EbqrWFhpn5S9b3M5hkQO+rbZZulONWdHT0xmRzuPvyeK7ZEyLdzItWEeym8A==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.157.tgz", + "integrity": "sha512-PGjCYSM/3hO1L5TcnKFqw46nEAF95NAEjC3hQcyQzFg7gCzWpqMn73PdfYS2AD6EosUF75qK0f2gnYB53t5NRg==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.156.tgz", - "integrity": "sha512-08TMu53hImO8SlQmaElRQEr7z8TTtdXl9/18ZnHv1jcAIEk/5BdP8SeQaTtf2l3uQjdKdZWFZrAK12Jek4pe9w==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.157.tgz", + "integrity": "sha512-NfmXuY52ZLZo4/JzUlS1w3eSXOwY8/rQZjRenoahoeNckPNwyRKtVbIRk0nVbHa8QrIikApN01dZT5xEU8/A2g==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.156.tgz", - "integrity": "sha512-oLfkNd+SN8gWKaT9i0awbagq2oYyLqw8GhU3bZmMI1Ssx2u2IBA1mW07LPAnXsKNEGqnayc6cY0pyCN4IVEgLQ==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.157.tgz", + "integrity": "sha512-+6eYjMpnXsbNQb3JW5Uz8mcjqV77mwovZ4ccqZGiT1QbEBh0oR+81fVjAMwEpgU0qfPCQzKKv5o1TbakhU4GZA==", "cpu": [ "x64" ], @@ -2922,101 +2922,101 @@ } }, "@swc/core": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.156.tgz", - "integrity": "sha512-icEIxirqpbKXX7tESdfBpa7XdpX0pSWtREfhWgWHXsWiSiOjQ4Vij4fAAdIOOXxm1amCCKjr6bThOIiA0dtTug==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.157.tgz", + "integrity": "sha512-l2m/KTDJnb6614jI9e2bJkjComiiZfgzx3vAPgm0kBfw4pP3sukL/y9yxJujkZYMv+CLqLwX7N0RkR7BHfayYA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.156", - "@swc/core-android-arm64": "1.2.156", - "@swc/core-darwin-arm64": "1.2.156", - "@swc/core-darwin-x64": "1.2.156", - "@swc/core-freebsd-x64": "1.2.156", - "@swc/core-linux-arm-gnueabihf": "1.2.156", - "@swc/core-linux-arm64-gnu": "1.2.156", - "@swc/core-linux-arm64-musl": "1.2.156", - "@swc/core-linux-x64-gnu": "1.2.156", - "@swc/core-linux-x64-musl": "1.2.156", - "@swc/core-win32-arm64-msvc": "1.2.156", - "@swc/core-win32-ia32-msvc": "1.2.156", - "@swc/core-win32-x64-msvc": "1.2.156" + "@swc/core-android-arm-eabi": "1.2.157", + "@swc/core-android-arm64": "1.2.157", + "@swc/core-darwin-arm64": "1.2.157", + "@swc/core-darwin-x64": "1.2.157", + "@swc/core-freebsd-x64": "1.2.157", + "@swc/core-linux-arm-gnueabihf": "1.2.157", + "@swc/core-linux-arm64-gnu": "1.2.157", + "@swc/core-linux-arm64-musl": "1.2.157", + "@swc/core-linux-x64-gnu": "1.2.157", + "@swc/core-linux-x64-musl": "1.2.157", + "@swc/core-win32-arm64-msvc": "1.2.157", + "@swc/core-win32-ia32-msvc": "1.2.157", + "@swc/core-win32-x64-msvc": "1.2.157" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.156.tgz", - "integrity": "sha512-epFJaBn/tqWxtprFucJfbJgRtCoamKUO2vxQ1VYp69VTQ78cF4kdizoxjlHjt4ZMZ+Y4AKULAtwqs4zDrQIxXg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.157.tgz", + "integrity": "sha512-n0AlbqYA0Ti7pSiKlCohy1GYjL5JpKUkDQW6vrBZoU8bdkoOaHWMlem4IdnaLtPpgWuxJdSnWcyR8osK9XgppA==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.156.tgz", - "integrity": "sha512-gdGjd0GuAoBPJvKAbSwnzbvBBHvmmHjETH7hoTUxRlmB1QETrI7AnM3RZ75l6HtHu+RjgsiuBk2yiHbic1Hh7Q==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.157.tgz", + "integrity": "sha512-pRmiFBXx2vMC4oXYGtf+ttwreJMK61Ikbaq99nyaRYzuhQpUa/M06v+tqwdskmehhMMGZHjL2ZylEU95iJWz0w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.156.tgz", - "integrity": "sha512-kFnWPrxOfIIYRqv8DCGOT8KsMPgbblLJQ45TKT1wCkCsQ3xmujC86XZMWx7xyYmDd+V6QbfawLBJvb4Pq4jvFw==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.157.tgz", + "integrity": "sha512-2KiufwT79hsXOb1eToZBRER/nmKEVs5Ap5kwiUN5jmD23PVmxAqLFPO8Bj1R787XMSn0wg0r75IvYD7M/PCpTA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.156.tgz", - "integrity": "sha512-G0H2zJKIWsUx9+QpontN1Rlm2g+pLuaFzHDeULRYnxEyZl2tUcvi2TuKi3imjpr26xBx9Zesz9vSThmwU9Ll2A==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.157.tgz", + "integrity": "sha512-HooyX9OgnB7bCr1M5OxidC1ynbrGIMVYwiUBqIGLcUMDZT0JNnPOwI+sjOClEAPEDgipZJY+foe22k2Jz37CRw==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.156.tgz", - "integrity": "sha512-S9PsqcVgG10plsoWDGAUjoH0GbM8t9PR1JFx+sAHY1JKUxSW4iwMZDGTzIrIRO3agTMZLgpoLG/LV+1Ljcrr+Q==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.157.tgz", + "integrity": "sha512-Y1HotTdblrRr2fN/oJzP2FhSWemBBzEriVYvi+29C5GekvbpnR6hZLPI+dllaHgpNk4X+METdqb2MudR9aV/Hw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.156.tgz", - "integrity": "sha512-nQP/c4tvxlyCQXSByNhS4lCxSCJZ/FrCbEv5l0tAcMKdO21fYSHduAvAisQAMfyTZHCL+2ubTeWV0pd8P432Ug==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.157.tgz", + "integrity": "sha512-nDnIsyWDoGsroWY+whtopv/+GhZv8wSz6D/pnpCYYO+k5Blctr1zlpRQubPyi+i+yiJICdW/I40X/Ck9bH2ZNA==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.156.tgz", - "integrity": "sha512-kRSCfVWfvukxvOFWGts1u+qoRYUbw5Hlqty0PG3/lVoDM6pu6wK4TZEEERLbUuN7TDWKbpEchpG01kGtW/g9Cg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.157.tgz", + "integrity": "sha512-BZ78UbVwEHmSc7P5h4oNYh21vw/zNtMdyanYWMfCAahJ/Yu6EU4S3AdtTnJPraKzG2U3GaChI2//LtpTrBomAg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.156.tgz", - "integrity": "sha512-SowJYHa2NjVCkPdg004npZj6bMdQel74G6DUD9zl8tw8QV9MLRTgp0cg6EJZdBTSjQ3M79HQYIB4cMGjm1qbJA==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.157.tgz", + "integrity": "sha512-e6PY+LfDRzuaqs1tUBVgAbeFQpeX+qO0+anmMQ9hjF/y0zp6zjVdCOG5LLbcLIheduhSxmEWrKYbqEP0PYoraQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.156.tgz", - "integrity": "sha512-qcP4xn9NDm4BkZvLDeSdRfbSUrTG87Usb0ZVtoW6L2cXBZtaOWSS62s1eALUQDDehA/HpB4qgwVFUdvzHwx8qg==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.157.tgz", + "integrity": "sha512-PErxgvgVXxy7n37276/FncxLAncY7xu/bubGutkhTZBfGarKBHW6pc3lZZURoXNREgYfxM0gTtj5nNh+Qzt/TQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.156.tgz", - "integrity": "sha512-l6xzgNuKB6QQYxWNMDTNVAnle/mNk35AgD83otiKoL23o8m0gxExm8OQbd0HEi/Wf6BrPl3rlxsGpYWvOJHztQ==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.157.tgz", + "integrity": "sha512-vRUAE9LWBsNLt/BQ+LoKj5Wfau/Wbc6yaLn5mw+saXfZ0uYAJELcnYvs/aVuhjB9MKrNnY3LZgqMHXSgRIZqlw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.156.tgz", - "integrity": "sha512-og3lIrHcQY0Fjxdt5LLMvUqYn1EbqrWFhpn5S9b3M5hkQO+rbZZulONWdHT0xmRzuPvyeK7ZEyLdzItWEeym8A==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.157.tgz", + "integrity": "sha512-PGjCYSM/3hO1L5TcnKFqw46nEAF95NAEjC3hQcyQzFg7gCzWpqMn73PdfYS2AD6EosUF75qK0f2gnYB53t5NRg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.156.tgz", - "integrity": "sha512-08TMu53hImO8SlQmaElRQEr7z8TTtdXl9/18ZnHv1jcAIEk/5BdP8SeQaTtf2l3uQjdKdZWFZrAK12Jek4pe9w==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.157.tgz", + "integrity": "sha512-NfmXuY52ZLZo4/JzUlS1w3eSXOwY8/rQZjRenoahoeNckPNwyRKtVbIRk0nVbHa8QrIikApN01dZT5xEU8/A2g==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.156", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.156.tgz", - "integrity": "sha512-oLfkNd+SN8gWKaT9i0awbagq2oYyLqw8GhU3bZmMI1Ssx2u2IBA1mW07LPAnXsKNEGqnayc6cY0pyCN4IVEgLQ==", + "version": "1.2.157", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.157.tgz", + "integrity": "sha512-+6eYjMpnXsbNQb3JW5Uz8mcjqV77mwovZ4ccqZGiT1QbEBh0oR+81fVjAMwEpgU0qfPCQzKKv5o1TbakhU4GZA==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 60c051bf3..873e694a5 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.156", + "@swc/core": "^1.2.157", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From e7cc0bb8875850265e44833efc6ae4098c21722c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Mar 2022 19:12:10 +0900 Subject: [PATCH 172/411] chore(deps): bump youtubei from 0.0.1-rc.31 to 0.0.1-rc.32 (#828) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ec27d2de..34557129a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.31" + "youtubei": "^0.0.1-rc.32" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", @@ -2751,9 +2751,9 @@ } }, "node_modules/youtubei": { - "version": "0.0.1-rc.31", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.31.tgz", - "integrity": "sha512-bdNJ8uRcvz3Llp/14NdRKoy5XE2TtfsYuDHljF8zm2ExnpmIC9QwsAZ41KmA9Le4lg0aPCMB0BY7njKlORDg0A==" + "version": "0.0.1-rc.32", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", + "integrity": "sha512-CzqsEE5ghK9j6sUKmXhNGZOX1GNapBNjDcvOWq6Rn3JDppcbr3IvTvZ9ECqfEHryxxLtSg/ma+tRFjVqBpeRcg==" }, "node_modules/zod": { "version": "3.11.6", @@ -4611,9 +4611,9 @@ } }, "youtubei": { - "version": "0.0.1-rc.31", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.31.tgz", - "integrity": "sha512-bdNJ8uRcvz3Llp/14NdRKoy5XE2TtfsYuDHljF8zm2ExnpmIC9QwsAZ41KmA9Le4lg0aPCMB0BY7njKlORDg0A==" + "version": "0.0.1-rc.32", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", + "integrity": "sha512-CzqsEE5ghK9j6sUKmXhNGZOX1GNapBNjDcvOWq6Rn3JDppcbr3IvTvZ9ECqfEHryxxLtSg/ma+tRFjVqBpeRcg==" }, "zod": { "version": "3.11.6", diff --git a/package.json b/package.json index 873e694a5..682d5e259 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.31" + "youtubei": "^0.0.1-rc.32" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", From 860193df11858b241df9a1b2f65ea7027d579cd0 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Mar 2022 19:36:54 +0900 Subject: [PATCH 173/411] chore: update lockfile --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 5ec27d2de..d0211305a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From e423d674bfe222115229fab40538b3ab7de014f8 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Mar 2022 21:33:46 +0900 Subject: [PATCH 174/411] chore(env_example): add REPL option --- .env_example | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.env_example b/.env_example index 2ee99f454..839614eb3 100644 --- a/.env_example +++ b/.env_example @@ -129,3 +129,10 @@ NO_EMOJI="" # Default: no DEBUG_MODE="" +#============================================================================== +# OPTIONAL, DEV - Do you want to enable REPL feature? +# You can eval code from the console using this feature. +# REPL included with `shardManager` variable containing the ShardManager of the bot. +# Example: ENABLE_REPL="no" +# Default: no +REPL="" From f1634e994e63eab3b7bef72d6c1385f05d535ec9 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Mar 2022 21:34:08 +0900 Subject: [PATCH 175/411] feat(config/env): add enableRepl property --- src/config/env.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/config/env.ts b/src/config/env.ts index c8e316880..8d0cff8f8 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -8,6 +8,7 @@ export const enableSlashCommand = process.env.ENABLE_SLASH_COMMAND?.toLowerCase( export const is247Allowed = process.env.ENABLE_24_7_COMMAND?.toLowerCase() === "yes"; export const isDev = process.env.NODE_ENV?.toLowerCase() === "development"; export const debugMode = process.env.DEBUG_MODE?.toLowerCase() === "yes"; +export const enableRepl = process.env.REPL?.toLowerCase() === "yes"; export const isProd = !isDev; // String values From 9535f85eb1235ffe3d5213c51788e8e74df161d6 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 19 Mar 2022 21:34:22 +0900 Subject: [PATCH 176/411] feat(index): add REPL feature --- src/index.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 3cbc5b85f..a5cd6d1fb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,9 @@ import { importURLToString } from "./utils/functions/importURLToString"; -import { isProd, shardingMode, shardsCount } from "./config"; +import { enableRepl, isProd, shardingMode, shardsCount } from "./config"; import { RawonLogger } from "./utils/structures/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; +import { start } from "repl"; import "dotenv/config"; const log = new RawonLogger({ prod: isProd }); @@ -14,6 +15,20 @@ const manager = new ShardingManager(resolve(importURLToString(import.meta.url), mode: shardingMode }); +if (enableRepl) { + const repl = start({ + prompt: "> " + }); + + repl.context.shardManager = manager; + process.stdin.on("data", _ => { + repl.displayPrompt(true); + }); + repl.on("exit", () => { + process.exit(); + }); +} + manager.on("shardCreate", shard => { log.info(`[ShardManager] Shard #${shard.id} Spawned.`); shard.on("disconnect", () => { From 960969f8889a7f58320852463a926b13960cd78a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 08:18:51 +0700 Subject: [PATCH 177/411] chore(deps): bump @swc/core from 1.2.157 to 1.2.159 (#829) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.157 to 1.2.159. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.157...v1.2.159) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 13dfbb5a9..7c61782f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.157", + "@swc/core": "^1.2.159", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.157.tgz", - "integrity": "sha512-l2m/KTDJnb6614jI9e2bJkjComiiZfgzx3vAPgm0kBfw4pP3sukL/y9yxJujkZYMv+CLqLwX7N0RkR7BHfayYA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.159.tgz", + "integrity": "sha512-y+z+c4IelqaxvpQrc8hYdEpuvP1BVS9Fe5t8P8/yyP1oSrJkrLibROX4dHujg4EekFQhPCUjA29NawC4D08IQA==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.157", - "@swc/core-android-arm64": "1.2.157", - "@swc/core-darwin-arm64": "1.2.157", - "@swc/core-darwin-x64": "1.2.157", - "@swc/core-freebsd-x64": "1.2.157", - "@swc/core-linux-arm-gnueabihf": "1.2.157", - "@swc/core-linux-arm64-gnu": "1.2.157", - "@swc/core-linux-arm64-musl": "1.2.157", - "@swc/core-linux-x64-gnu": "1.2.157", - "@swc/core-linux-x64-musl": "1.2.157", - "@swc/core-win32-arm64-msvc": "1.2.157", - "@swc/core-win32-ia32-msvc": "1.2.157", - "@swc/core-win32-x64-msvc": "1.2.157" + "@swc/core-android-arm-eabi": "1.2.159", + "@swc/core-android-arm64": "1.2.159", + "@swc/core-darwin-arm64": "1.2.159", + "@swc/core-darwin-x64": "1.2.159", + "@swc/core-freebsd-x64": "1.2.159", + "@swc/core-linux-arm-gnueabihf": "1.2.159", + "@swc/core-linux-arm64-gnu": "1.2.159", + "@swc/core-linux-arm64-musl": "1.2.159", + "@swc/core-linux-x64-gnu": "1.2.159", + "@swc/core-linux-x64-musl": "1.2.159", + "@swc/core-win32-arm64-msvc": "1.2.159", + "@swc/core-win32-ia32-msvc": "1.2.159", + "@swc/core-win32-x64-msvc": "1.2.159" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.157.tgz", - "integrity": "sha512-n0AlbqYA0Ti7pSiKlCohy1GYjL5JpKUkDQW6vrBZoU8bdkoOaHWMlem4IdnaLtPpgWuxJdSnWcyR8osK9XgppA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.159.tgz", + "integrity": "sha512-OIHGUjHIgow0TRWQpoKzAKAzdOmZPK/aVSkctWdMJvAc0Oj6yxlj35UfOtdifJJxRej/KEMZpFeQTJ69ezycuQ==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.157.tgz", - "integrity": "sha512-pRmiFBXx2vMC4oXYGtf+ttwreJMK61Ikbaq99nyaRYzuhQpUa/M06v+tqwdskmehhMMGZHjL2ZylEU95iJWz0w==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.159.tgz", + "integrity": "sha512-zKMq4/a62usmD+CTEpyNNN57LBGHJMK2s2KDcU7Vu/tHoHKGkFYQi7PYBw3t6+tCyPfwoo20NONOiYZv6dm36Q==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.157.tgz", - "integrity": "sha512-2KiufwT79hsXOb1eToZBRER/nmKEVs5Ap5kwiUN5jmD23PVmxAqLFPO8Bj1R787XMSn0wg0r75IvYD7M/PCpTA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.159.tgz", + "integrity": "sha512-vZJmK7Baph2UCUIrArEt4RxnvK87OF8TSUe8VNgYPIFtoCEA6ttKXnndCI5kUKPvakpAg4NoHs1mm/x7gVZVVQ==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.157.tgz", - "integrity": "sha512-HooyX9OgnB7bCr1M5OxidC1ynbrGIMVYwiUBqIGLcUMDZT0JNnPOwI+sjOClEAPEDgipZJY+foe22k2Jz37CRw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.159.tgz", + "integrity": "sha512-hhJ336eq9QMv8PTnrCfY99xhdf8LH8RquLLfVV+XwbeXGF23fJJrsjQgv9rTC5aadIh6AxR2cHgCm4CGU/Xs0w==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.157.tgz", - "integrity": "sha512-Y1HotTdblrRr2fN/oJzP2FhSWemBBzEriVYvi+29C5GekvbpnR6hZLPI+dllaHgpNk4X+METdqb2MudR9aV/Hw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.159.tgz", + "integrity": "sha512-ZwJcA38AEmQp4OCkYOZD/5FjSU1VEMX/iMISEGUwDEE7d4CypFFP3mCpk5JAVEWJIhdYjgfo2SY8v9PfoSmBDg==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.157.tgz", - "integrity": "sha512-nDnIsyWDoGsroWY+whtopv/+GhZv8wSz6D/pnpCYYO+k5Blctr1zlpRQubPyi+i+yiJICdW/I40X/Ck9bH2ZNA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.159.tgz", + "integrity": "sha512-M1QF8BBrbuXkw+T8U4xjMhGvjog83pA40PfZknGk+czQFJcNo4mq5hxMPalRbLN6olMoZNI6EM5a6zSocoDXEg==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.157.tgz", - "integrity": "sha512-BZ78UbVwEHmSc7P5h4oNYh21vw/zNtMdyanYWMfCAahJ/Yu6EU4S3AdtTnJPraKzG2U3GaChI2//LtpTrBomAg==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.159.tgz", + "integrity": "sha512-1uCMSEfzXtJHnuQoYHuHvzmBQ4/YlEcPydRMpc8/nO/svRGAHUZPKIz887tNk0nVtlF4Kil/LTrG+Wqxrp9z7A==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.157.tgz", - "integrity": "sha512-e6PY+LfDRzuaqs1tUBVgAbeFQpeX+qO0+anmMQ9hjF/y0zp6zjVdCOG5LLbcLIheduhSxmEWrKYbqEP0PYoraQ==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.159.tgz", + "integrity": "sha512-FE+LyayWD55ESq0bV40x+Lmse7UyI/hhfrO/wvEs3v97z+fRhzPvcPAw38MoW2DVazPw3GotuBIf6Y5XkFO+fg==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.157.tgz", - "integrity": "sha512-PErxgvgVXxy7n37276/FncxLAncY7xu/bubGutkhTZBfGarKBHW6pc3lZZURoXNREgYfxM0gTtj5nNh+Qzt/TQ==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.159.tgz", + "integrity": "sha512-O7pH2A+ENjCuvMuKjv6UoIBsmwAbrTi+45WFL1snqCDZw+4p3WutFUSlhEW72uI6CEdb4kfZG0lajW2/Qbkuvg==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.157.tgz", - "integrity": "sha512-vRUAE9LWBsNLt/BQ+LoKj5Wfau/Wbc6yaLn5mw+saXfZ0uYAJELcnYvs/aVuhjB9MKrNnY3LZgqMHXSgRIZqlw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.159.tgz", + "integrity": "sha512-Se1EccOiN4h8/SaTZFVp7VoSUNR7ENmAmpVNROKnfZGb589THpLlC5MZtp5EFYDaLjpLHypVeqw0OO4tgwsL4w==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.157.tgz", - "integrity": "sha512-PGjCYSM/3hO1L5TcnKFqw46nEAF95NAEjC3hQcyQzFg7gCzWpqMn73PdfYS2AD6EosUF75qK0f2gnYB53t5NRg==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.159.tgz", + "integrity": "sha512-nKv1ksT3+V3xhPRXFr5Eeg0b93dqpGzKIoC13WwC0jRYbD0/SZwwcTU/XUZcm4MWQI8CG+PwwhO3SLMo747eqw==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.157.tgz", - "integrity": "sha512-NfmXuY52ZLZo4/JzUlS1w3eSXOwY8/rQZjRenoahoeNckPNwyRKtVbIRk0nVbHa8QrIikApN01dZT5xEU8/A2g==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.159.tgz", + "integrity": "sha512-24khotmSwFF2rEUeXPdqaTSOrIylroEx8MfuyG1BxfYfol+B9QyG8YqDyz713YM9dJYgs7JKuSfkK8qGQ2MbYA==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.157.tgz", - "integrity": "sha512-+6eYjMpnXsbNQb3JW5Uz8mcjqV77mwovZ4ccqZGiT1QbEBh0oR+81fVjAMwEpgU0qfPCQzKKv5o1TbakhU4GZA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.159.tgz", + "integrity": "sha512-Z/hcfe1DRcOQgnxZcnYy8d4lxZi1IHI2FeeRwDWtKn28cSaPca1acZVb4qA0hSfqsftKo0zTgLro6oh9gWxFng==", "cpu": [ "x64" ], @@ -2921,101 +2921,101 @@ } }, "@swc/core": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.157.tgz", - "integrity": "sha512-l2m/KTDJnb6614jI9e2bJkjComiiZfgzx3vAPgm0kBfw4pP3sukL/y9yxJujkZYMv+CLqLwX7N0RkR7BHfayYA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.159.tgz", + "integrity": "sha512-y+z+c4IelqaxvpQrc8hYdEpuvP1BVS9Fe5t8P8/yyP1oSrJkrLibROX4dHujg4EekFQhPCUjA29NawC4D08IQA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.157", - "@swc/core-android-arm64": "1.2.157", - "@swc/core-darwin-arm64": "1.2.157", - "@swc/core-darwin-x64": "1.2.157", - "@swc/core-freebsd-x64": "1.2.157", - "@swc/core-linux-arm-gnueabihf": "1.2.157", - "@swc/core-linux-arm64-gnu": "1.2.157", - "@swc/core-linux-arm64-musl": "1.2.157", - "@swc/core-linux-x64-gnu": "1.2.157", - "@swc/core-linux-x64-musl": "1.2.157", - "@swc/core-win32-arm64-msvc": "1.2.157", - "@swc/core-win32-ia32-msvc": "1.2.157", - "@swc/core-win32-x64-msvc": "1.2.157" + "@swc/core-android-arm-eabi": "1.2.159", + "@swc/core-android-arm64": "1.2.159", + "@swc/core-darwin-arm64": "1.2.159", + "@swc/core-darwin-x64": "1.2.159", + "@swc/core-freebsd-x64": "1.2.159", + "@swc/core-linux-arm-gnueabihf": "1.2.159", + "@swc/core-linux-arm64-gnu": "1.2.159", + "@swc/core-linux-arm64-musl": "1.2.159", + "@swc/core-linux-x64-gnu": "1.2.159", + "@swc/core-linux-x64-musl": "1.2.159", + "@swc/core-win32-arm64-msvc": "1.2.159", + "@swc/core-win32-ia32-msvc": "1.2.159", + "@swc/core-win32-x64-msvc": "1.2.159" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.157.tgz", - "integrity": "sha512-n0AlbqYA0Ti7pSiKlCohy1GYjL5JpKUkDQW6vrBZoU8bdkoOaHWMlem4IdnaLtPpgWuxJdSnWcyR8osK9XgppA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.159.tgz", + "integrity": "sha512-OIHGUjHIgow0TRWQpoKzAKAzdOmZPK/aVSkctWdMJvAc0Oj6yxlj35UfOtdifJJxRej/KEMZpFeQTJ69ezycuQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.157.tgz", - "integrity": "sha512-pRmiFBXx2vMC4oXYGtf+ttwreJMK61Ikbaq99nyaRYzuhQpUa/M06v+tqwdskmehhMMGZHjL2ZylEU95iJWz0w==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.159.tgz", + "integrity": "sha512-zKMq4/a62usmD+CTEpyNNN57LBGHJMK2s2KDcU7Vu/tHoHKGkFYQi7PYBw3t6+tCyPfwoo20NONOiYZv6dm36Q==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.157.tgz", - "integrity": "sha512-2KiufwT79hsXOb1eToZBRER/nmKEVs5Ap5kwiUN5jmD23PVmxAqLFPO8Bj1R787XMSn0wg0r75IvYD7M/PCpTA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.159.tgz", + "integrity": "sha512-vZJmK7Baph2UCUIrArEt4RxnvK87OF8TSUe8VNgYPIFtoCEA6ttKXnndCI5kUKPvakpAg4NoHs1mm/x7gVZVVQ==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.157.tgz", - "integrity": "sha512-HooyX9OgnB7bCr1M5OxidC1ynbrGIMVYwiUBqIGLcUMDZT0JNnPOwI+sjOClEAPEDgipZJY+foe22k2Jz37CRw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.159.tgz", + "integrity": "sha512-hhJ336eq9QMv8PTnrCfY99xhdf8LH8RquLLfVV+XwbeXGF23fJJrsjQgv9rTC5aadIh6AxR2cHgCm4CGU/Xs0w==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.157.tgz", - "integrity": "sha512-Y1HotTdblrRr2fN/oJzP2FhSWemBBzEriVYvi+29C5GekvbpnR6hZLPI+dllaHgpNk4X+METdqb2MudR9aV/Hw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.159.tgz", + "integrity": "sha512-ZwJcA38AEmQp4OCkYOZD/5FjSU1VEMX/iMISEGUwDEE7d4CypFFP3mCpk5JAVEWJIhdYjgfo2SY8v9PfoSmBDg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.157.tgz", - "integrity": "sha512-nDnIsyWDoGsroWY+whtopv/+GhZv8wSz6D/pnpCYYO+k5Blctr1zlpRQubPyi+i+yiJICdW/I40X/Ck9bH2ZNA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.159.tgz", + "integrity": "sha512-M1QF8BBrbuXkw+T8U4xjMhGvjog83pA40PfZknGk+czQFJcNo4mq5hxMPalRbLN6olMoZNI6EM5a6zSocoDXEg==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.157.tgz", - "integrity": "sha512-BZ78UbVwEHmSc7P5h4oNYh21vw/zNtMdyanYWMfCAahJ/Yu6EU4S3AdtTnJPraKzG2U3GaChI2//LtpTrBomAg==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.159.tgz", + "integrity": "sha512-1uCMSEfzXtJHnuQoYHuHvzmBQ4/YlEcPydRMpc8/nO/svRGAHUZPKIz887tNk0nVtlF4Kil/LTrG+Wqxrp9z7A==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.157.tgz", - "integrity": "sha512-e6PY+LfDRzuaqs1tUBVgAbeFQpeX+qO0+anmMQ9hjF/y0zp6zjVdCOG5LLbcLIheduhSxmEWrKYbqEP0PYoraQ==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.159.tgz", + "integrity": "sha512-FE+LyayWD55ESq0bV40x+Lmse7UyI/hhfrO/wvEs3v97z+fRhzPvcPAw38MoW2DVazPw3GotuBIf6Y5XkFO+fg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.157.tgz", - "integrity": "sha512-PErxgvgVXxy7n37276/FncxLAncY7xu/bubGutkhTZBfGarKBHW6pc3lZZURoXNREgYfxM0gTtj5nNh+Qzt/TQ==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.159.tgz", + "integrity": "sha512-O7pH2A+ENjCuvMuKjv6UoIBsmwAbrTi+45WFL1snqCDZw+4p3WutFUSlhEW72uI6CEdb4kfZG0lajW2/Qbkuvg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.157.tgz", - "integrity": "sha512-vRUAE9LWBsNLt/BQ+LoKj5Wfau/Wbc6yaLn5mw+saXfZ0uYAJELcnYvs/aVuhjB9MKrNnY3LZgqMHXSgRIZqlw==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.159.tgz", + "integrity": "sha512-Se1EccOiN4h8/SaTZFVp7VoSUNR7ENmAmpVNROKnfZGb589THpLlC5MZtp5EFYDaLjpLHypVeqw0OO4tgwsL4w==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.157.tgz", - "integrity": "sha512-PGjCYSM/3hO1L5TcnKFqw46nEAF95NAEjC3hQcyQzFg7gCzWpqMn73PdfYS2AD6EosUF75qK0f2gnYB53t5NRg==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.159.tgz", + "integrity": "sha512-nKv1ksT3+V3xhPRXFr5Eeg0b93dqpGzKIoC13WwC0jRYbD0/SZwwcTU/XUZcm4MWQI8CG+PwwhO3SLMo747eqw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.157.tgz", - "integrity": "sha512-NfmXuY52ZLZo4/JzUlS1w3eSXOwY8/rQZjRenoahoeNckPNwyRKtVbIRk0nVbHa8QrIikApN01dZT5xEU8/A2g==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.159.tgz", + "integrity": "sha512-24khotmSwFF2rEUeXPdqaTSOrIylroEx8MfuyG1BxfYfol+B9QyG8YqDyz713YM9dJYgs7JKuSfkK8qGQ2MbYA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.157", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.157.tgz", - "integrity": "sha512-+6eYjMpnXsbNQb3JW5Uz8mcjqV77mwovZ4ccqZGiT1QbEBh0oR+81fVjAMwEpgU0qfPCQzKKv5o1TbakhU4GZA==", + "version": "1.2.159", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.159.tgz", + "integrity": "sha512-Z/hcfe1DRcOQgnxZcnYy8d4lxZi1IHI2FeeRwDWtKn28cSaPca1acZVb4qA0hSfqsftKo0zTgLro6oh9gWxFng==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 682d5e259..4f8f303df 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.55", - "@swc/core": "^1.2.157", + "@swc/core": "^1.2.159", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From f84ae3819396ee539c91dccae3f90443d021c208 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 20:56:24 +0700 Subject: [PATCH 178/411] chore(deps-dev): bump @typescript-eslint/parser from 5.15.0 to 5.16.0 (#831) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.15.0 to 5.16.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.16.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 94 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7c61782f7..8bfd005bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.15.0", + "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", "typescript": "^4.5.5" }, @@ -615,14 +615,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "debug": "^4.3.2" }, "engines": { @@ -642,13 +642,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -659,9 +659,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -672,13 +672,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -699,12 +699,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.16.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3122,41 +3122,41 @@ } }, "@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "debug": "^4.3.2" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" } }, "@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3165,12 +3165,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.16.0", "eslint-visitor-keys": "^3.0.0" } } diff --git a/package.json b/package.json index 4f8f303df..202392d73 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.15.0", + "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", "typescript": "^4.5.5" }, From 45c43f11dde64c67dc91de600234114408b721b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 13:58:50 +0000 Subject: [PATCH 179/411] chore(deps-dev): bump @types/node from 17.0.21 to 17.0.22 (#834) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.21 to 17.0.22. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bfd005bc..240c42269 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.21", + "@types/node": "^17.0.22", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", + "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -3063,9 +3063,9 @@ } }, "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", + "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 202392d73..c478ff3a7 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.21", + "@types/node": "^17.0.22", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", From 94527f66ce921e04b932d277f501195b7ce2a336 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 14:01:23 +0000 Subject: [PATCH 180/411] chore(deps): bump @swc/cli from 0.1.55 to 0.1.56 (#833) Bumps [@swc/cli](https://github.com/swc-project/cli) from 0.1.55 to 0.1.56. - [Release notes](https://github.com/swc-project/cli/releases) - [Commits](https://github.com/swc-project/cli/compare/v0.1.55...v0.1.56) --- updated-dependencies: - dependency-name: "@swc/cli" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 240c42269..39d41bdad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "license": "BSD-3-Clause", "dependencies": { "@discordjs/voice": "^0.8.0", - "@swc/cli": "^0.1.55", + "@swc/cli": "^0.1.56", "@swc/core": "^1.2.159", "date-fns": "^2.28.0", "discord.js": "^13.6.0", @@ -240,9 +240,9 @@ } }, "node_modules/@swc/cli": { - "version": "0.1.55", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.55.tgz", - "integrity": "sha512-akkLuRexFq8XTi6JNZ27mXD4wcKXLDSLj4g7YMU+/upFM8IeD1IEp1Mxtre7MzCZn+QOQgPF8N8IReJoHuSn3g==", + "version": "0.1.56", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.56.tgz", + "integrity": "sha512-CFQzS271l9LfLg8JwtN4l/ZNDbdcoS4xbgiRwh7Oxx2sRxWxE/6fJRTzXHw7Z2TDuyYtx+D0vwjyjulbePmTeg==", "dependencies": { "commander": "^7.1.0", "fast-glob": "^3.2.5", @@ -2910,9 +2910,9 @@ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@swc/cli": { - "version": "0.1.55", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.55.tgz", - "integrity": "sha512-akkLuRexFq8XTi6JNZ27mXD4wcKXLDSLj4g7YMU+/upFM8IeD1IEp1Mxtre7MzCZn+QOQgPF8N8IReJoHuSn3g==", + "version": "0.1.56", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.56.tgz", + "integrity": "sha512-CFQzS271l9LfLg8JwtN4l/ZNDbdcoS4xbgiRwh7Oxx2sRxWxE/6fJRTzXHw7Z2TDuyYtx+D0vwjyjulbePmTeg==", "requires": { "commander": "^7.1.0", "fast-glob": "^3.2.5", diff --git a/package.json b/package.json index c478ff3a7..0ee594e1e 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "@discordjs/voice": "^0.8.0", - "@swc/cli": "^0.1.55", + "@swc/cli": "^0.1.56", "@swc/core": "^1.2.159", "date-fns": "^2.28.0", "discord.js": "^13.6.0", From 239421d305786f3b6bf9d202ca3931577594a17c Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:35:04 +0900 Subject: [PATCH 181/411] style(index): use one-line declaration for functions --- src/index.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/index.ts b/src/index.ts index a5cd6d1fb..a76c92a1f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,20 +21,13 @@ if (enableRepl) { }); repl.context.shardManager = manager; - process.stdin.on("data", _ => { - repl.displayPrompt(true); - }); - repl.on("exit", () => { - process.exit(); - }); + process.stdin.on("data", _ => repl.displayPrompt(true)); + repl.on("exit", () => process.exit()); } manager.on("shardCreate", shard => { log.info(`[ShardManager] Shard #${shard.id} Spawned.`); - shard.on("disconnect", () => { - log.warn("SHARD_DISCONNECTED: ", { stack: `[ShardManager] Shard #${shard.id} has disconnected.` }); - }).on("reconnection", () => { - log.info(`[ShardManager] Shard #${shard.id} has reconnected.`); - }); + shard.on("disconnect", () => log.warn("SHARD_DISCONNECTED: ", { stack: `[ShardManager] Shard #${shard.id} has disconnected.` })) + .on("reconnection", () => log.info(`[ShardManager] Shard #${shard.id} has reconnected.`)); if (manager.shards.size === manager.totalShards) log.info("[ShardManager] All shards are spawned successfully."); }).spawn().catch(e => log.error("SHARD_SPAWN_ERR: ", e)); From 572cbaa7b100f3a93d5c40791e47c41fccd0d8ab Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:37:11 +0900 Subject: [PATCH 182/411] style(bot): better code --- src/bot.ts | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/bot.ts b/src/bot.ts index d1658f7d9..51fbc35ae 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -4,18 +4,15 @@ import { clientOptions } from "./config"; const client = new Rawon(clientOptions); -process.on("exit", code => { - client.logger.info(`NodeJS process exited with code ${code}`); -}); -process.on("uncaughtException", err => { - client.logger.error("UNCAUGHT_EXCEPTION:", err); - client.logger.warn("Uncaught Exception detected, trying to restart..."); - process.exit(1); -}); -process.on("unhandledRejection", reason => { - client.logger.error("UNHANDLED_REJECTION:", (reason as Error).stack ? reason : new NoStackError(reason as string)); -}); -process.on("warning", (...args) => client.logger.warn(...args)); +process + .on("exit", code => client.logger.info(`NodeJS process exited with code ${code}`)) + .on("unhandledRejection", reason => client.logger.error("UNHANDLED_REJECTION:", (reason as Error).stack ? reason : new NoStackError(reason as string))) + .on("warning", (...args) => client.logger.warn(...args)) + .on("uncaughtException", err => { + client.logger.error("UNCAUGHT_EXCEPTION:", err); + client.logger.warn("Uncaught Exception detected, trying to restart..."); + process.exit(1); + }); client.build() .catch(e => client.logger.error("PROMISE_ERR:", e)); From d0b94fbf838d8eb7afed4f57b4bc3c8d8d261e9e Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:47:31 +0900 Subject: [PATCH 183/411] refactor(chunk): shorter code --- src/utils/functions/chunk.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/utils/functions/chunk.ts b/src/utils/functions/chunk.ts index 5647dd4df..3f2fbf137 100644 --- a/src/utils/functions/chunk.ts +++ b/src/utils/functions/chunk.ts @@ -1,12 +1,8 @@ -export function chunk<T>(arr: T[], len: number): T[][]; -export function chunk(arr: string, len: number): string[]; -export function chunk(...args: any[]): any[] { - const [arr, len] = args as [any, number]; - const rest: (typeof arr)[] = []; - - for (let i = 0; i < (arr as string).length; i += len) { - rest.push((arr as string).slice(i, i + len)); +export function chunk<T extends unknown[] | string = string>(arr: T, len: number): T[] { + const res = []; + for (let i = 0; i < arr.length; i += len) { + res.push(arr.slice(i, i + len)); } - return rest; + return res as T[]; } From ee195cb8ac65616ee1c0d6a37447397959b653c4 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:51:22 +0900 Subject: [PATCH 184/411] refactor(importURLToString): shorter code --- src/utils/functions/importURLToString.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/utils/functions/importURLToString.ts b/src/utils/functions/importURLToString.ts index cb3ec56b3..866a95e96 100644 --- a/src/utils/functions/importURLToString.ts +++ b/src/utils/functions/importURLToString.ts @@ -3,10 +3,7 @@ import { platform } from "os"; export function importURLToString(url: string): string { const pathArray = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); - - pathArray.pop(); - - const path = pathArray.join("/"); + const path = pathArray.slice(1).join("/"); return decodeURIComponent(`${platform() === "win32" ? "" : "/"}${path}`); } From 6da63bf811fe5a161c0f40a98ce334f6df6065c0 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:52:45 +0900 Subject: [PATCH 185/411] refactor(pathStringToURLString): shorter code --- src/utils/functions/pathStringToURLString.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/utils/functions/pathStringToURLString.ts b/src/utils/functions/pathStringToURLString.ts index a93e50679..90459e9cf 100644 --- a/src/utils/functions/pathStringToURLString.ts +++ b/src/utils/functions/pathStringToURLString.ts @@ -1,5 +1 @@ -export function pathStringToURLString(path: string): string { - const urlStr = new URL(`file://${path}`).toString(); - - return urlStr; -} +export const pathStringToURLString = (path: string): string => new URL(`file://${path}`).toString(); From 41c4b056847345cd406a0b6d75a8f918c42c39ec Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Thu, 24 Mar 2022 18:54:52 +0900 Subject: [PATCH 186/411] style(handleVideos): sort import declarations --- src/utils/handlers/general/handleVideos.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index ac60fb9d1..28bb8b55c 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -6,10 +6,10 @@ import { createEmbed } from "../../functions/createEmbed"; import { Rawon } from "../../../structures/Rawon"; import { chunk } from "../../functions/chunk"; import { Song } from "../../../typings"; -import { play } from "./play"; import i18n from "../../../config"; -import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; +import { play } from "./play"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; +import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: Song[], voiceChannel: StageChannel | VoiceChannel): Promise<Message | undefined> { const wasIdle = ctx.guild?.queue?.idle; From b03faf8a026d69d808eda8e84819c8178d43fbfc Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 25 Mar 2022 17:09:19 +0900 Subject: [PATCH 187/411] fix(importURLToString): fix wrong slicing --- src/utils/functions/importURLToString.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/functions/importURLToString.ts b/src/utils/functions/importURLToString.ts index 866a95e96..a11076cd5 100644 --- a/src/utils/functions/importURLToString.ts +++ b/src/utils/functions/importURLToString.ts @@ -3,7 +3,7 @@ import { platform } from "os"; export function importURLToString(url: string): string { const pathArray = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); - const path = pathArray.slice(1).join("/"); + const path = pathArray.slice(0, -1).join("/"); return decodeURIComponent(`${platform() === "win32" ? "" : "/"}${path}`); } From edde61ca94cb677a06d1ec71f46fe1b746b0a319 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 25 Mar 2022 19:47:44 +0900 Subject: [PATCH 188/411] feat(Rawon): add debugLog property --- src/structures/Rawon.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 0412bb667..899215637 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -1,4 +1,5 @@ import { importURLToString } from "../utils/functions/importURLToString"; +import { DebugLogManager } from "../utils/structures/DebugLogManager"; import { JSONDataManager } from "../utils/structures/JSONDataManager"; import { CommandManager } from "../utils/structures/CommandManager"; import { ModerationLogs } from "../utils/structures/ModerationLogs"; @@ -25,6 +26,7 @@ export class Rawon extends Client { public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); public readonly modlogs = new ModerationLogs(this); + public readonly debugLog = new DebugLogManager(this.config.isProd); public constructor(opt: ClientOptions) { super(opt); } From 83e677c9ec3b8367e56b288ec07a1f5cc6c8008c Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 25 Mar 2022 19:49:37 +0900 Subject: [PATCH 189/411] style(Rawon): sort property declaration by length --- src/structures/Rawon.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 899215637..04222088e 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -16,17 +16,17 @@ import { resolve } from "path"; import got from "got"; export class Rawon extends Client { - public readonly config = config; - public readonly logger = new RawonLogger({ prod: this.config.isProd }); - public readonly request = got; public readonly commands = new CommandManager(this, resolve(importURLToString(import.meta.url), "..", "commands")); public readonly events = new EventsLoader(this, resolve(importURLToString(import.meta.url), "..", "events")); public readonly data = new JSONDataManager<Record<string, GuildData>>(resolve(process.cwd(), "data.json")); - public readonly soundcloud = soundcloud; + public readonly logger = new RawonLogger({ prod: this.config.isProd }); + public readonly debugLog = new DebugLogManager(this.config.isProd); + public readonly modlogs = new ModerationLogs(this); public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); - public readonly modlogs = new ModerationLogs(this); - public readonly debugLog = new DebugLogManager(this.config.isProd); + public readonly soundcloud = soundcloud; + public readonly config = config; + public readonly request = got; public constructor(opt: ClientOptions) { super(opt); } From abd4a0ff745e687df6c279ca27d641fc4e86318b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 25 Mar 2022 20:53:14 +0900 Subject: [PATCH 190/411] style(ServerQueue): sort import statements --- src/structures/ServerQueue.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 92c9c63a4..cd6a25355 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,7 +1,7 @@ -import { SongManager } from "../utils/structures/SongManager"; -import { LoopMode } from "../typings"; import { AudioPlayer, AudioPlayerStatus, VoiceConnection } from "@discordjs/voice"; +import { SongManager } from "../utils/structures/SongManager"; import { TextBasedChannel, Snowflake } from "discord.js"; +import { LoopMode } from "../typings"; export class ServerQueue { public loopMode: LoopMode = "OFF"; From 844add53efcb08ed6e0b7c14cc49856a4a69d22a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Mar 2022 12:24:14 +0900 Subject: [PATCH 191/411] fix(Rawon): put `config` property declaration on top --- src/structures/Rawon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 04222088e..931b13449 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -16,6 +16,7 @@ import { resolve } from "path"; import got from "got"; export class Rawon extends Client { + public readonly config = config; public readonly commands = new CommandManager(this, resolve(importURLToString(import.meta.url), "..", "commands")); public readonly events = new EventsLoader(this, resolve(importURLToString(import.meta.url), "..", "events")); public readonly data = new JSONDataManager<Record<string, GuildData>>(resolve(process.cwd(), "data.json")); @@ -25,7 +26,6 @@ export class Rawon extends Client { public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); public readonly soundcloud = soundcloud; - public readonly config = config; public readonly request = got; public constructor(opt: ClientOptions) { super(opt); } From 1c874c9973ddf3da798789bdf9f4c4ec19a119ad Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Mar 2022 12:25:33 +0900 Subject: [PATCH 192/411] refactor: create audio player only once --- src/commands/music/LyricsCommand.ts | 2 +- src/commands/music/NowPlayingCommand.ts | 2 +- src/commands/music/QueueCommand.ts | 2 +- src/commands/music/RemoveCommand.ts | 2 +- src/commands/music/SkipCommand.ts | 4 +- src/commands/music/SkipToCommand.ts | 4 +- src/commands/music/VolumeCommand.ts | 2 +- src/events/VoiceStateUpdateEvent.ts | 6 +- src/structures/ServerQueue.ts | 78 ++++++++++++++++++---- src/utils/handlers/general/handleVideos.ts | 8 +-- src/utils/handlers/general/play.ts | 59 ++-------------- 11 files changed, 85 insertions(+), 84 deletions(-) diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index cd275c0c2..69e1b8b55 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -32,7 +32,7 @@ export class LyricsCommand extends BaseCommand { ? ctx.args.join(" ") : ctx.options?.getString("query") ? ctx.options.getString("query") - : (((ctx.guild?.queue?.player?.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as QueueSong | undefined)?.song.title; + : (((ctx.guild?.queue?.player.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as QueueSong | undefined)?.song.title; if (!query) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index eefc70cfe..7f1d50810 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -21,7 +21,7 @@ export class NowPlayingCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { function getEmbed(): MessageEmbed { - const song = ((ctx.guild?.queue?.player?.state as (AudioPlayerState & { + const song = ((ctx.guild?.queue?.player.state as (AudioPlayerState & { resource: AudioResource | undefined; }) | undefined)?.resource?.metadata as QueueSong | undefined)?.song; diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index 5e7995f3e..ce9db56d6 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -21,7 +21,7 @@ import { AudioPlayerPlayingState } from "@discordjs/voice"; export class QueueCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { - const np = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong; + const np = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 04b1d0da9..1a525e124 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -56,7 +56,7 @@ export class RemoveCommand extends BaseCommand { ctx.guild!.queue!.songs.delete(song.key); } - const np = (ctx.guild?.queue?.player?.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as QueueSong | undefined; + const np = (ctx.guild?.queue?.player.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as QueueSong | undefined; const isSkip = songs.map(x => x.key).includes(np?.key ?? ""); if (isSkip) { this.client.commands.get("skip")?.execute(ctx); diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index e8f6fef2b..bdc54a034 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -26,7 +26,7 @@ export class SkipCommand extends BaseCommand { @sameVC public async execute(ctx: CommandContext): Promise<void> { const djRole = await this.client.utils.fetchDJRole(ctx.guild!).catch(() => null); - const song = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong; + const song = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; function ableToSkip(member: GuildMember): boolean { return member.roles.cache.has(djRole?.id ?? "") || @@ -66,7 +66,7 @@ export class SkipCommand extends BaseCommand { } if (!ctx.guild?.queue?.playing) ctx.guild!.queue!.playing = true; - ctx.guild?.queue?.player?.stop(true); + ctx.guild?.queue?.player.stop(true); void ctx.reply({ embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skip.skipMessage", { song: `[${song.song.title}](${song.song.url}})` diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 4e527a4ee..51c7c710f 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -84,13 +84,13 @@ export class SkipToCommand extends BaseCommand { song = songs[Number(targetType) - 1]; } - if (song.key === ((ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong).key) { + if (song.key === ((ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).key) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true)] }); } - void play(this.client, ctx.guild!, song.key); + void play(ctx.guild!, song.key); return ctx.reply({ embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index dbaccd17e..70aed26fc 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -29,7 +29,7 @@ export class VolumeCommand extends BaseCommand { @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { const volume = Number(ctx.args[0] ?? ctx.options?.getNumber("volume", false)); - const resVolume = (ctx.guild!.queue!.player!.state as AudioPlayerPlayingState).resource.volume!; + const resVolume = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.volume!; if (isNaN(volume)) { return ctx.reply({ diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 7c94f4956..f2d6944e7 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -124,7 +124,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { clearTimeout(queue.timeout!); state.guild.queue!.timeout = null; - queue.player?.pause(); + queue.player.pause(); const timeout = 60000; const duration = formatMS(timeout); @@ -153,7 +153,7 @@ export class VoiceStateUpdateEvent extends BaseEvent { clearTimeout(queue.timeout!); state.guild.queue!.timeout = null; - const song = ((queue.player!.state as AudioPlayerPausedState).resource.metadata as QueueSong).song; + const song = ((queue.player.state as AudioPlayerPausedState).resource.metadata as QueueSong).song; void queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { @@ -163,6 +163,6 @@ export class VoiceStateUpdateEvent extends BaseEvent { name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") })] }).then(msg => queue.lastVSUpdateMsg = msg.id); - state.guild.queue?.player?.unpause(); + state.guild.queue?.player.unpause(); } } diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index cd6a25355..498a78425 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,14 +1,18 @@ -import { AudioPlayer, AudioPlayerStatus, VoiceConnection } from "@discordjs/voice"; +import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; import { SongManager } from "../utils/structures/SongManager"; -import { TextBasedChannel, Snowflake } from "discord.js"; -import { LoopMode } from "../typings"; +import { createEmbed } from "../utils/functions/createEmbed"; +import { play } from "../utils/handlers/GeneralUtil"; +import { LoopMode, QueueSong } from "../typings"; +import { Rawon } from "./Rawon"; +import i18n from "../config"; +import { TextChannel, Snowflake } from "discord.js"; export class ServerQueue { public loopMode: LoopMode = "OFF"; + public connection: VoiceConnection | null = null; public shuffle = false; public stayInVC = this.textChannel.client.config.stayInVCAfterFinished; - public connection: VoiceConnection | null = null; - public player: AudioPlayer | null = null; + public readonly player: AudioPlayer = createAudioPlayer(); public dcTimeout: NodeJS.Timeout | null = null; public timeout: NodeJS.Timeout | null = null; public readonly songs = new SongManager(); @@ -16,7 +20,7 @@ export class ServerQueue { private _lastMusicMsg: Snowflake | null = null; private _lastVSUpdateMsg: Snowflake | null = null; - public constructor(public readonly textChannel: TextBasedChannel) { + public constructor(public readonly textChannel: TextChannel) { Object.defineProperties(this, { _skipVoters: { enumerable: false @@ -28,11 +32,48 @@ export class ServerQueue { enumerable: false } }); + + this.player.on("stateChange", (oldState, newState) => { + if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { + const newSong = ((this.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).song; + this.sendStartPlayingMsg(newSong); + } else if (newState.status === AudioPlayerStatus.Idle) { + const song = (oldState as AudioPlayerPlayingState).resource.metadata as QueueSong; + this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${this.textChannel.guild.name} has ended.`); + this.skipVoters = []; + if (this.loopMode === "OFF") { + this.songs.delete(song.key); + } + + // eslint-disable-next-line no-nested-ternary + const nextS = this.shuffle && this.loopMode !== "SONG" ? this.songs.random()?.key : this.loopMode === "SONG" ? song.key : this.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (this.loopMode === "QUEUE" ? this.songs.sortByIndex().first()?.key ?? "" : ""); + + this.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) + .then(m => this.lastMusicMsg = m.id) + .catch(e => this.client.logger.error("PLAY_ERR:", e)) + .finally(() => { + play(this.textChannel.guild, nextS).catch(e => { + this.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) + .catch(er => this.client.logger.error("PLAY_ERR:", er)); + this.connection?.disconnect(); + return this.client.logger.error("PLAY_ERR:", e); + }); + }); + } + }) + .on("error", err => { + this.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), true)] }).catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); + this.destroy(); + this.client.logger.error("PLAY_ERR:", err); + }) + .on("debug", message => { + this.client.logger.debug(message); + }); } public stop(): void { this.songs.clear(); - this.player?.stop(true); + this.player.stop(true); } public destroy(): void { @@ -40,9 +81,7 @@ export class ServerQueue { this.connection?.disconnect(); clearTimeout(this.timeout!); clearTimeout(this.dcTimeout!); - if (this.textChannel.type !== "DM") { - delete this.textChannel.guild.queue; - } + delete this.textChannel.guild.queue; } public get skipVoters(): Snowflake[] { @@ -84,18 +123,29 @@ export class ServerQueue { } public get playing(): boolean { - return this.player?.state.status === AudioPlayerStatus.Playing; + return this.player.state.status === AudioPlayerStatus.Playing; } public set playing(value: boolean) { if (value) { - this.player?.unpause(); + this.player.unpause(); } else { - this.player?.pause(); + this.player.pause(); } } public get idle(): boolean { - return this.player?.state.status === AudioPlayerStatus.Idle && this.songs.size === 0; + return this.player.state.status === AudioPlayerStatus.Idle && this.songs.size === 0; + } + + public get client(): Rawon { + return this.textChannel.client as Rawon; + } + + private sendStartPlayingMsg(newSong: QueueSong["song"]): void { + this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${this.textChannel.guild.name} has started.`); + this.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) + .then(m => this.lastMusicMsg = m.id) + .catch(e => this.client.logger.error("PLAY_ERR:", e)); } } diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index 28bb8b55c..265a3dace 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -8,8 +8,8 @@ import { chunk } from "../../functions/chunk"; import { Song } from "../../../typings"; import i18n from "../../../config"; import { play } from "./play"; +import { Message, StageChannel, TextChannel, Util, VoiceChannel } from "discord.js"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; -import { Message, StageChannel, Util, VoiceChannel } from "discord.js"; export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: Song[], voiceChannel: StageChannel | VoiceChannel): Promise<Message | undefined> { const wasIdle = ctx.guild?.queue?.idle; @@ -42,13 +42,13 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: await sendPagination(); if (wasIdle) { - void play(client, ctx.guild, undefined, wasIdle); + void play(ctx.guild, undefined, wasIdle); } return; } - ctx.guild!.queue = new ServerQueue(ctx.channel!); + ctx.guild!.queue = new ServerQueue(ctx.channel as TextChannel); await sendPagination(); try { @@ -74,5 +74,5 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: return; } - void play(client, ctx.guild!); + void play(ctx.guild!); } diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index 86c5ee594..e3f2e61bc 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -1,15 +1,12 @@ import { createEmbed } from "../../functions/createEmbed"; -import { Rawon } from "../../../structures/Rawon"; -import { QueueSong } from "../../../typings"; import { getStream } from "../YTDLUtil"; import i18n from "../../../config"; -import { AudioPlayerError, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, createAudioResource, entersState, VoiceConnectionStatus } from "@discordjs/voice"; +import { AudioPlayerError, createAudioResource, entersState, VoiceConnectionStatus } from "@discordjs/voice"; import { Guild } from "discord.js"; -export async function play(client: Rawon, guild: Guild, nextSong?: string, wasIdle?: boolean): Promise<void> { +export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): Promise<void> { const queue = guild.queue; if (!queue) return; - if (queue.player === null) queue.player = createAudioPlayer(); const song = nextSong ? queue.songs.get(nextSong) : queue.songs.first(); @@ -40,21 +37,14 @@ export async function play(client: Rawon, guild: Guild, nextSong?: string, wasId if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { const suppressed = await guild.me?.voice.setSuppressed(false).catch(err => ({ error: err })); if (suppressed && "error" in suppressed) { - queue?.player?.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); + queue?.player.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); return; } } - queue?.player?.play(resource); + queue?.player.play(resource); } - const sendStartPlayingMsg = (newSong: QueueSong["song"]): void => { - client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${guild.name} has started.`); - queue.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) - .then(m => queue.lastMusicMsg = m.id) - .catch(e => client.logger.error("PLAY_ERR:", e)); - }; - if (wasIdle) { void playResource(); } else { @@ -65,46 +55,7 @@ export async function play(client: Rawon, guild: Guild, nextSong?: string, wasId }) .catch((err: Error) => { if (err.message === "The operation was aborted") err.message = "Cannot establish a voice connection within 15 seconds."; - queue.player?.emit("error", new AudioPlayerError(err, resource)); + queue.player.emit("error", new AudioPlayerError(err, resource)); }); } - - queue.player.removeAllListeners(); - - queue.player.on("stateChange", (oldState, newState) => { - if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { - const newSong = ((queue.player!.state as AudioPlayerPlayingState).resource.metadata as QueueSong).song; - sendStartPlayingMsg(newSong); - } else if (newState.status === AudioPlayerStatus.Idle) { - client.logger.info(`${client.shard ? `[Shard #${client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${guild.name} has ended.`); - queue.skipVoters = []; - if (queue.loopMode === "OFF") { - queue.songs.delete(song.key); - } - - // eslint-disable-next-line no-nested-ternary - const nextS = queue.shuffle && queue.loopMode !== "SONG" ? queue.songs.random()?.key : queue.loopMode === "SONG" ? song.key : queue.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (queue.loopMode === "QUEUE" ? queue.songs.sortByIndex().first()?.key ?? "" : ""); - - queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) - .then(m => queue.lastMusicMsg = m.id) - .catch(e => client.logger.error("PLAY_ERR:", e)) - .finally(() => { - queue.player = null; - play(client, guild, nextS).catch(e => { - queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) - .catch(er => client.logger.error("PLAY_ERR:", er)); - queue.connection?.disconnect(); - return client.logger.error("PLAY_ERR:", e); - }); - }); - } - }) - .on("error", err => { - queue.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), true)] }).catch(e => client.logger.error("PLAY_CMD_ERR:", e)); - queue.destroy(); - client.logger.error("PLAY_ERR:", err); - }) - .on("debug", message => { - client.logger.debug(message); - }); } From 5b0532f44a8088b2546f184890ef51057a9e5060 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Mar 2022 17:23:10 +0900 Subject: [PATCH 193/411] style(ServerQueue): sort property declaration by length --- src/structures/ServerQueue.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 498a78425..e825710d9 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -8,17 +8,18 @@ import i18n from "../config"; import { TextChannel, Snowflake } from "discord.js"; export class ServerQueue { - public loopMode: LoopMode = "OFF"; - public connection: VoiceConnection | null = null; - public shuffle = false; public stayInVC = this.textChannel.client.config.stayInVCAfterFinished; public readonly player: AudioPlayer = createAudioPlayer(); + public connection: VoiceConnection | null = null; public dcTimeout: NodeJS.Timeout | null = null; public timeout: NodeJS.Timeout | null = null; public readonly songs = new SongManager(); - private _skipVoters: Snowflake[] = []; - private _lastMusicMsg: Snowflake | null = null; + public loopMode: LoopMode = "OFF"; + public shuffle = false; + private _lastVSUpdateMsg: Snowflake | null = null; + private _lastMusicMsg: Snowflake | null = null; + private _skipVoters: Snowflake[] = []; public constructor(public readonly textChannel: TextChannel) { Object.defineProperties(this, { From a680b13a93c70cf152e534de6cfada2dff5203de Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Mar 2022 17:41:44 +0900 Subject: [PATCH 194/411] feat(ServerQueue): save volume for next song --- src/structures/ServerQueue.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index e825710d9..e8648f003 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,4 +1,4 @@ -import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; +import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, AudioResource, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; import { SongManager } from "../utils/structures/SongManager"; import { createEmbed } from "../utils/functions/createEmbed"; import { play } from "../utils/handlers/GeneralUtil"; @@ -20,6 +20,7 @@ export class ServerQueue { private _lastVSUpdateMsg: Snowflake | null = null; private _lastMusicMsg: Snowflake | null = null; private _skipVoters: Snowflake[] = []; + private _volume = 100; public constructor(public readonly textChannel: TextChannel) { Object.defineProperties(this, { @@ -31,11 +32,16 @@ export class ServerQueue { }, _lastVSUpdateMsg: { enumerable: false + }, + _volume: { + enumerable: false } }); this.player.on("stateChange", (oldState, newState) => { if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { + newState.resource.volume?.setVolumeLogarithmic(this.volume / 100); + const newSong = ((this.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).song; this.sendStartPlayingMsg(newSong); } else if (newState.status === AudioPlayerStatus.Idle) { @@ -85,6 +91,15 @@ export class ServerQueue { delete this.textChannel.guild.queue; } + public get volume(): number { + return this._volume; + } + + public set volume(newVol: number) { + this._volume = newVol; + (this.player.state as AudioPlayerPlayingState & { resource: AudioResource | undefined }).resource.volume?.setVolumeLogarithmic(this._volume / 100); + } + public get skipVoters(): Snowflake[] { return this._skipVoters; } From e50f55370f9aae2fe73af69177a18b377e03a562 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 26 Mar 2022 17:42:16 +0900 Subject: [PATCH 195/411] refactor(VolumeCommand): use volume property from ServerQueue instead --- src/commands/music/VolumeCommand.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index 70aed26fc..caf554b7b 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -4,7 +4,6 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; -import { AudioPlayerPlayingState } from "@discordjs/voice"; import { Message } from "discord.js"; @Command({ @@ -29,12 +28,12 @@ export class VolumeCommand extends BaseCommand { @sameVC public execute(ctx: CommandContext): Promise<Message> | undefined { const volume = Number(ctx.args[0] ?? ctx.options?.getNumber("volume", false)); - const resVolume = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.volume!; + const current = ctx.guild!.queue!.volume; if (isNaN(volume)) { return ctx.reply({ embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { - volume: `\`${resVolume.volume * 100}\`` + volume: `\`${current}\`` })}`).setFooter({ text: i18n.__("commands.music.volume.changeVolume") })] }); } @@ -53,7 +52,7 @@ export class VolumeCommand extends BaseCommand { }); } - resVolume.setVolume(volume / 100); + ctx.guild!.queue!.volume = volume; return ctx.reply({ embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { volume From 268ef3cd0c5c01324a8fe7caee5c79b0ba26f548 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 08:45:24 +0000 Subject: [PATCH 196/411] chore(deps): bump @swc/core from 1.2.159 to 1.2.160 (#835) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.159 to 1.2.160. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.159...v1.2.160) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39d41bdad..3665848c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.56", - "@swc/core": "^1.2.159", + "@swc/core": "^1.2.160", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.159.tgz", - "integrity": "sha512-y+z+c4IelqaxvpQrc8hYdEpuvP1BVS9Fe5t8P8/yyP1oSrJkrLibROX4dHujg4EekFQhPCUjA29NawC4D08IQA==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.160.tgz", + "integrity": "sha512-nXoC7HA+aY7AtBPsiqGXocoRLAzzA7MV+InWQtILN7Uru4hB9+rLnLCPc3zSdg7pgnxJLa1tHup1Rz7Vv6TcIQ==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.159", - "@swc/core-android-arm64": "1.2.159", - "@swc/core-darwin-arm64": "1.2.159", - "@swc/core-darwin-x64": "1.2.159", - "@swc/core-freebsd-x64": "1.2.159", - "@swc/core-linux-arm-gnueabihf": "1.2.159", - "@swc/core-linux-arm64-gnu": "1.2.159", - "@swc/core-linux-arm64-musl": "1.2.159", - "@swc/core-linux-x64-gnu": "1.2.159", - "@swc/core-linux-x64-musl": "1.2.159", - "@swc/core-win32-arm64-msvc": "1.2.159", - "@swc/core-win32-ia32-msvc": "1.2.159", - "@swc/core-win32-x64-msvc": "1.2.159" + "@swc/core-android-arm-eabi": "1.2.160", + "@swc/core-android-arm64": "1.2.160", + "@swc/core-darwin-arm64": "1.2.160", + "@swc/core-darwin-x64": "1.2.160", + "@swc/core-freebsd-x64": "1.2.160", + "@swc/core-linux-arm-gnueabihf": "1.2.160", + "@swc/core-linux-arm64-gnu": "1.2.160", + "@swc/core-linux-arm64-musl": "1.2.160", + "@swc/core-linux-x64-gnu": "1.2.160", + "@swc/core-linux-x64-musl": "1.2.160", + "@swc/core-win32-arm64-msvc": "1.2.160", + "@swc/core-win32-ia32-msvc": "1.2.160", + "@swc/core-win32-x64-msvc": "1.2.160" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.159.tgz", - "integrity": "sha512-OIHGUjHIgow0TRWQpoKzAKAzdOmZPK/aVSkctWdMJvAc0Oj6yxlj35UfOtdifJJxRej/KEMZpFeQTJ69ezycuQ==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.160.tgz", + "integrity": "sha512-VzFP7tYgvpkUhd8wgyNtERqvoPBBDretyMFxAxPe2SxClaBs9Ka95PdiPPZalRq+vFCb/dFxD8Vhz+XO16Kpjg==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.159.tgz", - "integrity": "sha512-zKMq4/a62usmD+CTEpyNNN57LBGHJMK2s2KDcU7Vu/tHoHKGkFYQi7PYBw3t6+tCyPfwoo20NONOiYZv6dm36Q==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.160.tgz", + "integrity": "sha512-m+xqQaa7TqW3Vm9MUvITtdU8OlAc/9yT+TgOS4l8WlfFI87IDnLLfinKKEp+xfKwzYDdIsh+sC+jdGdIBTMB+Q==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.159.tgz", - "integrity": "sha512-vZJmK7Baph2UCUIrArEt4RxnvK87OF8TSUe8VNgYPIFtoCEA6ttKXnndCI5kUKPvakpAg4NoHs1mm/x7gVZVVQ==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.160.tgz", + "integrity": "sha512-9bG70KYKvjNf7tZtjOu1h4kDZPtoidZptIXPGSHuUgJ1BbSJYpfRR5xAmq4k37+GqOjIPJp4+lSGQPa2HfejpA==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.159.tgz", - "integrity": "sha512-hhJ336eq9QMv8PTnrCfY99xhdf8LH8RquLLfVV+XwbeXGF23fJJrsjQgv9rTC5aadIh6AxR2cHgCm4CGU/Xs0w==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.160.tgz", + "integrity": "sha512-+b4HdKAVf/XPZ9DjgG2axGLbquPEuYwEP3zeWgbWn0s0FYQ7WTFxznf3YrTJE9MYadJeCOs3U80E2xVAtRRS9Q==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.159.tgz", - "integrity": "sha512-ZwJcA38AEmQp4OCkYOZD/5FjSU1VEMX/iMISEGUwDEE7d4CypFFP3mCpk5JAVEWJIhdYjgfo2SY8v9PfoSmBDg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.160.tgz", + "integrity": "sha512-E5agJwv+RVMoZ8FQIPSO5wLPDQx6jqcMpV207EB3pPaxPWGe4n3DH3vcibHp80RACDNdiaqo5lBeBnGJI4ithw==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.159.tgz", - "integrity": "sha512-M1QF8BBrbuXkw+T8U4xjMhGvjog83pA40PfZknGk+czQFJcNo4mq5hxMPalRbLN6olMoZNI6EM5a6zSocoDXEg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.160.tgz", + "integrity": "sha512-uCttZRNx+lWVhCYGC6/pGUej08g1SQc5am6R9NVFh111goytcdlPnC4jV8oWzq2QhDWkkKxLoP2CZOytzI4+0w==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.159.tgz", - "integrity": "sha512-1uCMSEfzXtJHnuQoYHuHvzmBQ4/YlEcPydRMpc8/nO/svRGAHUZPKIz887tNk0nVtlF4Kil/LTrG+Wqxrp9z7A==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.160.tgz", + "integrity": "sha512-sB18roiv8m/zsY6tXLSrbUls0eKkSkxOEF0ennXVEtz97rMJ+WWnkOc8gI+rUpj3MHbVAIxyDNyyZU4cH5g1jQ==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.159.tgz", - "integrity": "sha512-FE+LyayWD55ESq0bV40x+Lmse7UyI/hhfrO/wvEs3v97z+fRhzPvcPAw38MoW2DVazPw3GotuBIf6Y5XkFO+fg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.160.tgz", + "integrity": "sha512-PJ7Ukb+BRR3pGYcUag8qRWOB11eByc5YLx/xAMSc3bRmaYW/oj6s8k+1DYiR//BAuNQdf14MpMFzDuWiDEUh7A==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.159.tgz", - "integrity": "sha512-O7pH2A+ENjCuvMuKjv6UoIBsmwAbrTi+45WFL1snqCDZw+4p3WutFUSlhEW72uI6CEdb4kfZG0lajW2/Qbkuvg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.160.tgz", + "integrity": "sha512-wVh8Q86xz3t0y5zoUryWQ64bFG/YxdcykBgaog8lU9xkFb1KSqVRE9ia7aKA12/ZtAfpJZLRBleZxBAcaCg9FQ==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.159.tgz", - "integrity": "sha512-Se1EccOiN4h8/SaTZFVp7VoSUNR7ENmAmpVNROKnfZGb589THpLlC5MZtp5EFYDaLjpLHypVeqw0OO4tgwsL4w==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.160.tgz", + "integrity": "sha512-AnWdarl9WWuDdbc2AX1w76W1jaekSCokxRrWdSGUgQytaZRtybKZEgThvJCQDrSlYQD4XDOhhVRCurTvy4JsfQ==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.159.tgz", - "integrity": "sha512-nKv1ksT3+V3xhPRXFr5Eeg0b93dqpGzKIoC13WwC0jRYbD0/SZwwcTU/XUZcm4MWQI8CG+PwwhO3SLMo747eqw==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.160.tgz", + "integrity": "sha512-ScL27mZRTwEIqBIv9RY34nQvyBvhosiM5Lus4dCFmS71flPcAEv7hJgy4GE3YUQV0ryGNK9NaO43H8sAyNwKVQ==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.159.tgz", - "integrity": "sha512-24khotmSwFF2rEUeXPdqaTSOrIylroEx8MfuyG1BxfYfol+B9QyG8YqDyz713YM9dJYgs7JKuSfkK8qGQ2MbYA==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.160.tgz", + "integrity": "sha512-e75zbWlhlyrd5HdrYzELa6OlZxgyaVpJj+c9xMD95HcdklVbmsyt1vuqRxMyqaZUDLyehwwCDRX/ZeDme//M/A==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.159.tgz", - "integrity": "sha512-Z/hcfe1DRcOQgnxZcnYy8d4lxZi1IHI2FeeRwDWtKn28cSaPca1acZVb4qA0hSfqsftKo0zTgLro6oh9gWxFng==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.160.tgz", + "integrity": "sha512-GAYT+WzYQY4sr17S21yJh4flJp/sQ62mAs6RfN89p7jIWgm0Bl/SooRl6ocsftTlnZm7K7QC8zmQVeNCWDCLPw==", "cpu": [ "x64" ], @@ -2921,101 +2921,101 @@ } }, "@swc/core": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.159.tgz", - "integrity": "sha512-y+z+c4IelqaxvpQrc8hYdEpuvP1BVS9Fe5t8P8/yyP1oSrJkrLibROX4dHujg4EekFQhPCUjA29NawC4D08IQA==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.160.tgz", + "integrity": "sha512-nXoC7HA+aY7AtBPsiqGXocoRLAzzA7MV+InWQtILN7Uru4hB9+rLnLCPc3zSdg7pgnxJLa1tHup1Rz7Vv6TcIQ==", "requires": { - "@swc/core-android-arm-eabi": "1.2.159", - "@swc/core-android-arm64": "1.2.159", - "@swc/core-darwin-arm64": "1.2.159", - "@swc/core-darwin-x64": "1.2.159", - "@swc/core-freebsd-x64": "1.2.159", - "@swc/core-linux-arm-gnueabihf": "1.2.159", - "@swc/core-linux-arm64-gnu": "1.2.159", - "@swc/core-linux-arm64-musl": "1.2.159", - "@swc/core-linux-x64-gnu": "1.2.159", - "@swc/core-linux-x64-musl": "1.2.159", - "@swc/core-win32-arm64-msvc": "1.2.159", - "@swc/core-win32-ia32-msvc": "1.2.159", - "@swc/core-win32-x64-msvc": "1.2.159" + "@swc/core-android-arm-eabi": "1.2.160", + "@swc/core-android-arm64": "1.2.160", + "@swc/core-darwin-arm64": "1.2.160", + "@swc/core-darwin-x64": "1.2.160", + "@swc/core-freebsd-x64": "1.2.160", + "@swc/core-linux-arm-gnueabihf": "1.2.160", + "@swc/core-linux-arm64-gnu": "1.2.160", + "@swc/core-linux-arm64-musl": "1.2.160", + "@swc/core-linux-x64-gnu": "1.2.160", + "@swc/core-linux-x64-musl": "1.2.160", + "@swc/core-win32-arm64-msvc": "1.2.160", + "@swc/core-win32-ia32-msvc": "1.2.160", + "@swc/core-win32-x64-msvc": "1.2.160" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.159.tgz", - "integrity": "sha512-OIHGUjHIgow0TRWQpoKzAKAzdOmZPK/aVSkctWdMJvAc0Oj6yxlj35UfOtdifJJxRej/KEMZpFeQTJ69ezycuQ==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.160.tgz", + "integrity": "sha512-VzFP7tYgvpkUhd8wgyNtERqvoPBBDretyMFxAxPe2SxClaBs9Ka95PdiPPZalRq+vFCb/dFxD8Vhz+XO16Kpjg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.159.tgz", - "integrity": "sha512-zKMq4/a62usmD+CTEpyNNN57LBGHJMK2s2KDcU7Vu/tHoHKGkFYQi7PYBw3t6+tCyPfwoo20NONOiYZv6dm36Q==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.160.tgz", + "integrity": "sha512-m+xqQaa7TqW3Vm9MUvITtdU8OlAc/9yT+TgOS4l8WlfFI87IDnLLfinKKEp+xfKwzYDdIsh+sC+jdGdIBTMB+Q==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.159.tgz", - "integrity": "sha512-vZJmK7Baph2UCUIrArEt4RxnvK87OF8TSUe8VNgYPIFtoCEA6ttKXnndCI5kUKPvakpAg4NoHs1mm/x7gVZVVQ==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.160.tgz", + "integrity": "sha512-9bG70KYKvjNf7tZtjOu1h4kDZPtoidZptIXPGSHuUgJ1BbSJYpfRR5xAmq4k37+GqOjIPJp4+lSGQPa2HfejpA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.159.tgz", - "integrity": "sha512-hhJ336eq9QMv8PTnrCfY99xhdf8LH8RquLLfVV+XwbeXGF23fJJrsjQgv9rTC5aadIh6AxR2cHgCm4CGU/Xs0w==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.160.tgz", + "integrity": "sha512-+b4HdKAVf/XPZ9DjgG2axGLbquPEuYwEP3zeWgbWn0s0FYQ7WTFxznf3YrTJE9MYadJeCOs3U80E2xVAtRRS9Q==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.159.tgz", - "integrity": "sha512-ZwJcA38AEmQp4OCkYOZD/5FjSU1VEMX/iMISEGUwDEE7d4CypFFP3mCpk5JAVEWJIhdYjgfo2SY8v9PfoSmBDg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.160.tgz", + "integrity": "sha512-E5agJwv+RVMoZ8FQIPSO5wLPDQx6jqcMpV207EB3pPaxPWGe4n3DH3vcibHp80RACDNdiaqo5lBeBnGJI4ithw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.159.tgz", - "integrity": "sha512-M1QF8BBrbuXkw+T8U4xjMhGvjog83pA40PfZknGk+czQFJcNo4mq5hxMPalRbLN6olMoZNI6EM5a6zSocoDXEg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.160.tgz", + "integrity": "sha512-uCttZRNx+lWVhCYGC6/pGUej08g1SQc5am6R9NVFh111goytcdlPnC4jV8oWzq2QhDWkkKxLoP2CZOytzI4+0w==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.159.tgz", - "integrity": "sha512-1uCMSEfzXtJHnuQoYHuHvzmBQ4/YlEcPydRMpc8/nO/svRGAHUZPKIz887tNk0nVtlF4Kil/LTrG+Wqxrp9z7A==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.160.tgz", + "integrity": "sha512-sB18roiv8m/zsY6tXLSrbUls0eKkSkxOEF0ennXVEtz97rMJ+WWnkOc8gI+rUpj3MHbVAIxyDNyyZU4cH5g1jQ==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.159.tgz", - "integrity": "sha512-FE+LyayWD55ESq0bV40x+Lmse7UyI/hhfrO/wvEs3v97z+fRhzPvcPAw38MoW2DVazPw3GotuBIf6Y5XkFO+fg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.160.tgz", + "integrity": "sha512-PJ7Ukb+BRR3pGYcUag8qRWOB11eByc5YLx/xAMSc3bRmaYW/oj6s8k+1DYiR//BAuNQdf14MpMFzDuWiDEUh7A==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.159.tgz", - "integrity": "sha512-O7pH2A+ENjCuvMuKjv6UoIBsmwAbrTi+45WFL1snqCDZw+4p3WutFUSlhEW72uI6CEdb4kfZG0lajW2/Qbkuvg==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.160.tgz", + "integrity": "sha512-wVh8Q86xz3t0y5zoUryWQ64bFG/YxdcykBgaog8lU9xkFb1KSqVRE9ia7aKA12/ZtAfpJZLRBleZxBAcaCg9FQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.159.tgz", - "integrity": "sha512-Se1EccOiN4h8/SaTZFVp7VoSUNR7ENmAmpVNROKnfZGb589THpLlC5MZtp5EFYDaLjpLHypVeqw0OO4tgwsL4w==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.160.tgz", + "integrity": "sha512-AnWdarl9WWuDdbc2AX1w76W1jaekSCokxRrWdSGUgQytaZRtybKZEgThvJCQDrSlYQD4XDOhhVRCurTvy4JsfQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.159.tgz", - "integrity": "sha512-nKv1ksT3+V3xhPRXFr5Eeg0b93dqpGzKIoC13WwC0jRYbD0/SZwwcTU/XUZcm4MWQI8CG+PwwhO3SLMo747eqw==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.160.tgz", + "integrity": "sha512-ScL27mZRTwEIqBIv9RY34nQvyBvhosiM5Lus4dCFmS71flPcAEv7hJgy4GE3YUQV0ryGNK9NaO43H8sAyNwKVQ==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.159.tgz", - "integrity": "sha512-24khotmSwFF2rEUeXPdqaTSOrIylroEx8MfuyG1BxfYfol+B9QyG8YqDyz713YM9dJYgs7JKuSfkK8qGQ2MbYA==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.160.tgz", + "integrity": "sha512-e75zbWlhlyrd5HdrYzELa6OlZxgyaVpJj+c9xMD95HcdklVbmsyt1vuqRxMyqaZUDLyehwwCDRX/ZeDme//M/A==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.159", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.159.tgz", - "integrity": "sha512-Z/hcfe1DRcOQgnxZcnYy8d4lxZi1IHI2FeeRwDWtKn28cSaPca1acZVb4qA0hSfqsftKo0zTgLro6oh9gWxFng==", + "version": "1.2.160", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.160.tgz", + "integrity": "sha512-GAYT+WzYQY4sr17S21yJh4flJp/sQ62mAs6RfN89p7jIWgm0Bl/SooRl6ocsftTlnZm7K7QC8zmQVeNCWDCLPw==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 0ee594e1e..352093982 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.56", - "@swc/core": "^1.2.159", + "@swc/core": "^1.2.160", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 6a22c1baee108a8a3557a16d500e915111b3fff1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 08:47:24 +0000 Subject: [PATCH 197/411] chore(deps-dev): bump @types/node from 17.0.22 to 17.0.23 (#836) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.22 to 17.0.23. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3665848c4..304ea7845 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.22", + "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", - "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -3063,9 +3063,9 @@ } }, "@types/node": { - "version": "17.0.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", - "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 352093982..7c73fed15 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.22", + "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", "eslint": "^8.11.0", From fad2323780691c943afcefdaba79d648146783dd Mon Sep 17 00:00:00 2001 From: CommanderRoot <CommanderRoot@users.noreply.github.com> Date: Sat, 26 Mar 2022 14:33:08 +0100 Subject: [PATCH 198/411] refactor: replace deprecated String.prototype.substr() (#838) --- src/commands/general/HelpCommand.ts | 2 +- src/commands/music/SearchCommand.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index b570d50f2..86d5fb06d 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -158,7 +158,7 @@ export class HelpCommand extends BaseCommand { { label: x.meta.name, emoji: emojis[i], - description: x.meta.description!.length > 47 ? `${x.meta.description!.substr(0, 47)}...` : x.meta.description!, + description: x.meta.description!.length > 47 ? `${x.meta.description!.slice(0, 47)}...` : x.meta.description!, value: x.meta.name } )); diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 5e781b0ff..101b47375 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -179,7 +179,7 @@ export class SearchCommand extends BaseCommand { return tracks.slice(0, 10).map((x, i) => ( { - label: x.title.length > 98 ? `${x.title.substr(0, 97)}...` : x.title, + label: x.title.length > 98 ? `${x.title.slice(0, 97)}...` : x.title, emoji: emojis[i], value: x.url } From e8d3a41bcc006fc3e0e300b0c1931d51a2cbb600 Mon Sep 17 00:00:00 2001 From: Alexander <47733425+lxndr-rl@users.noreply.github.com> Date: Sat, 26 Mar 2022 20:25:28 -0500 Subject: [PATCH 199/411] chore(lang/es): synchronize translations with EN lang (#839) Additionally, some sentences have been fixed. --- lang/es.json | 627 +++++++++++++++++++++++++++------------------------ 1 file changed, 330 insertions(+), 297 deletions(-) diff --git a/lang/es.json b/lang/es.json index 08c8316e7..ca0c3def7 100644 --- a/lang/es.json +++ b/lang/es.json @@ -1,298 +1,331 @@ { - "commands": { - "developers": { - "categoryName": "REVELADOR", - "eval": { - "description": "Evaluar al bot", - "usage": "{prefix}eval <código>", - "noCode": "No se ingresó código.", - "outputString": "Salida", - "errorString": "Error" - } - }, - "general": { - "categoryName": "GENERAL", - "about": { - "description": "Muestra la información del bot", - "osUptimeString": "Tiempo de actividad del SO", - "processUptimeString": "Tiempo de actividad del proceso", - "botUptimeString": "Tiempo de actividad del bot", - "nodeVersionString": "Versión de Node.js", - "discordJSVersionString": "Versión de Discord.js", - "ffmpegVersionString": "Versión de FFmpeg", - "botVersionString": "Versión del bot", - "sourceCodeString": "Código Fuente", - "aboutFooter": "Información del bot {botname}" - }, - "help": { - "description": "Muestra la lista de comandos o la información de un comando específico", - "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", - "usage": "{prefix}help [comando]", - "authorString": "Lista de comandos de {username}", - "footerString": "{prefix}help <comando> para obtener más información de un comando específico", - "noCommand": "No se puede encontrar el comando", - "commandSelectionString": "Por favor selecciona un comando", - "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", - "commandDetailTitle": "{username} - Información del comando {command}", - "nameString": "Nombre", - "descriptionString": "Descripción", - "aliasesString": "Alias", - "usageString": "Uso", - "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" - }, - "invite": { - "description": "Obtén el enlace de invitación para el bot", - "inviteTitle": "{bot} - Enlace De Invitación", - "clickURL": "**[Haga clic]({url})** aquí para invitar a este bot a su servidor." - }, - "ping": { - "description": "Muestra el ping actual del bot", - "footerString": "Latencia de: {user}" - } - }, - "moderation": { - "common": { - "categoryName": "MODERACIÓN", - "noUserSpecified": "Por favor especifica un usuario.", - "noReasonString": "[No especificado]", - "reasonString": "**Razón**" - }, - "ban": { - "description": "Banea a alguien en el servidor", - "slashMemberIDDescription": "A quién quisieras banear?", - "slashReasonDescription": "Razón del ban", - "usage": "{prefix}ban <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", - "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", - "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", - "bannedByString": "Baneado por: {author}", - "banFail": "No se pudo **`BANEAR`** al miembro, porque: `{message}`", - "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." - }, - "kick": { - "description": "Expulsa a alguien del servidor", - "slashMemberDescription": "A quién te quisieras expulsar?", - "slashReasonDescription": "Razón de expulsión", - "usage": "{prefix}kick <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", - "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", - "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", - "kickedByString": "Expulsado por: {author}", - "kickFail": "No se pudo **`EXPULSAR`** al miembro, porque: `{message}`", - "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." - }, - "mute": { - "description": "Silencia a alguien en el servidor", - "slashMemberDescription": "A quién quisieras silenciar?", - "slashReasonDescription": "Razón de silencio", - "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", - "usage": "{prefix}mute <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", - "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`**", - "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", - "mutedByString": "Silenciado por: {author}", - "muteFail": "No se pudo **`SILENCIAR`** al miembro, porque: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." - }, - "purge": { - "description": "Eliminar mensajes", - "slashAmountDescription": "Cantidad de mensajes para eliminar", - "usage": "{prefix}purge <monto>", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", - "invalidAmount": "Please specify a valid number of messages to delete.", - "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", - "purgeSuccess": "**{amount}** messages have been **`PURGED`**" - }, - "unban": { - "description": "Desbanea a alguien del servidor", - "slashMemberDescription": "A quién quisieras desbanear?", - "slashReasonDescription": "Razón de desbaneo", - "usage": "{prefix}unban <id> [razón]", - "alreadyUnban": "Este usuario no está **`BANEADO`**", - "unbanFail": "No se pudo **`DESBANEAR`** al miembro, porque: `{message}`", - "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." - }, - "unmute": { - "description": "Desilenciar a alguien del servidor", - "slashMemberDescription": "A quién quisieras desilenciar?", - "slashReasonDescription": "Razón del desilencio", - "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", - "usage": "{prefix}unmute <@mención | id> [razón]", - "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", - "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", - "unmutedByString": "Desilenciado por: {author}", - "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, porque: `{message}`", - "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." - }, - "warn": { - "description": "Advierte a un miembro en el servidor", - "slashMemberDescription": "A quién quisieras advertir?", - "slashReasonDescription": "Razón de advertencia", - "usage": "{prefix}warn <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", - "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", - "warnedByString": "Advertido por: {author}", - "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." - } - }, - "music": { - "lyrics": { - "categoryName": "MÚSICA", - "description": "Muestra la letra de una canción", - "slashDescription": "Canción a buscar", - "usage": "{prefix}lyrics [canción]", - "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", - "apiError": "El API no pudo encontrar la canción **{song}**, porque: {message}" - }, - "nowplaying": { - "description": "Muestra la canción que se está reproduciendo", - "emptyQueue": "La cola está vacía", - "disableButton": "Después de 30 segundos, los botones se desactivarán." - }, - "pause": { - "description": "Pausa la reproducción de música", - "alreadyPause": "El reproductor de música ya está en pausa.", - "pauseMessage": "Se ha pausado el reproductor de música." - }, - "play": { - "description": "Reproduce algo de música", - "slashQueryDescription": "Canción a reproducir", - "usage": "{prefix}play <consulta / url>", - "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", - "noSongData": "Este URL no tiene datos de canciones." - }, - "queue": { - "description": "Muestra la cola de reproducción" - }, - "repeat": { - "description": "Repite la canción actual o la cola completa", - "slashQueue": "Establece el mode repetición a **`QUEUE`**", - "slashSong": "Establece el mode repetición a **`ONE`**", - "slashDisable": "Desactiva el modo repetición", - "usage": "{prefix}repeat <{options}>", - "actualMode": "El modo de repetición actual es **`{mode}`**", - "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" - }, - "resume": { - "description": "Reanuda el reproductor de música", - "alreadyResume": "El reproductor de música no está en pausa.", - "resumeMessage": "El reproductor de música ha sido reanudado." - }, - "search": { - "description": "Reproduce alguna canción usando una fuente específica", - "slashDescription": "Busca una canción específica", - "slashQueryDescription": "Canción a buscar", - "slashSourceDescription": "De donde debería tomar la canción?", - "usage": "{prefix}search <canción> [fuente]", - "noQuery": "Por favor ingresa alguna canción para buscar.", - "noTracks": "No pude obtener resultados.", - "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", - "trackSelectionMessage": "Selección de canciones", - "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", - "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", - "canceledMessage": "Selección de canciones cancelada.", - "interactionContent": "Por favor selecciona una canción", - "interactionPlaceholder": "Por favor selecciona una canción" - }, - "shuffle": { - "description": "Aleatoriza la cola", - "actualState": "El modo aleatorio está **`{state}`**", - "newState": "El modo aleatorio se estableció ahora a **`{state}`**" - }, - "skip": { - "description": "Salta la canción actual", - "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", - "voteResultMessage": "{length}/{required} han votado para saltar la canción", - "skipMessage": "Se ha saltado **{song}**" - }, - "skipTo": { - "description": "Salta a una posición específica de la cola", - "slashFirstDescription": "Regresa a la primera canción de la cola", - "slashLastDescription": "Salta a la última canción de la cola", - "slashSpecificDescription": "Salta a una posición específica en la cola", - "slashPositionDescription": "Posición de la canción en la cola", - "usage": "{prefix}skipto <{options} | número>", - "noPermission": "No tienes permiso para usar este comando.", - "noSongPosition": "No se pudo encontrar la canción en esta posición.", - "cantPlay": "No puedes saltar la canción actual.", - "skipMessage": "Se ha saltado a **{song}**" - }, - "stayInQueue": { - "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", - "slashDescription": "Alterna el modo de la característica stay-in-voice", - "247Disabled": "La característica Stay-in-voice está desactivada.", - "actualState": "Stay-in-voice está **`{state}`**", - "newState": "Stay-in-voice se estableció a **`{state}`**" - }, - "stop": { - "description": "Para el reproductor de música", - "stoppedMessage": "El reproductor de música se ha detenido." - }, - "volume": { - "description": "Cambia el volúmen del reproductor de música", - "slashDescription": "Nuevo volúmen", - "usage": "{prefix}volume [volumen]", - "currentVolume": "El volúmen actual es **`{volume}`**", - "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", - "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", - "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", - "newVolume": "Volúmen establecido en **`{volume}`**" - } - } - }, - "utils": { - "musicDecorator": { - "noQueue": "No se está reproduciendo nada.", - "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", - "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", - "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", - "sameVC": "Necesitas estar en el mismo canal de voz que yo." - }, - "generalHandler": { - "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", - "errorJoining": "Error al unirse al canal de voz, porque: {message}", - "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", - "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", - "startPlaying": "Se empezó a reproducir **{song}**", - "stopPlaying": "Se detuvo la reproducción **{song}**", - "errorPlaying": "Ocurrió un error cuando traté de reproducir música, porque: ${message}" - }, - "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." - }, - "events": { - "channelUpdate": { - "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - }, - "createInteraction": { - "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", - "message2": "Lo siento, pero esta interacción es solo para <@{user}>" - }, - "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", - "voiceStateUpdate": { - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", - "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", - "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", - "joinStageMessage": "Me uní al canal escenario con éxito como orador.", - "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", - "deleteQueueFooter": "Cola eliminada", - "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", - "pauseQueueFooter": "Cola pausada", - "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", - "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", - "resumeQueueFooter": "Cola reanudada", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - } - }, - "reusable": { - "pageFooter": "Página {actual} de {total}", - "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." - } -} \ No newline at end of file + "commands": { + "developers": { + "categoryName": "DESARROLLADOR", + "eval": { + "description": "Evaluar al bot", + "usage": "{prefix}eval <código>", + "noCode": "No se ingresó código.", + "outputString": "Salida", + "errorString": "Error" + } + }, + "general": { + "categoryName": "GENERAL", + "about": { + "description": "Muestra la información del bot", + "osUptimeString": "Tiempo de actividad del SO", + "processUptimeString": "Tiempo de actividad del proceso", + "botUptimeString": "Tiempo de actividad del bot", + "nodeVersionString": "Versión de Node.js", + "discordJSVersionString": "Versión de Discord.js", + "ffmpegVersionString": "Versión de FFmpeg", + "botVersionString": "Versión del bot", + "sourceCodeString": "Código Fuente", + "aboutFooter": "Información del bot {botname}" + }, + "help": { + "description": "Muestra la lista de comandos o la información de un comando específico", + "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", + "usage": "{prefix}help [comando]", + "authorString": "Lista de comandos de {username}", + "footerString": "{prefix}help <comando> para obtener más información de un comando específico", + "noCommand": "No se puede encontrar el comando", + "commandSelectionString": "Por favor selecciona un comando", + "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", + "commandDetailTitle": "{username} - Información del comando {command}", + "nameString": "Nombre", + "descriptionString": "Descripción", + "aliasesString": "Alias", + "usageString": "Uso", + "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" + }, + "invite": { + "description": "Obtén el enlace de invitación para el bot", + "inviteTitle": "{bot} - Enlace De Invitación", + "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." + }, + "ping": { + "description": "Muestra el ping actual del bot", + "footerString": "Latencia de: {user}" + } + }, + "moderation": { + "common": { + "categoryName": "MODERACIÓN", + "noUserSpecified": "Por favor especifica un usuario.", + "noReasonString": "[No especificado]", + "reasonString": "**Razón**" + }, + "ban": { + "description": "Banea a alguien en el servidor", + "slashMemberIDDescription": "A quién quisieras banear?", + "slashReasonDescription": "Razón del ban", + "usage": "{prefix}ban <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", + "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", + "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", + "bannedByString": "Baneado por: {author}", + "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", + "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." + }, + "infractions": { + "description": "Muestra las infracciones de un usuario", + "slashMemberDescription": "¿De quién quisieras ver las infracciones?", + "usage": "{prefix}infractions [@mención | id]", + "embedAuthorText": "{user} - Infracciones", + "noInfractions": "No hay infracciones." + }, + "kick": { + "description": "Expulsa a alguien del servidor", + "slashMemberDescription": "¿A quién te quisieras expulsar?", + "slashReasonDescription": "Razón de expulsión", + "usage": "{prefix}kick <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", + "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", + "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", + "kickedByString": "Expulsado por: {author}", + "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", + "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." + }, + "modlogs": { + "description": "Cambia los ajustes del registro de moderación", + "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", + "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", + "slashEnableDescription": "Activa el registro de moderación", + "slashDisableDescription": "Desactiva el registro de moderación", + "usage": "modlogs", + "channel": { + "current": "Canal de registro de moderación actual: <#{channel}>", + "noChannel": "El canal de registro de moderación aún no ha sido establecido.", + "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", + "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" + }, + "embedTitle": "Registro de Moderación", + "newChannelText": "Nuevo canal", + "disable": "Registro de moderación está **`DESACTIVO`**", + "enable": "Registro de moderación está **`ACTIVO`**" + }, + "mute": { + "description": "Silencia a alguien en el servidor", + "slashMemberDescription": "¿A quién quisieras silenciar?", + "slashReasonDescription": "Razón de silencio", + "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", + "usage": "{prefix}mute <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", + "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", + "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", + "mutedByString": "Silenciado por: {author}", + "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." + }, + "purge": { + "description": "Eliminar mensajes", + "slashAmountDescription": "Cantidad de mensajes a eliminar", + "usage": "{prefix}purge <monto>", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", + "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", + "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", + "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" + }, + "unban": { + "description": "Desbanea a alguien del servidor", + "slashMemberDescription": "A quién quisieras desbanear?", + "slashReasonDescription": "Razón de desbaneo", + "usage": "{prefix}unban <id> [razón]", + "alreadyUnban": "Este usuario no está **`BANEADO`**", + "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", + "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." + }, + "unmute": { + "description": "Desilenciar a alguien del servidor", + "slashMemberDescription": "A quién quisieras desilenciar?", + "slashReasonDescription": "Razón del desilencio", + "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", + "usage": "{prefix}unmute <@mención | id> [razón]", + "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", + "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", + "unmutedByString": "Desilenciado por: {author}", + "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", + "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." + }, + "warn": { + "description": "Advierte a un miembro en el servidor", + "slashMemberDescription": "¿A quién quisieras advertir?", + "slashReasonDescription": "Razón de advertencia", + "usage": "{prefix}warn <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", + "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", + "warnedByString": "Advertido por: {author}", + "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." + }, + "categoryName": "commands.moderation.categoryName" + }, + "music": { + "lyrics": { + "categoryName": "MÚSICA", + "description": "Muestra la letra de una canción", + "slashDescription": "Canción a buscar", + "usage": "{prefix}lyrics [canción]", + "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", + "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" + }, + "nowplaying": { + "description": "Muestra la canción que se está reproduciendo", + "emptyQueue": "La cola está vacía", + "disableButton": "Después de 30 segundos, los botones se desactivarán." + }, + "pause": { + "description": "Pausa la reproducción de música", + "alreadyPause": "El reproductor de música ya está en pausa.", + "pauseMessage": "Se ha pausado el reproductor de música." + }, + "play": { + "description": "Reproduce algo de música", + "slashQueryDescription": "Canción a reproducir", + "usage": "{prefix}play <consulta / url>", + "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", + "noSongData": "Este URL no tiene datos de canciones." + }, + "queue": { + "description": "Muestra la cola de reproducción" + }, + "repeat": { + "description": "Repite la canción actual o la cola completa", + "slashQueue": "Establece el mode repetición a **`QUEUE`**", + "slashSong": "Establece el mode repetición a **`ONE`**", + "footer": "Para cambiar el modo, mira '{prefix}help repeat'", + "slashDisable": "Desactiva el modo repetición", + "usage": "{prefix}repeat <{options}>", + "actualMode": "El modo de repetición actual es **`{mode}`**", + "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" + }, + "resume": { + "description": "Reanuda el reproductor de música", + "alreadyResume": "El reproductor de música no está en pausa.", + "resumeMessage": "El reproductor de música ha sido reanudado." + }, + "search": { + "description": "Reproduce alguna canción usando una fuente específica", + "slashDescription": "Busca una canción específica", + "slashQueryDescription": "Canción a buscar", + "slashSourceDescription": "¿De dónde debería tomar la canción?", + "usage": "{prefix}search <canción> [fuente]", + "noQuery": "Por favor ingresa alguna canción para buscar.", + "noTracks": "No pude obtener resultados.", + "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", + "trackSelectionMessage": "Selección de canciones", + "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", + "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", + "canceledMessage": "Selección de canciones cancelada.", + "interactionContent": "Por favor selecciona una canción", + "interactionPlaceholder": "Por favor selecciona una canción" + }, + "shuffle": { + "description": "Aleatoriza la cola", + "actualState": "El modo aleatorio está **`{state}`**", + "newState": "El modo aleatorio se estableció ahora a **`{state}`**" + }, + "skip": { + "description": "Salta la canción actual", + "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", + "voteResultMessage": "{length}/{required} han votado para saltar la canción", + "skipMessage": "Se ha saltado **{song}**" + }, + "skipTo": { + "description": "Salta a una posición específica de la cola", + "slashFirstDescription": "Regresa a la primera canción de la cola", + "slashLastDescription": "Salta a la última canción de la cola", + "slashSpecificDescription": "Salta a una posición específica en la cola", + "slashPositionDescription": "Posición de la canción en la cola", + "usage": "{prefix}skipto <{options} | número>", + "noPermission": "No tienes permiso para usar este comando.", + "noSongPosition": "No se pudo encontrar la canción en esta posición.", + "cantPlay": "No puedes saltar la canción actual.", + "skipMessage": "Se ha saltado a **{song}**" + }, + "stayInQueue": { + "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", + "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", + "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", + "actualState": "`Permanecer-Conectado` está **`{state}`**", + "newState": "`Permanecer-Conectado` se estableció **`{state}`**" + }, + "stop": { + "description": "Para el reproductor de música", + "stoppedMessage": "El reproductor de música se ha detenido." + }, + "volume": { + "description": "Cambia el volúmen del reproductor de música", + "slashDescription": "Nuevo volúmen", + "usage": "{prefix}volume [volumen]", + "currentVolume": "El volúmen actual es **`{volume}`**", + "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", + "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", + "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", + "newVolume": "Volúmen establecido en **`{volume}`**" + }, + "categoryName": "commands.music.categoryName", + "remove": { + "description": "commands.music.remove.description", + "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", + "usage": "commands.music.remove.usage" + } + } + }, + "utils": { + "musicDecorator": { + "noQueue": "No se está reproduciendo nada.", + "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", + "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", + "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", + "sameVC": "Necesitas estar en el mismo canal de voz que yo." + }, + "generalHandler": { + "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", + "errorJoining": "Error al unirse al canal de voz, razón: {message}", + "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", + "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", + "startPlaying": "Se empezó a reproducir **{song}**", + "stopPlaying": "Se detuvo la reproducción **{song}**", + "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" + }, + "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." + }, + "events": { + "channelUpdate": { + "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + }, + "createInteraction": { + "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", + "message2": "Lo siento, pero esta interacción es solo para <@{user}>" + }, + "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", + "voiceStateUpdate": { + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", + "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", + "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", + "joinStageMessage": "Me uní al canal escenario con éxito como orador.", + "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", + "deleteQueueFooter": "Cola eliminada", + "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", + "pauseQueueFooter": "Cola pausada", + "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", + "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", + "resumeQueueFooter": "Cola reanudada", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + } + }, + "reusable": { + "pageFooter": "Página {actual} de {total}", + "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." + } +} From 6ee4ce1604a3276226d5236f3cbf651c1dd58f20 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sun, 27 Mar 2022 10:21:44 +0700 Subject: [PATCH 200/411] chore(*): Tidy up (#840) This commit contains import-line ordering fix, string content update, and many other adjustments that I'm lazy to describe. --- .env_example | 45 +- .github/FUNDING.yml | 2 +- .swcrc | 2 +- .vscode/settings.json | 2 +- app.json | 28 +- index.js | 4 +- lang/en.json | 2 +- lang/es.json | 658 +++++++++--------- lang/id.json | 2 +- package-lock.json | 1 + src/commands/developers/EvalCommand.ts | 4 +- src/commands/music/LyricsCommand.ts | 2 +- src/commands/music/NowPlayingCommand.ts | 2 +- src/commands/music/SkipCommand.ts | 1 - src/config/index.ts | 8 +- src/events/ChannelUpdateEvent.ts | 2 +- src/index.ts | 4 +- src/structures/CommandContext.ts | 19 +- src/structures/ServerQueue.ts | 2 +- src/utils/decorators/Event.ts | 2 +- .../decorators/createCmdExecuteDecorator.ts | 2 +- src/utils/functions/formatMS.ts | 4 +- src/utils/functions/importURLToString.ts | 2 +- src/utils/handlers/SpotifyUtil.ts | 2 +- src/utils/handlers/general/play.ts | 1 - src/utils/structures/CommandManager.ts | 8 +- src/utils/structures/ModerationLogs.ts | 2 +- 27 files changed, 401 insertions(+), 412 deletions(-) diff --git a/.env_example b/.env_example index 839614eb3..836b04e4e 100644 --- a/.env_example +++ b/.env_example @@ -1,16 +1,16 @@ -# This is your bot's configuration file, control your bot's environment here. Every value must use a string ("") +# This is your bot's configuration file, control your bot's environment here. Every value must contains a string ("") #============================================================================== -# OPTIONAL = The value is optional and can be left blank -# IMPORTANT = It is recommended that you pay attention to the value -# MULTIPLE - The value can be multiple, each value splitted with comma or semi-colon. You can use single-string (') to escape if you have any comma or semicolon in the value. -# DEV - The value is recommended to be checked or changed only if you know what you are doing +# OPTIONAL = This value is optional, and can be left blank. +# IMPORTANT = It is recommended that you pay attention to the value. +# MULTIPLE - This value can be multiple string, each value splitted with comma or semi-colon. You can use single-quote (') to escape whether you have any comma or semicolon in the value. +# DEV - Leave blank, this value is not recommended to modify, except if you know what you are doing. #============================================================================== # IMPORTANT - What is your Discord bot's token? # Example: DISCORD_TOKEN="NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd" DISCORD_TOKEN="" #============================================================================== -# OPTIONAL, IMPORTANT - What should be the main prefix of your bot? +# IMPORTANT - What should be the main prefix of your bot? # Example: PREFIX="!" # Default: ! MAIN_PREFIX="" @@ -36,18 +36,18 @@ EMBED_COLOR="" LOCALE="" #============================================================================== -# OPTIONAL, MULTIPLE - Activity list -# Example: 'Hello!' +# OPTIONAL, MULTIPLE - Activity list, what text should be appear on your bot's status? +# Example: ACTIVITIES="Hello!" # Formats: {prefix} = bot prefix, {userCount} = user amount, {textChannelsCount} = text channel amount, {serverCount} = server amount, {playingCount} = amount of server playing music using the bot, {username} = bot username -ACTIVITIES='My default prefix is {prefix}, music with {userCount} users, {textChannelsCount} text channels in {serverCount} guilds, "Hello there, my name is {username}"' +ACTIVITIES="My default prefix is {prefix}, music with {userCount} users, {textChannelsCount} text channels in {serverCount} guilds, 'Hello there, my name is {username}'" #============================================================================== # OPTIONAL, MULTIPLE - Activity type list. # The order of this value is the same order as ACTIVITIES. # For example, first value of ACTIVITIES will use first value of this. -# Example: 'PLAYING, COMPETING' +# Example: ACTIVITY_TYPES="PLAYING, COMPETING" # Available: PLAYING, WATCHING, LISTENING, COMPETING -ACTIVITY_TYPES='PLAYING, LISTENING, WATCHING, PLAYING, COMPETING' +ACTIVITY_TYPES="PLAYING, LISTENING, WATCHING, PLAYING, COMPETING" #============================================================================== # OPTIONAL, MULTIPLE - What is the owner's ID of the bot? @@ -56,18 +56,19 @@ OWNERS="" #============================================================================== # OPTIONAL, MULTIPLE - What is your server's ID? -# Example: DEV_GUILD="941705543523897345" +# Example: DEV_GUILD="521178509033340968" DEV_GUILD="" #============================================================================== -# OPTIONAL - In which mode do you want to activate your bot? +# DEV - In which mode do you want to activate your bot? # Example: NODE_ENV="production" # Available: production, development # Default: production NODE_ENV="" #============================================================================== -# OPTIONAL - Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. +# OPTIONAL - Which youtube downloader do you want to use? +# But if you use play-dl, it will support a few sites. # Example: STREAM_STRATEGY="youtube-dl" # Available: play-dl, youtube-dl # Default: youtube-dl @@ -82,18 +83,18 @@ ENABLE_SLASH_COMMAND="" #============================================================================== # OPTIONAL - Which music selection type do you want to use? # Example: MUSIC_SELECTION_TYPE="selectmenu" -# Available: message (just like in previous version) or selectmenu (uses discord selection menu) +# Available: message (just like in previous version), selectmenu (uses discord selection menu) # Default: message MUSIC_SELECTION_TYPE="" #============================================================================== -# OPTIONAL, IMPORTANT - Do you want to enable the 24/7 command? +# IMPORTANT - Do you want to enable the 24/7 command? # Example: ENABLE_24_7_COMMAND="no" # Default: no ENABLE_24_7_COMMAND="" #============================================================================== -# OPTIONAL, IMPORTANT - Do you want to make your bot not leave the voice channel after playing a song? +# IMPORTANT - Do you want to make your bot not leaving the voice channel after playing a song? # Example: STAY_IN_VC_AFTER_FINISHED="no" # Default: no STAY_IN_VC_AFTER_FINISHED="" @@ -123,16 +124,16 @@ YES_EMOJI="" NO_EMOJI="" #============================================================================== -# OPTIONAL, DEV - Do you want to enable Debug Mode? +# DEV - Do you want to enable Debug Mode? # This mode will print all information (such as raw event data, queue changes, etc) on the console. # Example: DEBUG_MODE="no" # Default: no DEBUG_MODE="" #============================================================================== -# OPTIONAL, DEV - Do you want to enable REPL feature? -# You can eval code from the console using this feature. -# REPL included with `shardManager` variable containing the ShardManager of the bot. -# Example: ENABLE_REPL="no" +# DEV - Do you want to enable REPL feature? +# You can evaluate code from the console using this feature. +# REPL included with "shardManager" variable containing the ShardManager of the bot. +# Example: REPL="no" # Default: no REPL="" diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 44261fdff..63950d082 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ patreon: mzrtamp -custom: ["https://karyakarsa.com/mozartrafi"] +custom: ["https://paypal.me/mozartrafi"] diff --git a/.swcrc b/.swcrc index fb3bb912c..dc76be63b 100644 --- a/.swcrc +++ b/.swcrc @@ -10,4 +10,4 @@ "module": { "type": "es6" } -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 29ec6117f..cee7bbae9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,4 +4,4 @@ "npm.packageManager": "npm", "files.eol": "\n", "liveshare.languages.allowGuestCommandControl": true -} +} \ No newline at end of file diff --git a/app.json b/app.json index 4433c0d64..3d3a4f7a0 100644 --- a/app.json +++ b/app.json @@ -23,27 +23,27 @@ "value": "3CAAFF" }, "LOCALE": { - "description": "What should be the language of your bot? Example: en | Available: en, es, id", + "description": "What should be the language of your bot? | Example: en | Available: en, es, id", "required": false, "value": "en" }, "ACTIVITIES": { - "description": "Activity list | Example: [\"Hello!\"]", + "description": "Activity list, what text should be appear on your bot's status? | Example: [\"Hello!\"]", "required": false, "value": "[\"My default prefix is {prefix}\", \"music with {userCount} users\", \"{textChannelsCount} text channels in {serverCount} guilds\", \"Hello there, my name is {username}\"]" }, "ACTIVITY_TYPES": { - "description": "Activity type list. The order of this value is the same as ACTIVITIES. For example, first value of ACTIVITIES will use first value of this | Example: [\"PLAYING\", \"COMPETING\"]", + "description": "Activity type list. The order of this value is the same as ACTIVITIES. For example, first value of ACTIVITIES will use first value of this. | Example: [\"PLAYING\", \"COMPETING\"]", "required": false, "value": "[\"PLAYING\", \"LISTENING\", \"WATCHING\", \"PLAYING\", \"COMPETING\"]" }, "OWNERS": { - "description": "What is the owner's ID of the bot? | Example: [\"319872685897416725\", \"390045370240991234\"]", + "description": "What is the owner's ID of the bot? | Example: [\"390045370240991234\", \"366169273485361153\"]", "required": false, "value": "[\"\"]" }, "DEV_GUILD": { - "description": "What is your server's ID? | Example: [\"332877090003091456\"]", + "description": "What is your server's ID? | Example: [\"521178509033340968\"]", "required": false, "value": "[\"\"]" }, @@ -53,7 +53,7 @@ "value": "production" }, "STREAM_STRATEGY": { - "description": "Which youtube downloader do you want to use? Note: if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"youtube-dl\"", + "description": "Which youtube downloader do you want to use? But if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"youtube-dl\"", "required": false, "value": "youtube-dl" }, @@ -63,7 +63,7 @@ "value": "yes" }, "MUSIC_SELECTION_TYPE": { - "description": "Which music selection type do you want to use? | Example: selectmenu | Available: message (just like in the previous version) or selectmenu (uses discord selection menu)", + "description": "Which music selection type do you want to use? | Example: selectmenu | Available: message (just like in the previous version), selectmenu (uses discord selection menu)", "required": false, "value": "message" }, @@ -73,7 +73,7 @@ "value": "no" }, "STAY_IN_VC_AFTER_FINISHED": { - "description": "Do you want to make your bot not leave the voice channel after playing a song? | Example: no", + "description": "Do you want to make your bot not leaving the voice channel after playing a song? | Example: no", "required": false, "value": "no" }, @@ -96,10 +96,20 @@ "description": "What should be your bot's emoji for every failed sentence? | Example: ❌", "required": false, "value": "❌" + }, + "DEBUG_MODE": { + "description": "Do you want to enable Debug Mode? This mode will print all information (such as raw event data, queue changes, etc) on the console. | Example: no", + "required": false, + "value": "no" + }, + "REPL": { + "description": "Do you want to enable REPL feature? You can evaluate code from the console using this feature. REPL included with \"shardManager\" variable containing the ShardManager of the bot. | Example: no", + "required": false, + "value": "no" } }, "repository": "https://github.com/Rahagia/rawon", - "website": "https://rawon.tiramitzu.me", + "website": "https://rawon.rahagia.tech", "formation": { "worker": { "quantity": 1, diff --git a/index.js b/index.js index 4e6e2fc4b..52ceaa966 100644 --- a/index.js +++ b/index.js @@ -52,7 +52,9 @@ function npmInstall(deleteDir = false, forceInstall = false, additionalArgs = [] const modulesPath = resolve(process.cwd(), "node_modules"); if (existsSync(modulesPath)) { - rmSync(modulesPath, { recursive: true }); + rmSync(modulesPath, { + recursive: true + }); } } diff --git a/lang/en.json b/lang/en.json index d9ab375d0..e583d3ebe 100644 --- a/lang/en.json +++ b/lang/en.json @@ -178,7 +178,7 @@ "nowplaying": { "description": "Show the media player status", "emptyQueue": "Queue is empty", - "disableButton": "After 30 seconds, the buttons will no longer be active." + "disableButton": "This button is no longer active and removed." }, "pause": { "description": "Pause the music player", diff --git a/lang/es.json b/lang/es.json index ca0c3def7..714075051 100644 --- a/lang/es.json +++ b/lang/es.json @@ -1,331 +1,331 @@ { - "commands": { - "developers": { - "categoryName": "DESARROLLADOR", - "eval": { - "description": "Evaluar al bot", - "usage": "{prefix}eval <código>", - "noCode": "No se ingresó código.", - "outputString": "Salida", - "errorString": "Error" - } - }, - "general": { - "categoryName": "GENERAL", - "about": { - "description": "Muestra la información del bot", - "osUptimeString": "Tiempo de actividad del SO", - "processUptimeString": "Tiempo de actividad del proceso", - "botUptimeString": "Tiempo de actividad del bot", - "nodeVersionString": "Versión de Node.js", - "discordJSVersionString": "Versión de Discord.js", - "ffmpegVersionString": "Versión de FFmpeg", - "botVersionString": "Versión del bot", - "sourceCodeString": "Código Fuente", - "aboutFooter": "Información del bot {botname}" - }, - "help": { - "description": "Muestra la lista de comandos o la información de un comando específico", - "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", - "usage": "{prefix}help [comando]", - "authorString": "Lista de comandos de {username}", - "footerString": "{prefix}help <comando> para obtener más información de un comando específico", - "noCommand": "No se puede encontrar el comando", - "commandSelectionString": "Por favor selecciona un comando", - "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", - "commandDetailTitle": "{username} - Información del comando {command}", - "nameString": "Nombre", - "descriptionString": "Descripción", - "aliasesString": "Alias", - "usageString": "Uso", - "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" - }, - "invite": { - "description": "Obtén el enlace de invitación para el bot", - "inviteTitle": "{bot} - Enlace De Invitación", - "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." - }, - "ping": { - "description": "Muestra el ping actual del bot", - "footerString": "Latencia de: {user}" - } - }, - "moderation": { - "common": { - "categoryName": "MODERACIÓN", - "noUserSpecified": "Por favor especifica un usuario.", - "noReasonString": "[No especificado]", - "reasonString": "**Razón**" - }, - "ban": { - "description": "Banea a alguien en el servidor", - "slashMemberIDDescription": "A quién quisieras banear?", - "slashReasonDescription": "Razón del ban", - "usage": "{prefix}ban <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", - "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", - "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", - "bannedByString": "Baneado por: {author}", - "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", - "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." - }, - "infractions": { - "description": "Muestra las infracciones de un usuario", - "slashMemberDescription": "¿De quién quisieras ver las infracciones?", - "usage": "{prefix}infractions [@mención | id]", - "embedAuthorText": "{user} - Infracciones", - "noInfractions": "No hay infracciones." - }, - "kick": { - "description": "Expulsa a alguien del servidor", - "slashMemberDescription": "¿A quién te quisieras expulsar?", - "slashReasonDescription": "Razón de expulsión", - "usage": "{prefix}kick <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", - "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", - "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", - "kickedByString": "Expulsado por: {author}", - "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", - "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." - }, - "modlogs": { - "description": "Cambia los ajustes del registro de moderación", - "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", - "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", - "slashEnableDescription": "Activa el registro de moderación", - "slashDisableDescription": "Desactiva el registro de moderación", - "usage": "modlogs", - "channel": { - "current": "Canal de registro de moderación actual: <#{channel}>", - "noChannel": "El canal de registro de moderación aún no ha sido establecido.", - "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", - "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" - }, - "embedTitle": "Registro de Moderación", - "newChannelText": "Nuevo canal", - "disable": "Registro de moderación está **`DESACTIVO`**", - "enable": "Registro de moderación está **`ACTIVO`**" - }, - "mute": { - "description": "Silencia a alguien en el servidor", - "slashMemberDescription": "¿A quién quisieras silenciar?", - "slashReasonDescription": "Razón de silencio", - "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", - "usage": "{prefix}mute <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", - "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", - "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", - "mutedByString": "Silenciado por: {author}", - "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." - }, - "purge": { - "description": "Eliminar mensajes", - "slashAmountDescription": "Cantidad de mensajes a eliminar", - "usage": "{prefix}purge <monto>", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", - "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", - "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", - "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" - }, - "unban": { - "description": "Desbanea a alguien del servidor", - "slashMemberDescription": "A quién quisieras desbanear?", - "slashReasonDescription": "Razón de desbaneo", - "usage": "{prefix}unban <id> [razón]", - "alreadyUnban": "Este usuario no está **`BANEADO`**", - "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", - "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." - }, - "unmute": { - "description": "Desilenciar a alguien del servidor", - "slashMemberDescription": "A quién quisieras desilenciar?", - "slashReasonDescription": "Razón del desilencio", - "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", - "usage": "{prefix}unmute <@mención | id> [razón]", - "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", - "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", - "unmutedByString": "Desilenciado por: {author}", - "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", - "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." - }, - "warn": { - "description": "Advierte a un miembro en el servidor", - "slashMemberDescription": "¿A quién quisieras advertir?", - "slashReasonDescription": "Razón de advertencia", - "usage": "{prefix}warn <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", - "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", - "warnedByString": "Advertido por: {author}", - "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." - }, - "categoryName": "commands.moderation.categoryName" - }, - "music": { - "lyrics": { - "categoryName": "MÚSICA", - "description": "Muestra la letra de una canción", - "slashDescription": "Canción a buscar", - "usage": "{prefix}lyrics [canción]", - "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", - "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" - }, - "nowplaying": { - "description": "Muestra la canción que se está reproduciendo", - "emptyQueue": "La cola está vacía", - "disableButton": "Después de 30 segundos, los botones se desactivarán." - }, - "pause": { - "description": "Pausa la reproducción de música", - "alreadyPause": "El reproductor de música ya está en pausa.", - "pauseMessage": "Se ha pausado el reproductor de música." - }, - "play": { - "description": "Reproduce algo de música", - "slashQueryDescription": "Canción a reproducir", - "usage": "{prefix}play <consulta / url>", - "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", - "noSongData": "Este URL no tiene datos de canciones." - }, - "queue": { - "description": "Muestra la cola de reproducción" - }, - "repeat": { - "description": "Repite la canción actual o la cola completa", - "slashQueue": "Establece el mode repetición a **`QUEUE`**", - "slashSong": "Establece el mode repetición a **`ONE`**", - "footer": "Para cambiar el modo, mira '{prefix}help repeat'", - "slashDisable": "Desactiva el modo repetición", - "usage": "{prefix}repeat <{options}>", - "actualMode": "El modo de repetición actual es **`{mode}`**", - "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" - }, - "resume": { - "description": "Reanuda el reproductor de música", - "alreadyResume": "El reproductor de música no está en pausa.", - "resumeMessage": "El reproductor de música ha sido reanudado." - }, - "search": { - "description": "Reproduce alguna canción usando una fuente específica", - "slashDescription": "Busca una canción específica", - "slashQueryDescription": "Canción a buscar", - "slashSourceDescription": "¿De dónde debería tomar la canción?", - "usage": "{prefix}search <canción> [fuente]", - "noQuery": "Por favor ingresa alguna canción para buscar.", - "noTracks": "No pude obtener resultados.", - "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", - "trackSelectionMessage": "Selección de canciones", - "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", - "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", - "canceledMessage": "Selección de canciones cancelada.", - "interactionContent": "Por favor selecciona una canción", - "interactionPlaceholder": "Por favor selecciona una canción" - }, - "shuffle": { - "description": "Aleatoriza la cola", - "actualState": "El modo aleatorio está **`{state}`**", - "newState": "El modo aleatorio se estableció ahora a **`{state}`**" - }, - "skip": { - "description": "Salta la canción actual", - "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", - "voteResultMessage": "{length}/{required} han votado para saltar la canción", - "skipMessage": "Se ha saltado **{song}**" - }, - "skipTo": { - "description": "Salta a una posición específica de la cola", - "slashFirstDescription": "Regresa a la primera canción de la cola", - "slashLastDescription": "Salta a la última canción de la cola", - "slashSpecificDescription": "Salta a una posición específica en la cola", - "slashPositionDescription": "Posición de la canción en la cola", - "usage": "{prefix}skipto <{options} | número>", - "noPermission": "No tienes permiso para usar este comando.", - "noSongPosition": "No se pudo encontrar la canción en esta posición.", - "cantPlay": "No puedes saltar la canción actual.", - "skipMessage": "Se ha saltado a **{song}**" - }, - "stayInQueue": { - "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", - "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", - "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", - "actualState": "`Permanecer-Conectado` está **`{state}`**", - "newState": "`Permanecer-Conectado` se estableció **`{state}`**" - }, - "stop": { - "description": "Para el reproductor de música", - "stoppedMessage": "El reproductor de música se ha detenido." - }, - "volume": { - "description": "Cambia el volúmen del reproductor de música", - "slashDescription": "Nuevo volúmen", - "usage": "{prefix}volume [volumen]", - "currentVolume": "El volúmen actual es **`{volume}`**", - "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", - "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", - "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", - "newVolume": "Volúmen establecido en **`{volume}`**" - }, - "categoryName": "commands.music.categoryName", - "remove": { - "description": "commands.music.remove.description", - "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", - "usage": "commands.music.remove.usage" - } - } - }, - "utils": { - "musicDecorator": { - "noQueue": "No se está reproduciendo nada.", - "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", - "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", - "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", - "sameVC": "Necesitas estar en el mismo canal de voz que yo." - }, - "generalHandler": { - "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", - "errorJoining": "Error al unirse al canal de voz, razón: {message}", - "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", - "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", - "startPlaying": "Se empezó a reproducir **{song}**", - "stopPlaying": "Se detuvo la reproducción **{song}**", - "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" - }, - "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." - }, - "events": { - "channelUpdate": { - "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - }, - "createInteraction": { - "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", - "message2": "Lo siento, pero esta interacción es solo para <@{user}>" - }, - "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", - "voiceStateUpdate": { - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", - "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", - "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", - "joinStageMessage": "Me uní al canal escenario con éxito como orador.", - "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", - "deleteQueueFooter": "Cola eliminada", - "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", - "pauseQueueFooter": "Cola pausada", - "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", - "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", - "resumeQueueFooter": "Cola reanudada", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - } - }, - "reusable": { - "pageFooter": "Página {actual} de {total}", - "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." - } + "commands": { + "developers": { + "categoryName": "DESARROLLADOR", + "eval": { + "description": "Evaluar al bot", + "usage": "{prefix}eval <código>", + "noCode": "No se ingresó código.", + "outputString": "Salida", + "errorString": "Error" + } + }, + "general": { + "categoryName": "GENERAL", + "about": { + "description": "Muestra la información del bot", + "osUptimeString": "Tiempo de actividad del SO", + "processUptimeString": "Tiempo de actividad del proceso", + "botUptimeString": "Tiempo de actividad del bot", + "nodeVersionString": "Versión de Node.js", + "discordJSVersionString": "Versión de Discord.js", + "ffmpegVersionString": "Versión de FFmpeg", + "botVersionString": "Versión del bot", + "sourceCodeString": "Código Fuente", + "aboutFooter": "Información del bot {botname}" + }, + "help": { + "description": "Muestra la lista de comandos o la información de un comando específico", + "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", + "usage": "{prefix}help [comando]", + "authorString": "Lista de comandos de {username}", + "footerString": "{prefix}help <comando> para obtener más información de un comando específico", + "noCommand": "No se puede encontrar el comando", + "commandSelectionString": "Por favor selecciona un comando", + "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", + "commandDetailTitle": "{username} - Información del comando {command}", + "nameString": "Nombre", + "descriptionString": "Descripción", + "aliasesString": "Alias", + "usageString": "Uso", + "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" + }, + "invite": { + "description": "Obtén el enlace de invitación para el bot", + "inviteTitle": "{bot} - Enlace De Invitación", + "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." + }, + "ping": { + "description": "Muestra el ping actual del bot", + "footerString": "Latencia de: {user}" + } + }, + "moderation": { + "common": { + "categoryName": "MODERACIÓN", + "noUserSpecified": "Por favor especifica un usuario.", + "noReasonString": "[No especificado]", + "reasonString": "**Razón**" + }, + "ban": { + "description": "Banea a alguien en el servidor", + "slashMemberIDDescription": "A quién quisieras banear?", + "slashReasonDescription": "Razón del ban", + "usage": "{prefix}ban <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", + "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", + "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", + "bannedByString": "Baneado por: {author}", + "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", + "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." + }, + "infractions": { + "description": "Muestra las infracciones de un usuario", + "slashMemberDescription": "¿De quién quisieras ver las infracciones?", + "usage": "{prefix}infractions [@mención | id]", + "embedAuthorText": "{user} - Infracciones", + "noInfractions": "No hay infracciones." + }, + "kick": { + "description": "Expulsa a alguien del servidor", + "slashMemberDescription": "¿A quién te quisieras expulsar?", + "slashReasonDescription": "Razón de expulsión", + "usage": "{prefix}kick <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", + "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", + "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", + "kickedByString": "Expulsado por: {author}", + "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", + "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." + }, + "modlogs": { + "description": "Cambia los ajustes del registro de moderación", + "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", + "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", + "slashEnableDescription": "Activa el registro de moderación", + "slashDisableDescription": "Desactiva el registro de moderación", + "usage": "modlogs", + "channel": { + "current": "Canal de registro de moderación actual: <#{channel}>", + "noChannel": "El canal de registro de moderación aún no ha sido establecido.", + "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", + "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" + }, + "embedTitle": "Registro de Moderación", + "newChannelText": "Nuevo canal", + "disable": "Registro de moderación está **`DESACTIVO`**", + "enable": "Registro de moderación está **`ACTIVO`**" + }, + "mute": { + "description": "Silencia a alguien en el servidor", + "slashMemberDescription": "¿A quién quisieras silenciar?", + "slashReasonDescription": "Razón de silencio", + "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", + "usage": "{prefix}mute <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", + "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", + "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", + "mutedByString": "Silenciado por: {author}", + "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." + }, + "purge": { + "description": "Eliminar mensajes", + "slashAmountDescription": "Cantidad de mensajes a eliminar", + "usage": "{prefix}purge <monto>", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", + "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", + "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", + "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" + }, + "unban": { + "description": "Desbanea a alguien del servidor", + "slashMemberDescription": "A quién quisieras desbanear?", + "slashReasonDescription": "Razón de desbaneo", + "usage": "{prefix}unban <id> [razón]", + "alreadyUnban": "Este usuario no está **`BANEADO`**", + "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", + "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." + }, + "unmute": { + "description": "Desilenciar a alguien del servidor", + "slashMemberDescription": "A quién quisieras desilenciar?", + "slashReasonDescription": "Razón del desilencio", + "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", + "usage": "{prefix}unmute <@mención | id> [razón]", + "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", + "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", + "unmutedByString": "Desilenciado por: {author}", + "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", + "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." + }, + "warn": { + "description": "Advierte a un miembro en el servidor", + "slashMemberDescription": "¿A quién quisieras advertir?", + "slashReasonDescription": "Razón de advertencia", + "usage": "{prefix}warn <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", + "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", + "warnedByString": "Advertido por: {author}", + "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." + }, + "categoryName": "commands.moderation.categoryName" + }, + "music": { + "lyrics": { + "categoryName": "MÚSICA", + "description": "Muestra la letra de una canción", + "slashDescription": "Canción a buscar", + "usage": "{prefix}lyrics [canción]", + "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", + "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" + }, + "nowplaying": { + "description": "Muestra la canción que se está reproduciendo", + "emptyQueue": "La cola está vacía", + "disableButton": "Este botón ya no está activo y eliminado." + }, + "pause": { + "description": "Pausa la reproducción de música", + "alreadyPause": "El reproductor de música ya está en pausa.", + "pauseMessage": "Se ha pausado el reproductor de música." + }, + "play": { + "description": "Reproduce algo de música", + "slashQueryDescription": "Canción a reproducir", + "usage": "{prefix}play <consulta / url>", + "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", + "noSongData": "Este URL no tiene datos de canciones." + }, + "queue": { + "description": "Muestra la cola de reproducción" + }, + "repeat": { + "description": "Repite la canción actual o la cola completa", + "slashQueue": "Establece el mode repetición a **`QUEUE`**", + "slashSong": "Establece el mode repetición a **`ONE`**", + "footer": "Para cambiar el modo, mira '{prefix}help repeat'", + "slashDisable": "Desactiva el modo repetición", + "usage": "{prefix}repeat <{options}>", + "actualMode": "El modo de repetición actual es **`{mode}`**", + "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" + }, + "resume": { + "description": "Reanuda el reproductor de música", + "alreadyResume": "El reproductor de música no está en pausa.", + "resumeMessage": "El reproductor de música ha sido reanudado." + }, + "search": { + "description": "Reproduce alguna canción usando una fuente específica", + "slashDescription": "Busca una canción específica", + "slashQueryDescription": "Canción a buscar", + "slashSourceDescription": "¿De dónde debería tomar la canción?", + "usage": "{prefix}search <canción> [fuente]", + "noQuery": "Por favor ingresa alguna canción para buscar.", + "noTracks": "No pude obtener resultados.", + "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", + "trackSelectionMessage": "Selección de canciones", + "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", + "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", + "canceledMessage": "Selección de canciones cancelada.", + "interactionContent": "Por favor selecciona una canción", + "interactionPlaceholder": "Por favor selecciona una canción" + }, + "shuffle": { + "description": "Aleatoriza la cola", + "actualState": "El modo aleatorio está **`{state}`**", + "newState": "El modo aleatorio se estableció ahora a **`{state}`**" + }, + "skip": { + "description": "Salta la canción actual", + "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", + "voteResultMessage": "{length}/{required} han votado para saltar la canción", + "skipMessage": "Se ha saltado **{song}**" + }, + "skipTo": { + "description": "Salta a una posición específica de la cola", + "slashFirstDescription": "Regresa a la primera canción de la cola", + "slashLastDescription": "Salta a la última canción de la cola", + "slashSpecificDescription": "Salta a una posición específica en la cola", + "slashPositionDescription": "Posición de la canción en la cola", + "usage": "{prefix}skipto <{options} | número>", + "noPermission": "No tienes permiso para usar este comando.", + "noSongPosition": "No se pudo encontrar la canción en esta posición.", + "cantPlay": "No puedes saltar la canción actual.", + "skipMessage": "Se ha saltado a **{song}**" + }, + "stayInQueue": { + "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", + "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", + "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", + "actualState": "`Permanecer-Conectado` está **`{state}`**", + "newState": "`Permanecer-Conectado` se estableció **`{state}`**" + }, + "stop": { + "description": "Para el reproductor de música", + "stoppedMessage": "El reproductor de música se ha detenido." + }, + "volume": { + "description": "Cambia el volúmen del reproductor de música", + "slashDescription": "Nuevo volúmen", + "usage": "{prefix}volume [volumen]", + "currentVolume": "El volúmen actual es **`{volume}`**", + "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", + "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", + "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", + "newVolume": "Volúmen establecido en **`{volume}`**" + }, + "categoryName": "commands.music.categoryName", + "remove": { + "description": "commands.music.remove.description", + "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", + "usage": "commands.music.remove.usage" + } + } + }, + "utils": { + "musicDecorator": { + "noQueue": "No se está reproduciendo nada.", + "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", + "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", + "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", + "sameVC": "Necesitas estar en el mismo canal de voz que yo." + }, + "generalHandler": { + "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", + "errorJoining": "Error al unirse al canal de voz, razón: {message}", + "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", + "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", + "startPlaying": "Se empezó a reproducir **{song}**", + "stopPlaying": "Se detuvo la reproducción **{song}**", + "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" + }, + "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." + }, + "events": { + "channelUpdate": { + "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + }, + "createInteraction": { + "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", + "message2": "Lo siento, pero esta interacción es solo para <@{user}>" + }, + "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", + "voiceStateUpdate": { + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", + "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", + "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", + "joinStageMessage": "Me uní al canal escenario con éxito como orador.", + "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", + "deleteQueueFooter": "Cola eliminada", + "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", + "pauseQueueFooter": "Cola pausada", + "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", + "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", + "resumeQueueFooter": "Cola reanudada", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + } + }, + "reusable": { + "pageFooter": "Página {actual} de {total}", + "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." + } } diff --git a/lang/id.json b/lang/id.json index d3ab598ad..119456633 100644 --- a/lang/id.json +++ b/lang/id.json @@ -152,7 +152,7 @@ "nowplaying": { "description": "Menunjukkan status media player", "emptyQueue": "Antrian telah kosong", - "disableButton": "Setelah 30 detik, tombol-tombol tidak akan aktif kembali." + "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus." }, "pause": { "description": "Menjeda media player", diff --git a/package-lock.json b/package-lock.json index 304ea7845..eff1965a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index 7547328b3..17a00f6ab 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -84,10 +84,10 @@ export class EvalCommand extends BaseCommand { } private async hastebin(text: string): Promise<string> { - const result = await this.client.request.post("https://bin.tiramitzu.me/documents", { + const result = await this.client.request.post("https://bin.rahagia.tech/documents", { body: text }).json<{ key: string }>(); - return `https://bin.tiramitzu.me/${result.key}`; + return `https://bin.rahagia.tech/${result.key}`; } } diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 69e1b8b55..c58d76e01 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -55,7 +55,7 @@ export class LyricsCommand extends BaseCommand { }); } - const albumArt = data.album_art ?? "https://api.tiramitzu.me/assets/images/icon.png"; + const albumArt = data.album_art ?? "https://api.rahagia.tech/assets/images/icon.png"; const pages: string[] = chunk(data.lyrics!, 2048); const embed = createEmbed("info", pages[0]) .setAuthor({ diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index 7f1d50810..f34aece9c 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -33,7 +33,7 @@ export class NowPlayingCommand extends BaseCommand { song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue") - }`).setThumbnail(song?.thumbnail ?? "https://api.tiramitzu.me/assets/images/icon.png"); + }`).setThumbnail(song?.thumbnail ?? "https://api.rahagia.tech/assets/images/icon.png"); } const buttons = new MessageActionRow() diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index bdc54a034..0a5cf5106 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -20,7 +20,6 @@ import { GuildMember } from "discord.js"; }) export class SkipCommand extends BaseCommand { private readonly manager = new OperationManager(); - @inVC @haveQueue @sameVC diff --git a/src/config/index.ts b/src/config/index.ts index d11e61f2a..c155125dd 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1,11 +1,5 @@ import { lang } from "./env"; -import { - ClientOptions, - Intents, - Options, - ShardingManagerMode, - Sweepers -} from "discord.js"; +import { ClientOptions, Intents, Options, ShardingManagerMode, Sweepers } from "discord.js"; import { join } from "path"; import i18n from "i18n"; diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index 71243af98..ce860fa67 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -30,7 +30,7 @@ export class ChannelUpdateEvent extends BaseEvent { .catch(() => { queue.destroy(); this.client.logger.info( - `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure networking on ${newChannel.guild.name} voice channel, the queue was deleted.` + `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure network on ${newChannel.guild.name} voice channel, the queue was deleted.` ); void msg.edit({ embeds: [createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true)] diff --git a/src/index.ts b/src/index.ts index a76c92a1f..7af2056c0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ -import { importURLToString } from "./utils/functions/importURLToString"; import { enableRepl, isProd, shardingMode, shardsCount } from "./config"; +import { importURLToString } from "./utils/functions/importURLToString"; import { RawonLogger } from "./utils/structures/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; @@ -26,7 +26,7 @@ if (enableRepl) { } manager.on("shardCreate", shard => { - log.info(`[ShardManager] Shard #${shard.id} Spawned.`); + log.info(`[ShardManager] Shard #${shard.id} has spawned.`); shard.on("disconnect", () => log.warn("SHARD_DISCONNECTED: ", { stack: `[ShardManager] Shard #${shard.id} has disconnected.` })) .on("reconnection", () => log.info(`[ShardManager] Shard #${shard.id} has reconnected.`)); if (manager.shards.size === manager.totalShards) log.info("[ShardManager] All shards are spawned successfully."); diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 61896a701..dfe07b8fb 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,24 +1,7 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition, no-nested-ternary */ import { InteractionTypes, MessageComponentTypes } from "../typings/enum"; import { MessageInteractionAction } from "../typings"; -import { - ButtonInteraction, - Collection, - CommandInteraction, - ContextMenuInteraction, - GuildMember, - Interaction, - InteractionReplyOptions, - Message, - MessageActionRow, - MessageButton, - MessageMentions, - MessageOptions, - MessagePayload, - SelectMenuInteraction, - TextBasedChannel, - User -} from "discord.js"; +import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageMentions, MessageOptions, MessagePayload, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; export class CommandContext { public additionalArgs: Collection<string, any> = new Collection(); diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index e8648f003..1dd209ce0 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,10 +1,10 @@ -import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, AudioResource, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; import { SongManager } from "../utils/structures/SongManager"; import { createEmbed } from "../utils/functions/createEmbed"; import { play } from "../utils/handlers/GeneralUtil"; import { LoopMode, QueueSong } from "../typings"; import { Rawon } from "./Rawon"; import i18n from "../config"; +import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, AudioResource, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; import { TextChannel, Snowflake } from "discord.js"; export class ServerQueue { diff --git a/src/utils/decorators/Event.ts b/src/utils/decorators/Event.ts index 64a4b7fb6..0a9606933 100644 --- a/src/utils/decorators/Event.ts +++ b/src/utils/decorators/Event.ts @@ -1,5 +1,5 @@ -import { BaseEvent, ExtendedEventConstructor } from "../../structures/BaseEvent"; import { ClassDecorator, Event as EI, NonAbstractConstructor } from "../../typings"; +import { BaseEvent, ExtendedEventConstructor } from "../../structures/BaseEvent"; export function Event<T extends NonAbstractConstructor<BaseEvent> = ExtendedEventConstructor>( event: EI["name"] diff --git a/src/utils/decorators/createCmdExecuteDecorator.ts b/src/utils/decorators/createCmdExecuteDecorator.ts index 5c9a03406..1879240a9 100644 --- a/src/utils/decorators/createCmdExecuteDecorator.ts +++ b/src/utils/decorators/createCmdExecuteDecorator.ts @@ -1,6 +1,6 @@ +import { createMethodDecorator } from "./createMethodDecorator"; import { MethodDecorator, Promisable } from "../../typings"; import { BaseCommand } from "../../structures/BaseCommand"; -import { createMethodDecorator } from "./createMethodDecorator"; export function createCmdExecuteDecorator( func: (...args: Parameters<BaseCommand["execute"]>) => Promisable<boolean | undefined> diff --git a/src/utils/functions/formatMS.ts b/src/utils/functions/formatMS.ts index da5e8bec0..876cc90e7 100644 --- a/src/utils/functions/formatMS.ts +++ b/src/utils/functions/formatMS.ts @@ -6,7 +6,7 @@ const key = Object.keys(locales).find(v => v.toLowerCase() === lang.toLowerCase( const locale = key ? (locales as Record<string, globalThis.Locale>)[key] : locales.enUS; export function formatMS(ms: number): string { - if (isNaN(ms)) throw new Error("value is not a number."); + if (isNaN(ms)) throw new Error("Value is not a number."); return formatDuration(intervalToDuration({ start: 0, end: ms }), { locale @@ -14,7 +14,7 @@ export function formatMS(ms: number): string { } export function formatTime(time: number): string { - if (isNaN(time)) throw new Error("value is not a number."); + if (isNaN(time)) throw new Error("Value is not a number."); return format(time, "P HH:mm", { locale diff --git a/src/utils/functions/importURLToString.ts b/src/utils/functions/importURLToString.ts index a11076cd5..3d0f351be 100644 --- a/src/utils/functions/importURLToString.ts +++ b/src/utils/functions/importURLToString.ts @@ -1,5 +1,5 @@ -import { URL } from "url"; import { platform } from "os"; +import { URL } from "url"; export function importURLToString(url: string): string { const pathArray = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 65fd6a873..65cf39be2 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -16,7 +16,7 @@ export class SpotifyUtil { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json<SpotifyAccessTokenAPIResult>(); - if (!accessToken) throw new Error("Could not fetch self spotify token."); + if (!accessToken) throw new Error("Could not fetch self Spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; } diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index e3f2e61bc..dae806e70 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -48,7 +48,6 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): if (wasIdle) { void playResource(); } else { - // eslint-disable-next-line max-lines entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) .then(async () => { await playResource(); diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index f6d2ba0a1..befe2bfe3 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -1,6 +1,6 @@ +import { CategoryMeta, CommandComponent, RegisterCmdOptions } from "../../typings"; import { pathStringToURLString } from "../functions/pathStringToURLString"; import { CommandContext } from "../../structures/CommandContext"; -import { CategoryMeta, CommandComponent, RegisterCmdOptions } from "../../typings"; import { createEmbed } from "../functions/createEmbed"; import { Rawon } from "../../structures/Rawon"; import i18n from "../../config"; @@ -54,7 +54,7 @@ export class CommandManager extends Collection<string, CommandComponent> { name: command.meta.contextChat, type: "MESSAGE" }, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to message context for ${g?.id ?? "???"}. Reason: ${err.message}`), + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to message context for ${g?.id ?? "???"}, reason: ${err.message}`), onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to message context for ${g.id}`) }); if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to message context for global.`); @@ -64,7 +64,7 @@ export class CommandManager extends Collection<string, CommandComponent> { name: command.meta.contextUser, type: "USER" }, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to user context for ${g?.id ?? "???"}. Reason: ${err.message}`), + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to user context for ${g?.id ?? "???"}, reason: ${err.message}`), onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to user context for ${g.id}`) }); if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to user context for global.`); @@ -82,7 +82,7 @@ export class CommandManager extends Collection<string, CommandComponent> { } await this.registerCmd(command.meta.slash as ApplicationCommandData, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to slash command for ${g?.id ?? "???"}. Reason: ${err.message}`), + onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to slash command for ${g?.id ?? "???"}, reason: ${err.message}`), onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to slash command for ${g.id}`) }); if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to slash command for global.`); diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index e442d1b26..0018fe0cf 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -65,7 +65,7 @@ export class ModerationLogs { let ch: TextChannel | undefined; try { - // Temporary solution for mod-log checking. + // Temporary solution for mod-logs checking. const modlog = this.client.data.data![guild.id]!.modLog; if (!modlog.enable) throw new Error(); From d17772ad28a1c2c61e5464a403cb2a38628ef5ec Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:08:59 +0900 Subject: [PATCH 201/411] feat(SongManager): add logger for value changes --- src/utils/structures/SongManager.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/utils/structures/SongManager.ts b/src/utils/structures/SongManager.ts index 91d9e79b2..5c8a093a7 100644 --- a/src/utils/structures/SongManager.ts +++ b/src/utils/structures/SongManager.ts @@ -1,7 +1,10 @@ import { Song, QueueSong } from "../../typings"; +import { Rawon } from "../../structures/Rawon"; import { Collection, GuildMember, Snowflake, SnowflakeUtil } from "discord.js"; export class SongManager extends Collection<Snowflake, QueueSong> { + public constructor(public readonly client: Rawon, public readonly guild: GuildMember["guild"]) { super(); } + public addSong(song: Song, requester: GuildMember): Snowflake { const key = SnowflakeUtil.generate(); const data: QueueSong = { @@ -15,6 +18,16 @@ export class SongManager extends Collection<Snowflake, QueueSong> { return key; } + public set(key: Snowflake, data: QueueSong): this { + this.client.debugLog.logData("info", "SONG_MANAGER", `New value added to ${this.guild.name}(${this.guild.id}) song manager. Key: ${key}`); + return super.set(key, data); + } + + public delete(key: Snowflake): boolean { + this.client.debugLog.logData("info", "SONG_MANAGER", `Value ${key} deleted from ${this.guild.name}(${this.guild.id}) song manager.`); + return super.delete(key); + } + public sortByIndex(): this { return this.sort((a, b) => a.index - b.index); } From c7b777c07afecbab6a23cd86a864b6939003cd3d Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:11:17 +0900 Subject: [PATCH 202/411] fix(ServerQueue): provide client and guild to song manager --- src/structures/ServerQueue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 1dd209ce0..8585a42b7 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -13,7 +13,7 @@ export class ServerQueue { public connection: VoiceConnection | null = null; public dcTimeout: NodeJS.Timeout | null = null; public timeout: NodeJS.Timeout | null = null; - public readonly songs = new SongManager(); + public readonly songs = new SongManager(this.client, this.textChannel.guild); public loopMode: LoopMode = "OFF"; public shuffle = false; From e93135df70a131e01234cc97115a6ab58592822f Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:12:17 +0900 Subject: [PATCH 203/411] feat(handleVideos): add debug logs --- src/utils/handlers/general/handleVideos.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index 265a3dace..c41c8eca6 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -51,6 +51,8 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: ctx.guild!.queue = new ServerQueue(ctx.channel as TextChannel); await sendPagination(); + client.debugLog.logData("info", "HANDLE_VIDEOS", `Created a server queue for ${ctx.guild!.name}(${ctx.guild!.id})`); + try { const connection = joinVoiceChannel({ adapterCreator: ctx.guild!.voiceAdapterCreator as DiscordGatewayAdapterCreator, @@ -61,10 +63,14 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: client.logger.debug(message); }); ctx.guild!.queue.connection = connection; + + client.debugLog.logData("info", "HANDLE_VIDEOS", `Connected to ${voiceChannel.name}(${voiceChannel.id}) in guild ${ctx.guild!.name}(${ctx.guild!.id})`); } catch (error) { ctx.guild?.queue.songs.clear(); delete ctx.guild!.queue; + client.debugLog.logData("error", "HANDLE_VIDEOS", `Error occured while connecting to ${ctx.guild!.name}(${ctx.guild!.id}). Reason: ${(error as Error).message}`); + client.logger.error("PLAY_CMD_ERR:", error); void ctx.channel!.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), true)] From c759bca272b994bab197caf6629e998783d80b3d Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:12:46 +0900 Subject: [PATCH 204/411] feat(play): add debug logs --- src/utils/handlers/general/play.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index dae806e70..c6f98fd1c 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -26,18 +26,23 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): }, 3500); }); }, 60000); + queue.client.debugLog.logData("info", "PLAY_HANDLER", `Queue ended for ${guild.name}(${guild.id})`); return; } const resource = createAudioResource(await getStream(song.song.url), { inlineVolume: true, metadata: song }); + queue.client.debugLog.logData("info", "PLAY_HANDLER", `Created audio resource for ${guild.name}(${guild.id})`); + queue.connection?.subscribe(queue.player); async function playResource(): Promise<void> { if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { - const suppressed = await guild.me?.voice.setSuppressed(false).catch(err => ({ error: err })); + queue?.client.debugLog.logData("info", "PLAY_HANDLER", `Trying to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${guild.me?.voice.channel?.id ?? "ID UNKNOWN"}) in guild ${guild.name}(${guild.id})`); + const suppressed = await guild.me?.voice.setSuppressed(false).catch((err: Error) => ({ error: err })); if (suppressed && "error" in suppressed) { - queue?.player.emit("error", new AudioPlayerError(suppressed.error as Error, resource)); + queue?.client.debugLog.logData("error", "PLAY_HANDLER", `Failed to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${guild.me?.voice.channel?.id ?? "ID UNKNOWN"}) in guild ${guild.name}(${guild.id}). Reason: ${suppressed.error.message}`); + queue?.player.emit("error", new AudioPlayerError(suppressed.error, resource)); return; } } @@ -48,12 +53,14 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): if (wasIdle) { void playResource(); } else { + queue.client.debugLog.logData("info", "PLAY_HANDLER", `Trying to enter Ready state in guild ${guild.name}(${guild.id}) voice connection`); entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) .then(async () => { await playResource(); }) .catch((err: Error) => { if (err.message === "The operation was aborted") err.message = "Cannot establish a voice connection within 15 seconds."; + queue.client.debugLog.logData("error", "PLAY_HANDLER", `Failed to enter Ready state in guild ${guild.name}(${guild.id}) voice connection. Reason: ${err.message}`); queue.player.emit("error", new AudioPlayerError(err, resource)); }); } From 9ac3e1785ad8931617e27313c0ad663c482928d1 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:18:01 +0900 Subject: [PATCH 205/411] feat(DebugLogManager): check whether debug mode is enabled --- src/utils/structures/DebugLogManager.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/structures/DebugLogManager.ts b/src/utils/structures/DebugLogManager.ts index 6cba01449..4f2922b53 100644 --- a/src/utils/structures/DebugLogManager.ts +++ b/src/utils/structures/DebugLogManager.ts @@ -1,11 +1,12 @@ import { BaseLogger, LogLevel } from "./RawonLogger"; export class DebugLogManager extends BaseLogger { - public constructor(prod = true) { - super(prod); + public constructor(public readonly logEnabled: boolean, dev = true) { + super(dev); } public logData(level: LogLevel, contextName: string, data: string[][] | string): void { + if (!this.logEnabled) return; const messages: string[] = [`[${contextName}]`]; if (Array.isArray(data)) { From bd3a7432895887d9a6b5f41c388edf6d7dbe9a19 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sun, 27 Mar 2022 23:18:24 +0900 Subject: [PATCH 206/411] feat(Rawon): provide debug mode config value to debug log manager --- src/structures/Rawon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 931b13449..cd77e7475 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -21,7 +21,7 @@ export class Rawon extends Client { public readonly events = new EventsLoader(this, resolve(importURLToString(import.meta.url), "..", "events")); public readonly data = new JSONDataManager<Record<string, GuildData>>(resolve(process.cwd(), "data.json")); public readonly logger = new RawonLogger({ prod: this.config.isProd }); - public readonly debugLog = new DebugLogManager(this.config.isProd); + public readonly debugLog = new DebugLogManager(this.config.debugMode, this.config.isProd); public readonly modlogs = new ModerationLogs(this); public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); From 29c1c7a68bece64ce75c34a2df0030be8ad4717d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 08:27:45 +0700 Subject: [PATCH 207/411] chore(deps): bump got from 12.0.2 to 12.0.3 (#841) Bumps [got](https://github.com/sindresorhus/got) from 12.0.2 to 12.0.3. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v12.0.2...v12.0.3) --- updated-dependencies: - dependency-name: got dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index eff1965a9..fcbac0351 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.2", + "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", @@ -1715,9 +1715,9 @@ } }, "node_modules/got": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.2.tgz", - "integrity": "sha512-Zi4yHiqCgaorUbknr/RHFBsC3XqjSodaw0F3qxlqAqyj+OGYZl37/uy01R0qz++KANKQYdY5FHJ0okXZpEzwWQ==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.3.tgz", + "integrity": "sha512-hmdcXi/S0gcAtDg4P8j/rM7+j3o1Aq6bXhjxkDhRY2ipe7PHpvx/14DgTY2czHOLaGeU8VRvRecidwfu9qdFug==", "dependencies": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", @@ -3889,9 +3889,9 @@ } }, "got": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.2.tgz", - "integrity": "sha512-Zi4yHiqCgaorUbknr/RHFBsC3XqjSodaw0F3qxlqAqyj+OGYZl37/uy01R0qz++KANKQYdY5FHJ0okXZpEzwWQ==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.3.tgz", + "integrity": "sha512-hmdcXi/S0gcAtDg4P8j/rM7+j3o1Aq6bXhjxkDhRY2ipe7PHpvx/14DgTY2czHOLaGeU8VRvRecidwfu9qdFug==", "requires": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", diff --git a/package.json b/package.json index 7c73fed15..dbc87dfc2 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.2", + "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", From b1444f3a1d77816158379ef6da1cf9d3b639e034 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 01:36:13 +0000 Subject: [PATCH 208/411] chore(deps-dev): bump eslint from 8.11.0 to 8.12.0 (#842) Bumps [eslint](https://github.com/eslint/eslint) from 8.11.0 to 8.12.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.11.0...v8.12.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcbac0351..1fb116cbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", - "eslint": "^8.11.0", + "eslint": "^8.12.0", "typescript": "^4.5.5" }, "engines": { @@ -1263,9 +1263,9 @@ } }, "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.2.1", @@ -3549,9 +3549,9 @@ "dev": true }, "eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", "dev": true, "requires": { "@eslint/eslintrc": "^1.2.1", diff --git a/package.json b/package.json index dbc87dfc2..c1502312b 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", "@typescript-eslint/parser": "^5.16.0", - "eslint": "^8.11.0", + "eslint": "^8.12.0", "typescript": "^4.5.5" }, "engines": { From fb570a0f044b71c4297ae667b475ae78ba035958 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 28 Mar 2022 23:11:51 +0900 Subject: [PATCH 209/411] chore(lang/en): use MessageFormat formatting feature --- lang/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index e583d3ebe..0162bb635 100644 --- a/lang/en.json +++ b/lang/en.json @@ -131,7 +131,7 @@ "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", "invalidAmount": "Please specify a valid number of messages to delete.", "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", - "purgeSuccess": "**{amount}** messages have been **`PURGED`**" + "purgeSuccess": "{amount, plural, one {**1** message} other {**#** messages}} have been **`PURGED`**" }, "unban": { "description": "Un-ban someone from the server", @@ -201,7 +201,7 @@ "usage": "{prefix}remove <positions>", "noPermission": "You don't have permission to use this command.", "noPositions": "Please specify the song positions to remove.", - "songsRemoved": "Removed {removed} song(s) from the queue. ", + "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue. ", "songSkip": "The current song was removed, song skipped." }, "repeat": { From 44ddaee9ef343e421c7ea97f5c09f5b4580a0a41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 10:31:59 +0900 Subject: [PATCH 210/411] chore(deps): bump @swc/cli from 0.1.56 to 0.1.57 (#843) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fb116cbd..64834a567 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "BSD-3-Clause", "dependencies": { "@discordjs/voice": "^0.8.0", - "@swc/cli": "^0.1.56", + "@swc/cli": "^0.1.57", "@swc/core": "^1.2.160", "date-fns": "^2.28.0", "discord.js": "^13.6.0", @@ -241,9 +241,9 @@ } }, "node_modules/@swc/cli": { - "version": "0.1.56", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.56.tgz", - "integrity": "sha512-CFQzS271l9LfLg8JwtN4l/ZNDbdcoS4xbgiRwh7Oxx2sRxWxE/6fJRTzXHw7Z2TDuyYtx+D0vwjyjulbePmTeg==", + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", "dependencies": { "commander": "^7.1.0", "fast-glob": "^3.2.5", @@ -2911,9 +2911,9 @@ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@swc/cli": { - "version": "0.1.56", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.56.tgz", - "integrity": "sha512-CFQzS271l9LfLg8JwtN4l/ZNDbdcoS4xbgiRwh7Oxx2sRxWxE/6fJRTzXHw7Z2TDuyYtx+D0vwjyjulbePmTeg==", + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", "requires": { "commander": "^7.1.0", "fast-glob": "^3.2.5", diff --git a/package.json b/package.json index c1502312b..975d78ad4 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "@discordjs/voice": "^0.8.0", - "@swc/cli": "^0.1.56", + "@swc/cli": "^0.1.57", "@swc/core": "^1.2.160", "date-fns": "^2.28.0", "discord.js": "^13.6.0", From 1cdd7b30f1858b7b33e146787ef9e9d6b1531440 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 10:41:40 +0900 Subject: [PATCH 211/411] chore(deps): bump @swc/core from 1.2.160 to 1.2.161 (#844) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 64834a567..380d8006e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.160", + "@swc/core": "^1.2.161", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.160.tgz", - "integrity": "sha512-nXoC7HA+aY7AtBPsiqGXocoRLAzzA7MV+InWQtILN7Uru4hB9+rLnLCPc3zSdg7pgnxJLa1tHup1Rz7Vv6TcIQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.161.tgz", + "integrity": "sha512-RXv1y2HDqZ4gAjdvqV0KL1Oms8vUkDgXRU5SPOEa3zMzMDNKHvRfoiBk4ZyaGzhGcr0zflqT4EADKgTB8RFNsw==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.160", - "@swc/core-android-arm64": "1.2.160", - "@swc/core-darwin-arm64": "1.2.160", - "@swc/core-darwin-x64": "1.2.160", - "@swc/core-freebsd-x64": "1.2.160", - "@swc/core-linux-arm-gnueabihf": "1.2.160", - "@swc/core-linux-arm64-gnu": "1.2.160", - "@swc/core-linux-arm64-musl": "1.2.160", - "@swc/core-linux-x64-gnu": "1.2.160", - "@swc/core-linux-x64-musl": "1.2.160", - "@swc/core-win32-arm64-msvc": "1.2.160", - "@swc/core-win32-ia32-msvc": "1.2.160", - "@swc/core-win32-x64-msvc": "1.2.160" + "@swc/core-android-arm-eabi": "1.2.161", + "@swc/core-android-arm64": "1.2.161", + "@swc/core-darwin-arm64": "1.2.161", + "@swc/core-darwin-x64": "1.2.161", + "@swc/core-freebsd-x64": "1.2.161", + "@swc/core-linux-arm-gnueabihf": "1.2.161", + "@swc/core-linux-arm64-gnu": "1.2.161", + "@swc/core-linux-arm64-musl": "1.2.161", + "@swc/core-linux-x64-gnu": "1.2.161", + "@swc/core-linux-x64-musl": "1.2.161", + "@swc/core-win32-arm64-msvc": "1.2.161", + "@swc/core-win32-ia32-msvc": "1.2.161", + "@swc/core-win32-x64-msvc": "1.2.161" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.160.tgz", - "integrity": "sha512-VzFP7tYgvpkUhd8wgyNtERqvoPBBDretyMFxAxPe2SxClaBs9Ka95PdiPPZalRq+vFCb/dFxD8Vhz+XO16Kpjg==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.161.tgz", + "integrity": "sha512-SYm08FusdMo70JaKEYE7GpJHVp020iqPL3FjYEmQ+iyhc0Id8RlMeFt7ZtIj0aYHPKudR3GljzG5FVJXmm1Iuw==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.160.tgz", - "integrity": "sha512-m+xqQaa7TqW3Vm9MUvITtdU8OlAc/9yT+TgOS4l8WlfFI87IDnLLfinKKEp+xfKwzYDdIsh+sC+jdGdIBTMB+Q==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.161.tgz", + "integrity": "sha512-zk+GgVGKwIO9PsUcLZ7tG1XGGBJ/xyv5Or9/R0rQArBTGS5mvSK4d+9XrItQph8i3ECZhik3PuexmR7us6ysCw==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.160.tgz", - "integrity": "sha512-9bG70KYKvjNf7tZtjOu1h4kDZPtoidZptIXPGSHuUgJ1BbSJYpfRR5xAmq4k37+GqOjIPJp4+lSGQPa2HfejpA==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.161.tgz", + "integrity": "sha512-pf65TWy9oFkWCRzRq16Ec6rglurdajWT5tv1E93Kh4izEFLvKN/Mp+8EMnqOcoAn+HEtjzp2R6NosBruV/d1Ww==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.160.tgz", - "integrity": "sha512-+b4HdKAVf/XPZ9DjgG2axGLbquPEuYwEP3zeWgbWn0s0FYQ7WTFxznf3YrTJE9MYadJeCOs3U80E2xVAtRRS9Q==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.161.tgz", + "integrity": "sha512-QdgsY+BjYO0ngSIwR/xZn6W3iP0E/+of38Afon3maANDiKzvzsvyZm4IVTznOaxG1ZUJ/q1oKeRV/DcW7QvHiw==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.160.tgz", - "integrity": "sha512-E5agJwv+RVMoZ8FQIPSO5wLPDQx6jqcMpV207EB3pPaxPWGe4n3DH3vcibHp80RACDNdiaqo5lBeBnGJI4ithw==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.161.tgz", + "integrity": "sha512-yApHncnlQNQINxxcz+Y+svlrdU3d/yaJ769eoThIQXsZTL0Il3gnhhkjJkMEigLTexpQZQOGjgYnV9HKkpYqkw==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.160.tgz", - "integrity": "sha512-uCttZRNx+lWVhCYGC6/pGUej08g1SQc5am6R9NVFh111goytcdlPnC4jV8oWzq2QhDWkkKxLoP2CZOytzI4+0w==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.161.tgz", + "integrity": "sha512-DGSKqKSBQ42mAMmPhWkfgzXaci4RU0XgmnO1bFVkl8Yw9TaxBBBeCbLIBYJik4DehOOYic9gtXZIfEs90+oc2w==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.160.tgz", - "integrity": "sha512-sB18roiv8m/zsY6tXLSrbUls0eKkSkxOEF0ennXVEtz97rMJ+WWnkOc8gI+rUpj3MHbVAIxyDNyyZU4cH5g1jQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.161.tgz", + "integrity": "sha512-wdEPjBLuf0bUMafURrUN11MOGs7PHnedWOFAfvyRuNf4HdfwbS2nYDpFCL4mklN8BuprxvRFWfoA+ROigexK4g==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.160.tgz", - "integrity": "sha512-PJ7Ukb+BRR3pGYcUag8qRWOB11eByc5YLx/xAMSc3bRmaYW/oj6s8k+1DYiR//BAuNQdf14MpMFzDuWiDEUh7A==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.161.tgz", + "integrity": "sha512-EPwDDlAIchv1FG1Vc2ArUGsX2b87LSEXHjF59TuOj+oXOANHnFRQa/28wHpeMYN5lHYmyjMplfn37XYLMo8BDw==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.160.tgz", - "integrity": "sha512-wVh8Q86xz3t0y5zoUryWQ64bFG/YxdcykBgaog8lU9xkFb1KSqVRE9ia7aKA12/ZtAfpJZLRBleZxBAcaCg9FQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.161.tgz", + "integrity": "sha512-UE+8n2PLCojxywQd1nPbMcus/3zLQjg05Oozrvl1IkHBssk89tk2GhLujUwbFS+MoGFPKAmL+wT+9lXHavK7Og==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.160.tgz", - "integrity": "sha512-AnWdarl9WWuDdbc2AX1w76W1jaekSCokxRrWdSGUgQytaZRtybKZEgThvJCQDrSlYQD4XDOhhVRCurTvy4JsfQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.161.tgz", + "integrity": "sha512-mkshCdRhS5s1w1Koph/kS8EJVEmrq+/p4iLsLDozXi1RL16lzk5SYn4ppmzF/Zj9OpgJ+Nzk7kNcZMMJMVIwqw==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.160.tgz", - "integrity": "sha512-ScL27mZRTwEIqBIv9RY34nQvyBvhosiM5Lus4dCFmS71flPcAEv7hJgy4GE3YUQV0ryGNK9NaO43H8sAyNwKVQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.161.tgz", + "integrity": "sha512-5ZMhPSeFJO+h0Ejoq766S25VvrooUW0RdhfcG2u7OFqhdlTXHlvryL7jdf6tILltmJxNWeAGrNE8YI+ARolTeQ==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.160.tgz", - "integrity": "sha512-e75zbWlhlyrd5HdrYzELa6OlZxgyaVpJj+c9xMD95HcdklVbmsyt1vuqRxMyqaZUDLyehwwCDRX/ZeDme//M/A==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.161.tgz", + "integrity": "sha512-/c+L8bYCjg8pbx3Jbgx9Cns9nlLUpB4CmugfIdlW+2EdncyZyKu+u+D0egnOjvtlxe8BNw0889oH1Lv4p7KuhA==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.160.tgz", - "integrity": "sha512-GAYT+WzYQY4sr17S21yJh4flJp/sQ62mAs6RfN89p7jIWgm0Bl/SooRl6ocsftTlnZm7K7QC8zmQVeNCWDCLPw==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.161.tgz", + "integrity": "sha512-FXzZXf+kXvqgZFd+dIzD8Pcc22yejm/XNvpGTy9HZHWYLvlif+QSXrNgvX1oyMWZYT+NCVHwebKjS9FTnTMi9w==", "cpu": [ "x64" ], @@ -2922,101 +2922,101 @@ } }, "@swc/core": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.160.tgz", - "integrity": "sha512-nXoC7HA+aY7AtBPsiqGXocoRLAzzA7MV+InWQtILN7Uru4hB9+rLnLCPc3zSdg7pgnxJLa1tHup1Rz7Vv6TcIQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.161.tgz", + "integrity": "sha512-RXv1y2HDqZ4gAjdvqV0KL1Oms8vUkDgXRU5SPOEa3zMzMDNKHvRfoiBk4ZyaGzhGcr0zflqT4EADKgTB8RFNsw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.160", - "@swc/core-android-arm64": "1.2.160", - "@swc/core-darwin-arm64": "1.2.160", - "@swc/core-darwin-x64": "1.2.160", - "@swc/core-freebsd-x64": "1.2.160", - "@swc/core-linux-arm-gnueabihf": "1.2.160", - "@swc/core-linux-arm64-gnu": "1.2.160", - "@swc/core-linux-arm64-musl": "1.2.160", - "@swc/core-linux-x64-gnu": "1.2.160", - "@swc/core-linux-x64-musl": "1.2.160", - "@swc/core-win32-arm64-msvc": "1.2.160", - "@swc/core-win32-ia32-msvc": "1.2.160", - "@swc/core-win32-x64-msvc": "1.2.160" + "@swc/core-android-arm-eabi": "1.2.161", + "@swc/core-android-arm64": "1.2.161", + "@swc/core-darwin-arm64": "1.2.161", + "@swc/core-darwin-x64": "1.2.161", + "@swc/core-freebsd-x64": "1.2.161", + "@swc/core-linux-arm-gnueabihf": "1.2.161", + "@swc/core-linux-arm64-gnu": "1.2.161", + "@swc/core-linux-arm64-musl": "1.2.161", + "@swc/core-linux-x64-gnu": "1.2.161", + "@swc/core-linux-x64-musl": "1.2.161", + "@swc/core-win32-arm64-msvc": "1.2.161", + "@swc/core-win32-ia32-msvc": "1.2.161", + "@swc/core-win32-x64-msvc": "1.2.161" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.160.tgz", - "integrity": "sha512-VzFP7tYgvpkUhd8wgyNtERqvoPBBDretyMFxAxPe2SxClaBs9Ka95PdiPPZalRq+vFCb/dFxD8Vhz+XO16Kpjg==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.161.tgz", + "integrity": "sha512-SYm08FusdMo70JaKEYE7GpJHVp020iqPL3FjYEmQ+iyhc0Id8RlMeFt7ZtIj0aYHPKudR3GljzG5FVJXmm1Iuw==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.160.tgz", - "integrity": "sha512-m+xqQaa7TqW3Vm9MUvITtdU8OlAc/9yT+TgOS4l8WlfFI87IDnLLfinKKEp+xfKwzYDdIsh+sC+jdGdIBTMB+Q==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.161.tgz", + "integrity": "sha512-zk+GgVGKwIO9PsUcLZ7tG1XGGBJ/xyv5Or9/R0rQArBTGS5mvSK4d+9XrItQph8i3ECZhik3PuexmR7us6ysCw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.160.tgz", - "integrity": "sha512-9bG70KYKvjNf7tZtjOu1h4kDZPtoidZptIXPGSHuUgJ1BbSJYpfRR5xAmq4k37+GqOjIPJp4+lSGQPa2HfejpA==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.161.tgz", + "integrity": "sha512-pf65TWy9oFkWCRzRq16Ec6rglurdajWT5tv1E93Kh4izEFLvKN/Mp+8EMnqOcoAn+HEtjzp2R6NosBruV/d1Ww==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.160.tgz", - "integrity": "sha512-+b4HdKAVf/XPZ9DjgG2axGLbquPEuYwEP3zeWgbWn0s0FYQ7WTFxznf3YrTJE9MYadJeCOs3U80E2xVAtRRS9Q==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.161.tgz", + "integrity": "sha512-QdgsY+BjYO0ngSIwR/xZn6W3iP0E/+of38Afon3maANDiKzvzsvyZm4IVTznOaxG1ZUJ/q1oKeRV/DcW7QvHiw==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.160.tgz", - "integrity": "sha512-E5agJwv+RVMoZ8FQIPSO5wLPDQx6jqcMpV207EB3pPaxPWGe4n3DH3vcibHp80RACDNdiaqo5lBeBnGJI4ithw==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.161.tgz", + "integrity": "sha512-yApHncnlQNQINxxcz+Y+svlrdU3d/yaJ769eoThIQXsZTL0Il3gnhhkjJkMEigLTexpQZQOGjgYnV9HKkpYqkw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.160.tgz", - "integrity": "sha512-uCttZRNx+lWVhCYGC6/pGUej08g1SQc5am6R9NVFh111goytcdlPnC4jV8oWzq2QhDWkkKxLoP2CZOytzI4+0w==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.161.tgz", + "integrity": "sha512-DGSKqKSBQ42mAMmPhWkfgzXaci4RU0XgmnO1bFVkl8Yw9TaxBBBeCbLIBYJik4DehOOYic9gtXZIfEs90+oc2w==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.160.tgz", - "integrity": "sha512-sB18roiv8m/zsY6tXLSrbUls0eKkSkxOEF0ennXVEtz97rMJ+WWnkOc8gI+rUpj3MHbVAIxyDNyyZU4cH5g1jQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.161.tgz", + "integrity": "sha512-wdEPjBLuf0bUMafURrUN11MOGs7PHnedWOFAfvyRuNf4HdfwbS2nYDpFCL4mklN8BuprxvRFWfoA+ROigexK4g==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.160.tgz", - "integrity": "sha512-PJ7Ukb+BRR3pGYcUag8qRWOB11eByc5YLx/xAMSc3bRmaYW/oj6s8k+1DYiR//BAuNQdf14MpMFzDuWiDEUh7A==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.161.tgz", + "integrity": "sha512-EPwDDlAIchv1FG1Vc2ArUGsX2b87LSEXHjF59TuOj+oXOANHnFRQa/28wHpeMYN5lHYmyjMplfn37XYLMo8BDw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.160.tgz", - "integrity": "sha512-wVh8Q86xz3t0y5zoUryWQ64bFG/YxdcykBgaog8lU9xkFb1KSqVRE9ia7aKA12/ZtAfpJZLRBleZxBAcaCg9FQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.161.tgz", + "integrity": "sha512-UE+8n2PLCojxywQd1nPbMcus/3zLQjg05Oozrvl1IkHBssk89tk2GhLujUwbFS+MoGFPKAmL+wT+9lXHavK7Og==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.160.tgz", - "integrity": "sha512-AnWdarl9WWuDdbc2AX1w76W1jaekSCokxRrWdSGUgQytaZRtybKZEgThvJCQDrSlYQD4XDOhhVRCurTvy4JsfQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.161.tgz", + "integrity": "sha512-mkshCdRhS5s1w1Koph/kS8EJVEmrq+/p4iLsLDozXi1RL16lzk5SYn4ppmzF/Zj9OpgJ+Nzk7kNcZMMJMVIwqw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.160.tgz", - "integrity": "sha512-ScL27mZRTwEIqBIv9RY34nQvyBvhosiM5Lus4dCFmS71flPcAEv7hJgy4GE3YUQV0ryGNK9NaO43H8sAyNwKVQ==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.161.tgz", + "integrity": "sha512-5ZMhPSeFJO+h0Ejoq766S25VvrooUW0RdhfcG2u7OFqhdlTXHlvryL7jdf6tILltmJxNWeAGrNE8YI+ARolTeQ==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.160.tgz", - "integrity": "sha512-e75zbWlhlyrd5HdrYzELa6OlZxgyaVpJj+c9xMD95HcdklVbmsyt1vuqRxMyqaZUDLyehwwCDRX/ZeDme//M/A==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.161.tgz", + "integrity": "sha512-/c+L8bYCjg8pbx3Jbgx9Cns9nlLUpB4CmugfIdlW+2EdncyZyKu+u+D0egnOjvtlxe8BNw0889oH1Lv4p7KuhA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.160", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.160.tgz", - "integrity": "sha512-GAYT+WzYQY4sr17S21yJh4flJp/sQ62mAs6RfN89p7jIWgm0Bl/SooRl6ocsftTlnZm7K7QC8zmQVeNCWDCLPw==", + "version": "1.2.161", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.161.tgz", + "integrity": "sha512-FXzZXf+kXvqgZFd+dIzD8Pcc22yejm/XNvpGTy9HZHWYLvlif+QSXrNgvX1oyMWZYT+NCVHwebKjS9FTnTMi9w==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 975d78ad4..fc32c5b39 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.160", + "@swc/core": "^1.2.161", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From d4e2482241d9205cbf18f41f14b39ac56cc0d731 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 22:21:50 +0700 Subject: [PATCH 212/411] chore(deps-dev): bump @typescript-eslint/parser from 5.16.0 to 5.17.0 (#845) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.16.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 94 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 380d8006e..3f0251d41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.16.0", + "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", "typescript": "^4.5.5" }, @@ -616,14 +616,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", - "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", + "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.16.0", - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/typescript-estree": "5.16.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "debug": "^4.3.2" }, "engines": { @@ -643,13 +643,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", - "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/visitor-keys": "5.16.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -660,9 +660,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", - "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -673,13 +673,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", - "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/visitor-keys": "5.16.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -700,12 +700,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", - "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3123,41 +3123,41 @@ } }, "@typescript-eslint/parser": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", - "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", + "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.16.0", - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/typescript-estree": "5.16.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "debug": "^4.3.2" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", - "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/visitor-keys": "5.16.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" } }, "@typescript-eslint/types": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", - "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", - "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.16.0", - "@typescript-eslint/visitor-keys": "5.16.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3166,12 +3166,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", - "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" } } diff --git a/package.json b/package.json index fc32c5b39..fde7fd426 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.16.0", + "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", "typescript": "^4.5.5" }, From d74b59b417ba243745ec7e654012a5050f774df1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 00:23:24 +0900 Subject: [PATCH 213/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin from 5.13.0 to 5.17.0 (#846) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.13.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 255 +++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 70 insertions(+), 187 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f0251d41..7ab0415ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/eslint-plugin": "^5.17.0", "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", "typescript": "^4.5.5" @@ -526,9 +526,9 @@ "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/keyv": { @@ -583,14 +583,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", - "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", + "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/type-utils": "5.13.0", - "@typescript-eslint/utils": "5.13.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/type-utils": "5.17.0", + "@typescript-eslint/utils": "5.17.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -642,7 +642,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", @@ -659,87 +659,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.17.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", - "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", + "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.13.0", + "@typescript-eslint/utils": "5.17.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -760,9 +686,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -773,13 +699,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", - "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -800,15 +726,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", - "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/typescript-estree": "5.13.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -824,12 +750,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", - "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3050,9 +2976,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/keyv": { @@ -3106,14 +3032,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", - "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", + "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/type-utils": "5.13.0", - "@typescript-eslint/utils": "5.13.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/type-utils": "5.17.0", + "@typescript-eslint/utils": "5.17.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -3132,86 +3058,43 @@ "@typescript-eslint/types": "5.17.0", "@typescript-eslint/typescript-estree": "5.17.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" - } - }, - "@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", - "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" } }, "@typescript-eslint/type-utils": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", - "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", + "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.13.0", + "@typescript-eslint/utils": "5.17.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", - "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", - "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/visitor-keys": "5.13.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3220,26 +3103,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", - "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.13.0", - "@typescript-eslint/types": "5.13.0", - "@typescript-eslint/typescript-estree": "5.13.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", - "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index fde7fd426..1cbcdd74a 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/eslint-plugin": "^5.17.0", "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", "typescript": "^4.5.5" From a570b70eff94a9b55477462eab027dd42c7c665e Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 09:18:42 +0900 Subject: [PATCH 214/411] fix: fix linter error --- package-lock.json | 1 - src/commands/music/QueueCommand.ts | 5 +++++ src/utils/functions/parseHTMLElements.ts | 1 + src/utils/handlers/SpotifyUtil.ts | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 7ab0415ae..68cea26c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index ce9db56d6..6b4ab7c13 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -21,11 +21,13 @@ import { AudioPlayerPlayingState } from "@discordjs/voice"; export class QueueCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { + console.log("ehe"); const np = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full : full.filter(val => val.index >= np.index); + console.log("a"); const pages = await Promise.all(chunk([...songs.values()], 10).map(async (s, n) => { const names = await Promise.all(s.map((song, i) => { const npKey = np.key; @@ -36,9 +38,12 @@ export class QueueCommand extends BaseCommand { return names.join("\n"); })); + console.log("b"); const embed = createEmbed("info", pages[0]); const msg = await ctx.reply({ embeds: [embed] }); + console.log("c"); + return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => e.setDescription(p) diff --git a/src/utils/functions/parseHTMLElements.ts b/src/utils/functions/parseHTMLElements.ts index f7a2c5642..20cb219ec 100644 --- a/src/utils/functions/parseHTMLElements.ts +++ b/src/utils/functions/parseHTMLElements.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ export const escapedHTMLElements: Record<string, string> = { "\"": """, "&": "&", diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 65cf39be2..8f31b5bae 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -13,6 +13,7 @@ export class SpotifyUtil { const { accessToken, accessTokenExpirationTimestampMs } = await this.client.request .get("https://open.spotify.com/get_access_token", { headers: { + // eslint-disable-next-line @typescript-eslint/naming-convention "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } }).json<SpotifyAccessTokenAPIResult>(); From 8c646d42b2453b8c4975d64d92d2d9cce6276903 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 09:36:09 +0900 Subject: [PATCH 215/411] chore(deps): bump @swc/core from 1.2.161 to 1.2.162 (#849) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68cea26c6..795b5867e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.161", + "@swc/core": "^1.2.162", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.161.tgz", - "integrity": "sha512-RXv1y2HDqZ4gAjdvqV0KL1Oms8vUkDgXRU5SPOEa3zMzMDNKHvRfoiBk4ZyaGzhGcr0zflqT4EADKgTB8RFNsw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.162.tgz", + "integrity": "sha512-MFBmoV2qgGvi5bPX1tH3NLtWV4exa5jTCkC/30mdP5PTwEsxKJ5u+m1fuYOlgzDiBlytx8AihVZy2TmXhWZByw==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.161", - "@swc/core-android-arm64": "1.2.161", - "@swc/core-darwin-arm64": "1.2.161", - "@swc/core-darwin-x64": "1.2.161", - "@swc/core-freebsd-x64": "1.2.161", - "@swc/core-linux-arm-gnueabihf": "1.2.161", - "@swc/core-linux-arm64-gnu": "1.2.161", - "@swc/core-linux-arm64-musl": "1.2.161", - "@swc/core-linux-x64-gnu": "1.2.161", - "@swc/core-linux-x64-musl": "1.2.161", - "@swc/core-win32-arm64-msvc": "1.2.161", - "@swc/core-win32-ia32-msvc": "1.2.161", - "@swc/core-win32-x64-msvc": "1.2.161" + "@swc/core-android-arm-eabi": "1.2.162", + "@swc/core-android-arm64": "1.2.162", + "@swc/core-darwin-arm64": "1.2.162", + "@swc/core-darwin-x64": "1.2.162", + "@swc/core-freebsd-x64": "1.2.162", + "@swc/core-linux-arm-gnueabihf": "1.2.162", + "@swc/core-linux-arm64-gnu": "1.2.162", + "@swc/core-linux-arm64-musl": "1.2.162", + "@swc/core-linux-x64-gnu": "1.2.162", + "@swc/core-linux-x64-musl": "1.2.162", + "@swc/core-win32-arm64-msvc": "1.2.162", + "@swc/core-win32-ia32-msvc": "1.2.162", + "@swc/core-win32-x64-msvc": "1.2.162" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.161.tgz", - "integrity": "sha512-SYm08FusdMo70JaKEYE7GpJHVp020iqPL3FjYEmQ+iyhc0Id8RlMeFt7ZtIj0aYHPKudR3GljzG5FVJXmm1Iuw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.162.tgz", + "integrity": "sha512-mQSuLspB1qBAYXyDP0Da60tPumhwD0CIm7tMjAFiOplEJN+9YKBlZ3EV9Xc1wF5bdWzJpmzmqEdN9FEfOQqlwQ==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.161.tgz", - "integrity": "sha512-zk+GgVGKwIO9PsUcLZ7tG1XGGBJ/xyv5Or9/R0rQArBTGS5mvSK4d+9XrItQph8i3ECZhik3PuexmR7us6ysCw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.162.tgz", + "integrity": "sha512-9TuuTrsrxbw1W1xUfcmRuEIKImJC725S/4McSFpoylYRIoHzD1DPpgP4fquU0/fzq7rldVD1tu4tg3xvEL8auw==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.161.tgz", - "integrity": "sha512-pf65TWy9oFkWCRzRq16Ec6rglurdajWT5tv1E93Kh4izEFLvKN/Mp+8EMnqOcoAn+HEtjzp2R6NosBruV/d1Ww==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.162.tgz", + "integrity": "sha512-gWJjD7NqKVxGFSJ4BeTXfBpRRRkxaQcWmmkwoXDQ1tmLRUX6K3V8MXp41mTdg7jJWDyKq4VTN6D8zLQcCUEhmQ==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.161.tgz", - "integrity": "sha512-QdgsY+BjYO0ngSIwR/xZn6W3iP0E/+of38Afon3maANDiKzvzsvyZm4IVTznOaxG1ZUJ/q1oKeRV/DcW7QvHiw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.162.tgz", + "integrity": "sha512-+3foKCmxiMuPp1UCIPUg3N8CuzFRDPoPEQagz3TKT8W7Bkv9SXeIL8LPuwfH970rIcx1Ie/Q2UWXJwbckVmMHQ==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.161.tgz", - "integrity": "sha512-yApHncnlQNQINxxcz+Y+svlrdU3d/yaJ769eoThIQXsZTL0Il3gnhhkjJkMEigLTexpQZQOGjgYnV9HKkpYqkw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.162.tgz", + "integrity": "sha512-YdfQgALPwJ6ZCvfqLlytCvZG/r/ZgBlOa0gaZvMGl6WMpnWgoVPA5OYBA5qzstg/OEWjMu6fldi+lElsvq8v2Q==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.161.tgz", - "integrity": "sha512-DGSKqKSBQ42mAMmPhWkfgzXaci4RU0XgmnO1bFVkl8Yw9TaxBBBeCbLIBYJik4DehOOYic9gtXZIfEs90+oc2w==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.162.tgz", + "integrity": "sha512-4elULEP2JWvSpEEI7JmhoI25cRQ2/ffBtf3+4vLlcAgJCdCrkYvHJO2fbWlN1fpydj34QabMsOROYS4ff4p0Og==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.161.tgz", - "integrity": "sha512-wdEPjBLuf0bUMafURrUN11MOGs7PHnedWOFAfvyRuNf4HdfwbS2nYDpFCL4mklN8BuprxvRFWfoA+ROigexK4g==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.162.tgz", + "integrity": "sha512-ZgR1J8H4qI7EuADgHEeDBtiiF8yt6vrznVtaBvEInDPdV9W10QNKsTqhuFkTfOqaHAO2u1+MkZRuvALGahdDaQ==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.161.tgz", - "integrity": "sha512-EPwDDlAIchv1FG1Vc2ArUGsX2b87LSEXHjF59TuOj+oXOANHnFRQa/28wHpeMYN5lHYmyjMplfn37XYLMo8BDw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.162.tgz", + "integrity": "sha512-1Egev+v8wlr7zPaS715sG7flzbGE0OLtcCR7p7oUqD/NbKwlA6czMch5JwNWvdRMjLThTYEeJ/ID+/xG8BqXUg==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.161.tgz", - "integrity": "sha512-UE+8n2PLCojxywQd1nPbMcus/3zLQjg05Oozrvl1IkHBssk89tk2GhLujUwbFS+MoGFPKAmL+wT+9lXHavK7Og==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.162.tgz", + "integrity": "sha512-LFWV+8h6S3KmzVgHXRYpGYsaytGt+Vrbm8554ugUdzk465JnHyKzw3e6VRcJTxAGgXa+o1qUEkeBg7Wc/WWkmQ==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.161.tgz", - "integrity": "sha512-mkshCdRhS5s1w1Koph/kS8EJVEmrq+/p4iLsLDozXi1RL16lzk5SYn4ppmzF/Zj9OpgJ+Nzk7kNcZMMJMVIwqw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.162.tgz", + "integrity": "sha512-q5insucuYBVCjpDp8/EG3dbt2PFwGAo2vFzofr/lOlOo9p90jCzFRL0+eXg4Ar1YG6BL+T9o5LhFRggY+YHIBg==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.161.tgz", - "integrity": "sha512-5ZMhPSeFJO+h0Ejoq766S25VvrooUW0RdhfcG2u7OFqhdlTXHlvryL7jdf6tILltmJxNWeAGrNE8YI+ARolTeQ==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.162.tgz", + "integrity": "sha512-xzksaPOqB3a8gxLoE0ZMi5w2NX9zzYDylmM3qbCVqft6IZid2XFG2lPFIwxJV1xfW68xMgAe0IECnjp/nQsS8g==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.161.tgz", - "integrity": "sha512-/c+L8bYCjg8pbx3Jbgx9Cns9nlLUpB4CmugfIdlW+2EdncyZyKu+u+D0egnOjvtlxe8BNw0889oH1Lv4p7KuhA==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.162.tgz", + "integrity": "sha512-hUvS7UaSW+h16SSH7GwH571L2GnqWHPsiSKIDUvv1b/lca7dLcCY8RzsKafB/GLU+5EBQIN3nab3nH0vOWRkvw==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.161.tgz", - "integrity": "sha512-FXzZXf+kXvqgZFd+dIzD8Pcc22yejm/XNvpGTy9HZHWYLvlif+QSXrNgvX1oyMWZYT+NCVHwebKjS9FTnTMi9w==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.162.tgz", + "integrity": "sha512-Eb0SehVYWO5TpYeaPAD3T3iIPpgJa1q/rmvgMDvL0hi4UnOJlvj43kC4Dhuor6opLd6fJkCS7gBq9SxtGtb8bQ==", "cpu": [ "x64" ], @@ -2847,101 +2847,101 @@ } }, "@swc/core": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.161.tgz", - "integrity": "sha512-RXv1y2HDqZ4gAjdvqV0KL1Oms8vUkDgXRU5SPOEa3zMzMDNKHvRfoiBk4ZyaGzhGcr0zflqT4EADKgTB8RFNsw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.162.tgz", + "integrity": "sha512-MFBmoV2qgGvi5bPX1tH3NLtWV4exa5jTCkC/30mdP5PTwEsxKJ5u+m1fuYOlgzDiBlytx8AihVZy2TmXhWZByw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.161", - "@swc/core-android-arm64": "1.2.161", - "@swc/core-darwin-arm64": "1.2.161", - "@swc/core-darwin-x64": "1.2.161", - "@swc/core-freebsd-x64": "1.2.161", - "@swc/core-linux-arm-gnueabihf": "1.2.161", - "@swc/core-linux-arm64-gnu": "1.2.161", - "@swc/core-linux-arm64-musl": "1.2.161", - "@swc/core-linux-x64-gnu": "1.2.161", - "@swc/core-linux-x64-musl": "1.2.161", - "@swc/core-win32-arm64-msvc": "1.2.161", - "@swc/core-win32-ia32-msvc": "1.2.161", - "@swc/core-win32-x64-msvc": "1.2.161" + "@swc/core-android-arm-eabi": "1.2.162", + "@swc/core-android-arm64": "1.2.162", + "@swc/core-darwin-arm64": "1.2.162", + "@swc/core-darwin-x64": "1.2.162", + "@swc/core-freebsd-x64": "1.2.162", + "@swc/core-linux-arm-gnueabihf": "1.2.162", + "@swc/core-linux-arm64-gnu": "1.2.162", + "@swc/core-linux-arm64-musl": "1.2.162", + "@swc/core-linux-x64-gnu": "1.2.162", + "@swc/core-linux-x64-musl": "1.2.162", + "@swc/core-win32-arm64-msvc": "1.2.162", + "@swc/core-win32-ia32-msvc": "1.2.162", + "@swc/core-win32-x64-msvc": "1.2.162" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.161.tgz", - "integrity": "sha512-SYm08FusdMo70JaKEYE7GpJHVp020iqPL3FjYEmQ+iyhc0Id8RlMeFt7ZtIj0aYHPKudR3GljzG5FVJXmm1Iuw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.162.tgz", + "integrity": "sha512-mQSuLspB1qBAYXyDP0Da60tPumhwD0CIm7tMjAFiOplEJN+9YKBlZ3EV9Xc1wF5bdWzJpmzmqEdN9FEfOQqlwQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.161.tgz", - "integrity": "sha512-zk+GgVGKwIO9PsUcLZ7tG1XGGBJ/xyv5Or9/R0rQArBTGS5mvSK4d+9XrItQph8i3ECZhik3PuexmR7us6ysCw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.162.tgz", + "integrity": "sha512-9TuuTrsrxbw1W1xUfcmRuEIKImJC725S/4McSFpoylYRIoHzD1DPpgP4fquU0/fzq7rldVD1tu4tg3xvEL8auw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.161.tgz", - "integrity": "sha512-pf65TWy9oFkWCRzRq16Ec6rglurdajWT5tv1E93Kh4izEFLvKN/Mp+8EMnqOcoAn+HEtjzp2R6NosBruV/d1Ww==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.162.tgz", + "integrity": "sha512-gWJjD7NqKVxGFSJ4BeTXfBpRRRkxaQcWmmkwoXDQ1tmLRUX6K3V8MXp41mTdg7jJWDyKq4VTN6D8zLQcCUEhmQ==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.161.tgz", - "integrity": "sha512-QdgsY+BjYO0ngSIwR/xZn6W3iP0E/+of38Afon3maANDiKzvzsvyZm4IVTznOaxG1ZUJ/q1oKeRV/DcW7QvHiw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.162.tgz", + "integrity": "sha512-+3foKCmxiMuPp1UCIPUg3N8CuzFRDPoPEQagz3TKT8W7Bkv9SXeIL8LPuwfH970rIcx1Ie/Q2UWXJwbckVmMHQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.161.tgz", - "integrity": "sha512-yApHncnlQNQINxxcz+Y+svlrdU3d/yaJ769eoThIQXsZTL0Il3gnhhkjJkMEigLTexpQZQOGjgYnV9HKkpYqkw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.162.tgz", + "integrity": "sha512-YdfQgALPwJ6ZCvfqLlytCvZG/r/ZgBlOa0gaZvMGl6WMpnWgoVPA5OYBA5qzstg/OEWjMu6fldi+lElsvq8v2Q==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.161.tgz", - "integrity": "sha512-DGSKqKSBQ42mAMmPhWkfgzXaci4RU0XgmnO1bFVkl8Yw9TaxBBBeCbLIBYJik4DehOOYic9gtXZIfEs90+oc2w==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.162.tgz", + "integrity": "sha512-4elULEP2JWvSpEEI7JmhoI25cRQ2/ffBtf3+4vLlcAgJCdCrkYvHJO2fbWlN1fpydj34QabMsOROYS4ff4p0Og==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.161.tgz", - "integrity": "sha512-wdEPjBLuf0bUMafURrUN11MOGs7PHnedWOFAfvyRuNf4HdfwbS2nYDpFCL4mklN8BuprxvRFWfoA+ROigexK4g==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.162.tgz", + "integrity": "sha512-ZgR1J8H4qI7EuADgHEeDBtiiF8yt6vrznVtaBvEInDPdV9W10QNKsTqhuFkTfOqaHAO2u1+MkZRuvALGahdDaQ==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.161.tgz", - "integrity": "sha512-EPwDDlAIchv1FG1Vc2ArUGsX2b87LSEXHjF59TuOj+oXOANHnFRQa/28wHpeMYN5lHYmyjMplfn37XYLMo8BDw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.162.tgz", + "integrity": "sha512-1Egev+v8wlr7zPaS715sG7flzbGE0OLtcCR7p7oUqD/NbKwlA6czMch5JwNWvdRMjLThTYEeJ/ID+/xG8BqXUg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.161.tgz", - "integrity": "sha512-UE+8n2PLCojxywQd1nPbMcus/3zLQjg05Oozrvl1IkHBssk89tk2GhLujUwbFS+MoGFPKAmL+wT+9lXHavK7Og==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.162.tgz", + "integrity": "sha512-LFWV+8h6S3KmzVgHXRYpGYsaytGt+Vrbm8554ugUdzk465JnHyKzw3e6VRcJTxAGgXa+o1qUEkeBg7Wc/WWkmQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.161.tgz", - "integrity": "sha512-mkshCdRhS5s1w1Koph/kS8EJVEmrq+/p4iLsLDozXi1RL16lzk5SYn4ppmzF/Zj9OpgJ+Nzk7kNcZMMJMVIwqw==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.162.tgz", + "integrity": "sha512-q5insucuYBVCjpDp8/EG3dbt2PFwGAo2vFzofr/lOlOo9p90jCzFRL0+eXg4Ar1YG6BL+T9o5LhFRggY+YHIBg==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.161.tgz", - "integrity": "sha512-5ZMhPSeFJO+h0Ejoq766S25VvrooUW0RdhfcG2u7OFqhdlTXHlvryL7jdf6tILltmJxNWeAGrNE8YI+ARolTeQ==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.162.tgz", + "integrity": "sha512-xzksaPOqB3a8gxLoE0ZMi5w2NX9zzYDylmM3qbCVqft6IZid2XFG2lPFIwxJV1xfW68xMgAe0IECnjp/nQsS8g==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.161.tgz", - "integrity": "sha512-/c+L8bYCjg8pbx3Jbgx9Cns9nlLUpB4CmugfIdlW+2EdncyZyKu+u+D0egnOjvtlxe8BNw0889oH1Lv4p7KuhA==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.162.tgz", + "integrity": "sha512-hUvS7UaSW+h16SSH7GwH571L2GnqWHPsiSKIDUvv1b/lca7dLcCY8RzsKafB/GLU+5EBQIN3nab3nH0vOWRkvw==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.161", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.161.tgz", - "integrity": "sha512-FXzZXf+kXvqgZFd+dIzD8Pcc22yejm/XNvpGTy9HZHWYLvlif+QSXrNgvX1oyMWZYT+NCVHwebKjS9FTnTMi9w==", + "version": "1.2.162", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.162.tgz", + "integrity": "sha512-Eb0SehVYWO5TpYeaPAD3T3iIPpgJa1q/rmvgMDvL0hi4UnOJlvj43kC4Dhuor6opLd6fJkCS7gBq9SxtGtb8bQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 1cbcdd74a..fbfd7a78d 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.161", + "@swc/core": "^1.2.162", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 655624ebd94e56ac84fa02d023556fb8fee025d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 08:01:37 +0700 Subject: [PATCH 216/411] chore(deps): bump play-dl from 1.9.2 to 1.9.3 (#850) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.9.2 to 1.9.3. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.9.2...1.9.3) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 795b5867e..2cfbf707f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", + "play-dl": "^1.9.3", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -36,7 +37,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.2", + "play-dl": "^1.9.3", "youtube-dl-exec": "^2.0.8" } }, @@ -2177,9 +2178,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.2.tgz", - "integrity": "sha512-rhTt3ap4Oajl6NULOOWe35nysT2PwNNuaIrpLF7EPQhZrjBqaJfwiqtr60hn8b46fPR9utNsEnDv6dkTRNYr6Q==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.3.tgz", + "integrity": "sha512-eDiqO0KZ2ngGrPmlIrOWClDAQ2KDyrGJHNjlrreyDZlm6GrB0+FXc1UN+R7JnZZ6T1eXbn0a1CxBlJGL6tAKhw==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -4159,9 +4160,9 @@ "optional": true }, "play-dl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.2.tgz", - "integrity": "sha512-rhTt3ap4Oajl6NULOOWe35nysT2PwNNuaIrpLF7EPQhZrjBqaJfwiqtr60hn8b46fPR9utNsEnDv6dkTRNYr6Q==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.3.tgz", + "integrity": "sha512-eDiqO0KZ2ngGrPmlIrOWClDAQ2KDyrGJHNjlrreyDZlm6GrB0+FXc1UN+R7JnZZ6T1eXbn0a1CxBlJGL6tAKhw==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index fbfd7a78d..10d45f476 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.2", + "play-dl": "^1.9.3", "youtube-dl-exec": "^2.0.8" } } From c65d96ee040764b4929e61ae38af00db311bf150 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:24:06 +0900 Subject: [PATCH 217/411] feat: add yt-dlp-utils and its' typings --- yt-dlp-utils/index.d.ts | 247 ++++++++++++++++++++++++++++++++++++++++ yt-dlp-utils/index.js | 65 +++++++++++ 2 files changed, 312 insertions(+) create mode 100644 yt-dlp-utils/index.d.ts create mode 100644 yt-dlp-utils/index.js diff --git a/yt-dlp-utils/index.d.ts b/yt-dlp-utils/index.d.ts new file mode 100644 index 000000000..d47feb3ba --- /dev/null +++ b/yt-dlp-utils/index.d.ts @@ -0,0 +1,247 @@ +import { ChildProcess, SpawnOptions } from "child_process"; + +interface YTFormat { + asr: number, + filesize: number, + format_id: string, + format_note: string, + fps: number, + height: number, + quality: number, + tbr: number, + vbr?: number, + url: string, + width: number, + ext: string, + vcodec: string, + acodec: string, + abr: number, + downloader_options: unknown, + container: string, + format: string, + protocol: string, + http_headers: unknown +} + +interface YTThumbnail { + height: number, + url: string, + width: number, + resolution: string, + id: string, +} + +interface YTResponse { + id: string, + title: string, + formats: YTFormat[], + thumbnails: YTThumbnail[], + description: string, + upload_date: string, + uploader: string, + uploader_id: string, + uploader_url: string, + channel_id: string, + channel_url: string, + duration: number, + view_count: number, + average_rating: number, + age_limit: number, + webpage_url: string, + categories: string[], + tags: string[], + is_live: boolean, + like_count: number, + dislike_count: number, + channel: string, + track: string, + artist: string, + creator: string, + alt_title: string, + extractor: string, + webpage_url_basename: string, + extractor_key: string, + playlist: string, + playlist_index: number, + thumbnail: string, + display_id: string, + requested_subtitles: unknown, + asr: number, + filesize: number, + format_id: string, + format_note: string, + fps: number, + height: number, + quality: number, + tbr: number, + url: string, + width: number, + ext: string, + vcodec: string, + acodec: string, + abr: number, + downloader_options: { http_chunk_size: number }, + container: string, + format: string, + protocol: string, + http_headers: unknown, + fulltitle: string, + _filename: string +} + +interface YTFlags { + help?: boolean, + version?: boolean, + update?: boolean, + ignoreErrors?: boolean, + abortOnError?: boolean, + dumpUserAgent?: boolean, + listExtractors?: boolean, + extractorDescriptions?: boolean, + forceGenericExtractor?: boolean, + defaultSearch?: string, + ignoreConfig?: boolean, + configLocation?: string, + flatPlaylist?: boolean, + markWatched?: boolean, + noColor?: boolean, + proxy?: string, + socketTimeout?: number, + sourceAddress?: string, + forceIpv4?: boolean, + forceIpv6?: boolean, + geoVerificationProxy?: string, + geoBypass?: boolean, + geoBypassCountry?: string, + geoBypassIpBlock?: string, + playlistStart?: number, + playlistEnd?: number | 'last', + playlistItems?: string, + matchTitle?: string, + rejectTitle?: string, + maxDownloads?: number, + minFilesize?: string, + maxFilesize?: string, + date?: string, + datebefore?: string, + dateafter?: string, + minViews?: number, + maxViews?: number, + matchFilter?: string, + noPlaylist?: boolean, + yesPlaylist?: boolean, + ageLimit?: number, + downloadArchive?: string, + includeAds?: boolean, + limitRate?: string, + retries?: number | 'infinite', + skipUnavailableFragments?: boolean, + abortOnUnavailableFragment?: boolean, + keepFragments?: boolean, + bufferSize?: string, + noResizeBuffer?: boolean, + httpChunkSize?: string, + playlistReverse?: boolean, + playlistRandom?: boolean, + xattrSetFilesize?: boolean, + hlsPreferNative?: boolean, + hlsPreferFfmpeg?: boolean, + hlsUseMpegts?: boolean, + externalDownloader?: string, + externalDownloaderArgs?: string, + batchFile?: string, + id?: boolean, + output?: string, + outputNaPlaceholder?: string, + autonumberStart?: number, + restrictFilenames?: boolean, + noOverwrites?: boolean, + continue?: boolean, + noPart?: boolean, + noMtime?: boolean, + writeDescription?: boolean, + writeInfoJson?: boolean, + writeAnnotations?: boolean, + loadInfoJson?: string, + cookies?: string, + cacheDir?: string, + noCacheDir?: boolean, + rmCacheDir?: boolean, + writeThumbnail?: boolean, + writeAllThumbnails?: boolean, + listThumbnails?: boolean, + quiet?: boolean, + noWarnings?: boolean, + simulate?: boolean, + skipDownload?: boolean, + getUrl?: boolean, + getTitle?: boolean, + getId?: boolean, + getThumbnail?: boolean, + getDuration?: boolean, + getFilename?: boolean, + getFormat?: boolean, + dumpJson?: boolean, + dumpSingleJson?: boolean, + printJson?: boolean, + newline?: boolean, + noProgress?: boolean, + consoleTitle?: boolean, + verbose?: boolean, + dumpPages?: boolean, + writePages?: boolean, + printTraffic?: boolean, + callHome?: boolean, + encoding?: string, + noCheckCertificate?: boolean, + preferInsecure?: boolean, + userAgent?: string, + referer?: string, + addHeader?: string, + bidiWorkaround?: boolean, + sleepInterval?: number, + maxSleepInterval?: number, + format?: string, + allFormats?: boolean, + preferFreeFormats?: boolean, + listFormats?: boolean, + youtubeSkipDashManifest?: boolean, + mergeOutputFormat?: string, + writeSub?: boolean, + writeAutoSub?: boolean, + allSubs?: boolean, + listSubs?: boolean, + subFormat?: string, + subLang?: string, + username?: string, + password?: string, + twofactor?: string, + netrc?: boolean, + videoPassword?: string, + apMso?: string, + apUsername?: string, + apPassword?: string, + apListMso?: boolean, + extractAudio?: boolean, + audioFormat?: string, + audioQuality?: number, + recodeVideo?: string, + postprocessorArgs?: string, + keepVideo?: boolean, + noPostOverwrites?: boolean, + embedSubs?: boolean, + embedThumbnail?: boolean, + addMetadata?: boolean, + metadataFromFile?: string, + xattrs?: boolean, + fixup?: string, + preferAvconv?: boolean, + preferFfmpeg?: boolean, + ffmpegLocation?: string, + exec?: string, + convertSubs?: string +} + +export function downloadExecutable(): Promise<void>; +export function exec(url: string, options?: YTFlags, spawnOptions?: SpawnOptions): ChildProcess; +export default function ytdl(...args: Parameters<typeof exec>): Promise<YTResponse>; diff --git a/yt-dlp-utils/index.js b/yt-dlp-utils/index.js new file mode 100644 index 000000000..3083b16af --- /dev/null +++ b/yt-dlp-utils/index.js @@ -0,0 +1,65 @@ +import { existsSync, mkdirSync, writeFileSync } from "fs"; +import { spawn } from "child_process"; +import { resolve } from "path"; +import got from "got"; + +const suffix = process.platform === "win32" ? ".exe" : ""; +const filename = `yt-dlp${suffix}`; +const scriptsPath = resolve(process.cwd(), "scripts"); +const exePath = resolve(scriptsPath, filename); + +function args(url, options) { + const optArgs = Object.entries(options) + .map(([k, v]) => { + const flag = k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`); + return [ + `--${(typeof v === "boolean") && !v ? "no-" : ""}${flag}`, + typeof v === "boolean" ? "" : v + ] + }) + .flat() + .filter(Boolean); + + return [url].concat(optArgs); +} + +function json(str) { + try { + return JSON.parse(str); + } catch { + return str; + } +} + +export async function downloadExecutable() { + if (!existsSync(exePath)) { + console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); + const releases = await got.get("https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1").json(); + const release = releases[0]; + const asset = release.assets.find((asset) => asset.name === filename); + await new Promise((resolve, reject) => { + got.get(asset.browser_download_url).buffer().then(x => { + mkdirSync(scriptsPath, { recursive: true }); + writeFileSync(exePath, x); + }).then(resolve).catch(reject); + }); + console.info("[INFO] Yt-dlp has been downloaded."); + } +} + +export const exec = (url, options = {}, spawnOptions = {}) => spawn(exePath, args(url, options), { + windowsHide: true, + ...spawnOptions +}); + +export default async function ytdl(url, options = {}, spawnOptions = {}) { + const proc = exec(url, options, spawnOptions); + let data = ""; + + await new Promise((resolve, reject) => { + proc.on("error", reject) + .on("close", resolve) + .stdout.on("data", (chunk) => (data += chunk)); + }); + return json(data); +} From 4981700daca50078dbda589c384410abe01baf93 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:24:31 +0900 Subject: [PATCH 218/411] chore(eslint): ignore scripts directory --- .eslintignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.eslintignore b/.eslintignore index ffe4ffd77..ff0d98a0a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,3 +3,6 @@ dist/ # Start file index.js + +# YT-DLP utils folder +yt-dlp-utils/ From 3e8afc7d4b5bf4a32341392d35317a30dc92f3f7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:25:45 +0900 Subject: [PATCH 219/411] chore(git): ignore data.json and scripts directory --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index e5fafe878..37b46dd04 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,7 @@ dist # TernJS port file .tern-port + +# Rawon cache directories and files +data.json +scripts/ From 7a83b819904443e20ad43d6ac56a728e5f177419 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:26:56 +0900 Subject: [PATCH 220/411] refactor(main): use yt-dlp-utils to download yt-dlp --- index.js | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/index.js b/index.js index 52ceaa966..ef5ae5bc7 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,4 @@ +import { downloadExecutable } from "./yt-dlp-utils"; import { execSync } from "child_process"; import { existsSync, rmSync } from "fs"; import { resolve } from "path"; @@ -134,23 +135,7 @@ const isUnix = ["aix", "android", "darwin", "freebsd", "linux", "openbsd", "suno process.env.YOUTUBE_DL_HOST = "https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1"; process.env.YOUTUBE_DL_FILENAME = "yt-dlp"; -if (streamStrategy !== "play-dl") { - try { - require("youtube-dl-exec"); - } catch { - console.info("[INFO] Installing youtube-dl-exec..."); - npmInstall(false, false, ["youtube-dl-exec"]); - console.info("[INFO] Youtube-dl-exec has been installed."); - } - - const ytdlBinaryDir = resolve(importURLToString(import.meta.url), "node_modules", "youtube-dl-exec", "bin") - if (!existsSync(resolve(ytdlBinaryDir, isUnix ? "yt-dlp" : "yt-dlp.exe"))) { - console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); - if (existsSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe"))) rmSync(resolve(ytdlBinaryDir, isUnix ? "youtube-dl" : "youtube-dl.exe")); - require("youtube-dl-exec/scripts/postinstall"); - console.info("[INFO] Yt-dlp has been downloaded."); - } -} +if (streamStrategy !== "play-dl") await downloadExecutable(); if (streamStrategy === "play-dl") { try { require("play-dl"); From fb5d579dd0345a092b1969a6295e95e78b64e090 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:27:40 +0900 Subject: [PATCH 221/411] refactor(YTDLUtil): use yt-dlp-utils to fetch audio stream and data --- src/utils/handlers/YTDLUtil.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index 31c21e6a7..d75b11ecb 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -3,14 +3,9 @@ import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; import { stream as pldlStream, video_basic_info } from "play-dl"; -import ytDefault, { exec as ytExec } from "youtube-dl-exec"; -import { createRequire } from "module"; +import ytdl, { exec } from "../../../yt-dlp-utils"; import { Readable } from "stream"; -const require = createRequire(import.meta.url); -const YTDLExec = require("youtube-dl-exec") as { exec: typeof ytExec; default: typeof ytDefault }; -const { exec, default: ytdl } = YTDLExec; - export async function getStream(url: string): Promise<Readable> { if (streamStrategy === "play-dl") { const isSoundcloudUrl = checkQuery(url); From 5e06eb380783c8e0e650dc8c19a3b6f696942739 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:30:03 +0900 Subject: [PATCH 222/411] chore(deps): remove youtube-dl-exec --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 10d45f476..eda0e740d 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.3", - "youtube-dl-exec": "^2.0.8" + "play-dl": "^1.9.3" } } From d3ce2b96dae7a6a14341778318e04d7f79db31bc Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:30:57 +0900 Subject: [PATCH 223/411] chore(deps): update lockfile --- package-lock.json | 278 +++------------------------------------------- 1 file changed, 13 insertions(+), 265 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2cfbf707f..1c4e5af90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", - "play-dl": "^1.9.3", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -37,8 +36,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.3", - "youtube-dl-exec": "^2.0.8" + "play-dl": "^1.9.3" } }, "node_modules/@discordjs/builders": { @@ -1014,7 +1012,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "devOptional": true, + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1024,15 +1022,6 @@ "node": ">= 8" } }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/date-fns": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", @@ -1385,29 +1374,6 @@ "node": ">=0.10.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "optional": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1692,15 +1658,6 @@ "node": ">=10.19.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "optional": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/i18n": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", @@ -1797,32 +1754,11 @@ "node": ">=0.12.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unix": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-unix/-/is-unix-2.0.1.tgz", - "integrity": "sha512-RyKp5JtlRnfOvnKtfBMPLw9ocqDe1NlPQ8Bt+geVzKGfMnLGj8z/Y2HOmk/aMf47P4EbrEt9dN6YGTT1fx4mZA==", - "optional": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": true + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -1916,12 +1852,6 @@ "node": ">=0.10.0" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "optional": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1961,15 +1891,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -1990,18 +1911,6 @@ "node": "*" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", @@ -2056,18 +1965,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "optional": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2076,21 +1973,6 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "optional": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -2146,7 +2028,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -2383,7 +2265,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "devOptional": true, + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2395,17 +2277,11 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2442,15 +2318,6 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2608,7 +2475,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -2659,23 +2526,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/youtube-dl-exec": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.8.tgz", - "integrity": "sha512-bsqS7QK7MT0AmVibbH6cI+tBfJ2rLN/qukpQbtAGvqmEgkwfwGiV31DzMnHa1bRAkwCeZELqj6kMFMBW4U4FRg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "dargs": "~7.0.0", - "execa": "~5.1.0", - "is-unix": "~2.0.1", - "mkdirp": "~1.0.4", - "node-fetch": "~2.6.5" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/youtubei": { "version": "0.0.1-rc.32", "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", @@ -3316,19 +3166,13 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "devOptional": true, + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "optional": true - }, "date-fns": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", @@ -3582,23 +3426,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "optional": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3811,12 +3638,6 @@ "resolve-alpn": "^1.2.0" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "optional": true - }, "i18n": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", @@ -3886,23 +3707,11 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "optional": true - }, - "is-unix": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-unix/-/is-unix-2.0.1.tgz", - "integrity": "sha512-RyKp5JtlRnfOvnKtfBMPLw9ocqDe1NlPQ8Bt+geVzKGfMnLGj8z/Y2HOmk/aMf47P4EbrEt9dN6YGTT1fx4mZA==", - "optional": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": true + "dev": true }, "js-yaml": { "version": "4.1.0", @@ -3978,12 +3787,6 @@ "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "optional": true - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4011,12 +3814,6 @@ "mime-db": "1.51.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "optional": true - }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -4031,12 +3828,6 @@ "brace-expansion": "^1.1.7" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - }, "moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", @@ -4071,15 +3862,6 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "optional": true, - "requires": { - "path-key": "^3.0.0" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4088,15 +3870,6 @@ "wrappy": "1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "optional": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -4140,7 +3913,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "devOptional": true + "dev": true }, "path-type": { "version": "4.0.0", @@ -4277,7 +4050,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "devOptional": true, + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -4286,13 +4059,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "devOptional": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true + "dev": true }, "slash": { "version": "3.0.0", @@ -4321,12 +4088,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "optional": true - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -4452,7 +4213,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -4480,19 +4241,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "youtube-dl-exec": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/youtube-dl-exec/-/youtube-dl-exec-2.0.8.tgz", - "integrity": "sha512-bsqS7QK7MT0AmVibbH6cI+tBfJ2rLN/qukpQbtAGvqmEgkwfwGiV31DzMnHa1bRAkwCeZELqj6kMFMBW4U4FRg==", - "optional": true, - "requires": { - "dargs": "~7.0.0", - "execa": "~5.1.0", - "is-unix": "~2.0.1", - "mkdirp": "~1.0.4", - "node-fetch": "~2.6.5" - } - }, "youtubei": { "version": "0.0.1-rc.32", "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", From 4e4b8b4859026c18c714c813548bd5497e87a33d Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 1 Apr 2022 21:46:39 +0900 Subject: [PATCH 224/411] chore(main): remove unused codes --- index.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/index.js b/index.js index ef5ae5bc7..a56b346cd 100644 --- a/index.js +++ b/index.js @@ -62,13 +62,6 @@ function npmInstall(deleteDir = false, forceInstall = false, additionalArgs = [] execSync(`npm install${isGlitch ? " --only=prod" : ""}${forceInstall ? " --force" : ""} ${additionalArgs.join(" ")}`); } -function importURLToString(url) { - const paths = new URL(url).pathname.split(/\/|\\/g).filter(Boolean); - - paths.pop(); - return decodeURIComponent(paths.join("/")); -} - if (isGlitch) { try { console.info("[INFO] Trying to re-install modules..."); @@ -130,11 +123,6 @@ if (isGlitch || isReplit) { } const streamStrategy = process.env.STREAM_STRATEGY; -const isUnix = ["aix", "android", "darwin", "freebsd", "linux", "openbsd", "sunos"].includes(process.platform.toLowerCase()); - -process.env.YOUTUBE_DL_HOST = "https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1"; -process.env.YOUTUBE_DL_FILENAME = "yt-dlp"; - if (streamStrategy !== "play-dl") await downloadExecutable(); if (streamStrategy === "play-dl") { try { From 3bc93db1843a26892b9eff232fe273320f8879e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 09:22:16 +0700 Subject: [PATCH 225/411] ci(deps): bump actions/setup-node from 3.0.0 to 3.1.0 (#852) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2117ad518..be5008c06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.0.0 + uses: actions/setup-node@v3.1.0 with: node-version: ${{ matrix.node-version }} check-latest: true @@ -41,7 +41,7 @@ jobs: uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.0.0 + uses: actions/setup-node@v3.1.0 with: node-version: ${{ matrix.node-version }} check-latest: true From b65a66b889bae4da2e04a3354b344e91f6a52910 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 02:24:26 +0000 Subject: [PATCH 226/411] chore(deps): bump @swc/core from 1.2.162 to 1.2.163 (#853) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.162 to 1.2.163. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.162...v1.2.163) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c4e5af90..3e47616dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.162", + "@swc/core": "^1.2.163", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -266,9 +266,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.162.tgz", - "integrity": "sha512-MFBmoV2qgGvi5bPX1tH3NLtWV4exa5jTCkC/30mdP5PTwEsxKJ5u+m1fuYOlgzDiBlytx8AihVZy2TmXhWZByw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.163.tgz", + "integrity": "sha512-8/ytlOhXSomPjfgOFgto6xnYR+UAj0eHJEIu2NbdHgpFjrDFti6C9XeW0zB6zheCq0fShP0RbE9qXlgYKoSZ8w==", "bin": { "swcx": "run_swcx.js" }, @@ -280,25 +280,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.162", - "@swc/core-android-arm64": "1.2.162", - "@swc/core-darwin-arm64": "1.2.162", - "@swc/core-darwin-x64": "1.2.162", - "@swc/core-freebsd-x64": "1.2.162", - "@swc/core-linux-arm-gnueabihf": "1.2.162", - "@swc/core-linux-arm64-gnu": "1.2.162", - "@swc/core-linux-arm64-musl": "1.2.162", - "@swc/core-linux-x64-gnu": "1.2.162", - "@swc/core-linux-x64-musl": "1.2.162", - "@swc/core-win32-arm64-msvc": "1.2.162", - "@swc/core-win32-ia32-msvc": "1.2.162", - "@swc/core-win32-x64-msvc": "1.2.162" + "@swc/core-android-arm-eabi": "1.2.163", + "@swc/core-android-arm64": "1.2.163", + "@swc/core-darwin-arm64": "1.2.163", + "@swc/core-darwin-x64": "1.2.163", + "@swc/core-freebsd-x64": "1.2.163", + "@swc/core-linux-arm-gnueabihf": "1.2.163", + "@swc/core-linux-arm64-gnu": "1.2.163", + "@swc/core-linux-arm64-musl": "1.2.163", + "@swc/core-linux-x64-gnu": "1.2.163", + "@swc/core-linux-x64-musl": "1.2.163", + "@swc/core-win32-arm64-msvc": "1.2.163", + "@swc/core-win32-ia32-msvc": "1.2.163", + "@swc/core-win32-x64-msvc": "1.2.163" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.162.tgz", - "integrity": "sha512-mQSuLspB1qBAYXyDP0Da60tPumhwD0CIm7tMjAFiOplEJN+9YKBlZ3EV9Xc1wF5bdWzJpmzmqEdN9FEfOQqlwQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.163.tgz", + "integrity": "sha512-8tv6EMcL5zkgXikwkEMu4I2iy79gmCDe44a3PtQjAc7O/QxxyjJnEVxB6/1U1TnpyLBjcjVfLLzX572LnK9p4Q==", "cpu": [ "arm" ], @@ -311,9 +311,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.162.tgz", - "integrity": "sha512-9TuuTrsrxbw1W1xUfcmRuEIKImJC725S/4McSFpoylYRIoHzD1DPpgP4fquU0/fzq7rldVD1tu4tg3xvEL8auw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.163.tgz", + "integrity": "sha512-nDnogIlm1JMs+lSBNH5MIKf7h2h1JQ7kpZSIhnCrr8kajFP5YWQyz9pu2GMv2oc9iWp9TafRk2h2ov3rBJwzIg==", "cpu": [ "arm64" ], @@ -326,9 +326,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.162.tgz", - "integrity": "sha512-gWJjD7NqKVxGFSJ4BeTXfBpRRRkxaQcWmmkwoXDQ1tmLRUX6K3V8MXp41mTdg7jJWDyKq4VTN6D8zLQcCUEhmQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.163.tgz", + "integrity": "sha512-5sxTJUfWK8hFZNdh3MNYJBB4X58WL8gRzr/U7rWMRpA9GKFcKNAsvPZICICXEVGVX7glC6LZX94ML2fGsW/NeA==", "cpu": [ "arm64" ], @@ -341,9 +341,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.162.tgz", - "integrity": "sha512-+3foKCmxiMuPp1UCIPUg3N8CuzFRDPoPEQagz3TKT8W7Bkv9SXeIL8LPuwfH970rIcx1Ie/Q2UWXJwbckVmMHQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.163.tgz", + "integrity": "sha512-pVYtFi0Rfeh0JLZKD0HR1j4chcqEaxyk4lhx2DEMg2VvZYjZd1b6bRKB5gKJy1lLzpiUngqeSpIt14jnCIqWZg==", "cpu": [ "x64" ], @@ -356,9 +356,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.162.tgz", - "integrity": "sha512-YdfQgALPwJ6ZCvfqLlytCvZG/r/ZgBlOa0gaZvMGl6WMpnWgoVPA5OYBA5qzstg/OEWjMu6fldi+lElsvq8v2Q==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.163.tgz", + "integrity": "sha512-a8adSrD2d7WCdD+BqUt7hlmwujcYTYGpSq6i8OxfmxPSf50lCUoBaQ+B/tSyvLlvnusiURHfwhfzSld1vtg04Q==", "cpu": [ "x64" ], @@ -371,9 +371,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.162.tgz", - "integrity": "sha512-4elULEP2JWvSpEEI7JmhoI25cRQ2/ffBtf3+4vLlcAgJCdCrkYvHJO2fbWlN1fpydj34QabMsOROYS4ff4p0Og==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.163.tgz", + "integrity": "sha512-7pQZ7acveuX2p0Ysrg6AHVedTbWQBOjlBQ8AmJ3Wwri9h4o1GLzJkzJQ++Dyp+xGE+pI0ppK6dqaQZ1Zm8yPLQ==", "cpu": [ "arm" ], @@ -386,9 +386,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.162.tgz", - "integrity": "sha512-ZgR1J8H4qI7EuADgHEeDBtiiF8yt6vrznVtaBvEInDPdV9W10QNKsTqhuFkTfOqaHAO2u1+MkZRuvALGahdDaQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.163.tgz", + "integrity": "sha512-yPG6iAN7OlhiNWPy8Ma9WrrQpQZIZE5huR1HVRzM5m8/svs65m3vCTAEHWa+45y1PX3/Bo+hd6tyjaHMAco/ew==", "cpu": [ "arm64" ], @@ -401,9 +401,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.162.tgz", - "integrity": "sha512-1Egev+v8wlr7zPaS715sG7flzbGE0OLtcCR7p7oUqD/NbKwlA6czMch5JwNWvdRMjLThTYEeJ/ID+/xG8BqXUg==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.163.tgz", + "integrity": "sha512-sEBgJbaTixEEv8vvf7Udjc9d4HvAYnKtMBu354FszSwKBLmf75CJNUU4vJQRn+E/+WwMXxorSXdx1+wW4fpStg==", "cpu": [ "arm64" ], @@ -416,9 +416,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.162.tgz", - "integrity": "sha512-LFWV+8h6S3KmzVgHXRYpGYsaytGt+Vrbm8554ugUdzk465JnHyKzw3e6VRcJTxAGgXa+o1qUEkeBg7Wc/WWkmQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.163.tgz", + "integrity": "sha512-69OjEhbxYaMVIhly2hrgDwiOG0MdPQJ3BU5lD/kStvNMnGS/bCNgVYnnsjJgJKfpvJBLtUd/t7QrdwZvrY+pSw==", "cpu": [ "x64" ], @@ -431,9 +431,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.162.tgz", - "integrity": "sha512-q5insucuYBVCjpDp8/EG3dbt2PFwGAo2vFzofr/lOlOo9p90jCzFRL0+eXg4Ar1YG6BL+T9o5LhFRggY+YHIBg==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.163.tgz", + "integrity": "sha512-I2pvui8SaNE74vO1YHIJj7/R6IuR8qXfW5YNJ9NV2yR5G6Po2vPR/kMpJgd4rrt6gg16+FGw+XDpMue8+TGLcw==", "cpu": [ "x64" ], @@ -446,9 +446,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.162.tgz", - "integrity": "sha512-xzksaPOqB3a8gxLoE0ZMi5w2NX9zzYDylmM3qbCVqft6IZid2XFG2lPFIwxJV1xfW68xMgAe0IECnjp/nQsS8g==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.163.tgz", + "integrity": "sha512-CaFr1xVfXrXywDDyNUfRSWh9vqhMmaOh9dpBGHDWPDT+EOwK0Rm78LZPh9G3iQakEq9/6ztqCmskPy7Go6gG6A==", "cpu": [ "arm64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.162.tgz", - "integrity": "sha512-hUvS7UaSW+h16SSH7GwH571L2GnqWHPsiSKIDUvv1b/lca7dLcCY8RzsKafB/GLU+5EBQIN3nab3nH0vOWRkvw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.163.tgz", + "integrity": "sha512-0HfuKu8eG1brQ13PVba5WJm187asQuHeVuuVD0WL1/d6TSp2dfsfXdOPt7gjPG0WVtVpYh8e4N0IEcE0gVpzxA==", "cpu": [ "ia32" ], @@ -476,9 +476,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.162.tgz", - "integrity": "sha512-Eb0SehVYWO5TpYeaPAD3T3iIPpgJa1q/rmvgMDvL0hi4UnOJlvj43kC4Dhuor6opLd6fJkCS7gBq9SxtGtb8bQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.163.tgz", + "integrity": "sha512-BB1tioCAu2Wdt2efKOcbNR9vByzNUhiJqmBv1wWGR6wqV2k46jRMex2NzQESMBl8slIJG+ZPFLE8gUChl0crIg==", "cpu": [ "x64" ], @@ -2698,101 +2698,101 @@ } }, "@swc/core": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.162.tgz", - "integrity": "sha512-MFBmoV2qgGvi5bPX1tH3NLtWV4exa5jTCkC/30mdP5PTwEsxKJ5u+m1fuYOlgzDiBlytx8AihVZy2TmXhWZByw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.163.tgz", + "integrity": "sha512-8/ytlOhXSomPjfgOFgto6xnYR+UAj0eHJEIu2NbdHgpFjrDFti6C9XeW0zB6zheCq0fShP0RbE9qXlgYKoSZ8w==", "requires": { - "@swc/core-android-arm-eabi": "1.2.162", - "@swc/core-android-arm64": "1.2.162", - "@swc/core-darwin-arm64": "1.2.162", - "@swc/core-darwin-x64": "1.2.162", - "@swc/core-freebsd-x64": "1.2.162", - "@swc/core-linux-arm-gnueabihf": "1.2.162", - "@swc/core-linux-arm64-gnu": "1.2.162", - "@swc/core-linux-arm64-musl": "1.2.162", - "@swc/core-linux-x64-gnu": "1.2.162", - "@swc/core-linux-x64-musl": "1.2.162", - "@swc/core-win32-arm64-msvc": "1.2.162", - "@swc/core-win32-ia32-msvc": "1.2.162", - "@swc/core-win32-x64-msvc": "1.2.162" + "@swc/core-android-arm-eabi": "1.2.163", + "@swc/core-android-arm64": "1.2.163", + "@swc/core-darwin-arm64": "1.2.163", + "@swc/core-darwin-x64": "1.2.163", + "@swc/core-freebsd-x64": "1.2.163", + "@swc/core-linux-arm-gnueabihf": "1.2.163", + "@swc/core-linux-arm64-gnu": "1.2.163", + "@swc/core-linux-arm64-musl": "1.2.163", + "@swc/core-linux-x64-gnu": "1.2.163", + "@swc/core-linux-x64-musl": "1.2.163", + "@swc/core-win32-arm64-msvc": "1.2.163", + "@swc/core-win32-ia32-msvc": "1.2.163", + "@swc/core-win32-x64-msvc": "1.2.163" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.162.tgz", - "integrity": "sha512-mQSuLspB1qBAYXyDP0Da60tPumhwD0CIm7tMjAFiOplEJN+9YKBlZ3EV9Xc1wF5bdWzJpmzmqEdN9FEfOQqlwQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.163.tgz", + "integrity": "sha512-8tv6EMcL5zkgXikwkEMu4I2iy79gmCDe44a3PtQjAc7O/QxxyjJnEVxB6/1U1TnpyLBjcjVfLLzX572LnK9p4Q==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.162.tgz", - "integrity": "sha512-9TuuTrsrxbw1W1xUfcmRuEIKImJC725S/4McSFpoylYRIoHzD1DPpgP4fquU0/fzq7rldVD1tu4tg3xvEL8auw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.163.tgz", + "integrity": "sha512-nDnogIlm1JMs+lSBNH5MIKf7h2h1JQ7kpZSIhnCrr8kajFP5YWQyz9pu2GMv2oc9iWp9TafRk2h2ov3rBJwzIg==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.162.tgz", - "integrity": "sha512-gWJjD7NqKVxGFSJ4BeTXfBpRRRkxaQcWmmkwoXDQ1tmLRUX6K3V8MXp41mTdg7jJWDyKq4VTN6D8zLQcCUEhmQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.163.tgz", + "integrity": "sha512-5sxTJUfWK8hFZNdh3MNYJBB4X58WL8gRzr/U7rWMRpA9GKFcKNAsvPZICICXEVGVX7glC6LZX94ML2fGsW/NeA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.162.tgz", - "integrity": "sha512-+3foKCmxiMuPp1UCIPUg3N8CuzFRDPoPEQagz3TKT8W7Bkv9SXeIL8LPuwfH970rIcx1Ie/Q2UWXJwbckVmMHQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.163.tgz", + "integrity": "sha512-pVYtFi0Rfeh0JLZKD0HR1j4chcqEaxyk4lhx2DEMg2VvZYjZd1b6bRKB5gKJy1lLzpiUngqeSpIt14jnCIqWZg==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.162.tgz", - "integrity": "sha512-YdfQgALPwJ6ZCvfqLlytCvZG/r/ZgBlOa0gaZvMGl6WMpnWgoVPA5OYBA5qzstg/OEWjMu6fldi+lElsvq8v2Q==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.163.tgz", + "integrity": "sha512-a8adSrD2d7WCdD+BqUt7hlmwujcYTYGpSq6i8OxfmxPSf50lCUoBaQ+B/tSyvLlvnusiURHfwhfzSld1vtg04Q==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.162.tgz", - "integrity": "sha512-4elULEP2JWvSpEEI7JmhoI25cRQ2/ffBtf3+4vLlcAgJCdCrkYvHJO2fbWlN1fpydj34QabMsOROYS4ff4p0Og==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.163.tgz", + "integrity": "sha512-7pQZ7acveuX2p0Ysrg6AHVedTbWQBOjlBQ8AmJ3Wwri9h4o1GLzJkzJQ++Dyp+xGE+pI0ppK6dqaQZ1Zm8yPLQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.162.tgz", - "integrity": "sha512-ZgR1J8H4qI7EuADgHEeDBtiiF8yt6vrznVtaBvEInDPdV9W10QNKsTqhuFkTfOqaHAO2u1+MkZRuvALGahdDaQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.163.tgz", + "integrity": "sha512-yPG6iAN7OlhiNWPy8Ma9WrrQpQZIZE5huR1HVRzM5m8/svs65m3vCTAEHWa+45y1PX3/Bo+hd6tyjaHMAco/ew==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.162.tgz", - "integrity": "sha512-1Egev+v8wlr7zPaS715sG7flzbGE0OLtcCR7p7oUqD/NbKwlA6czMch5JwNWvdRMjLThTYEeJ/ID+/xG8BqXUg==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.163.tgz", + "integrity": "sha512-sEBgJbaTixEEv8vvf7Udjc9d4HvAYnKtMBu354FszSwKBLmf75CJNUU4vJQRn+E/+WwMXxorSXdx1+wW4fpStg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.162.tgz", - "integrity": "sha512-LFWV+8h6S3KmzVgHXRYpGYsaytGt+Vrbm8554ugUdzk465JnHyKzw3e6VRcJTxAGgXa+o1qUEkeBg7Wc/WWkmQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.163.tgz", + "integrity": "sha512-69OjEhbxYaMVIhly2hrgDwiOG0MdPQJ3BU5lD/kStvNMnGS/bCNgVYnnsjJgJKfpvJBLtUd/t7QrdwZvrY+pSw==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.162.tgz", - "integrity": "sha512-q5insucuYBVCjpDp8/EG3dbt2PFwGAo2vFzofr/lOlOo9p90jCzFRL0+eXg4Ar1YG6BL+T9o5LhFRggY+YHIBg==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.163.tgz", + "integrity": "sha512-I2pvui8SaNE74vO1YHIJj7/R6IuR8qXfW5YNJ9NV2yR5G6Po2vPR/kMpJgd4rrt6gg16+FGw+XDpMue8+TGLcw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.162.tgz", - "integrity": "sha512-xzksaPOqB3a8gxLoE0ZMi5w2NX9zzYDylmM3qbCVqft6IZid2XFG2lPFIwxJV1xfW68xMgAe0IECnjp/nQsS8g==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.163.tgz", + "integrity": "sha512-CaFr1xVfXrXywDDyNUfRSWh9vqhMmaOh9dpBGHDWPDT+EOwK0Rm78LZPh9G3iQakEq9/6ztqCmskPy7Go6gG6A==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.162.tgz", - "integrity": "sha512-hUvS7UaSW+h16SSH7GwH571L2GnqWHPsiSKIDUvv1b/lca7dLcCY8RzsKafB/GLU+5EBQIN3nab3nH0vOWRkvw==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.163.tgz", + "integrity": "sha512-0HfuKu8eG1brQ13PVba5WJm187asQuHeVuuVD0WL1/d6TSp2dfsfXdOPt7gjPG0WVtVpYh8e4N0IEcE0gVpzxA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.162", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.162.tgz", - "integrity": "sha512-Eb0SehVYWO5TpYeaPAD3T3iIPpgJa1q/rmvgMDvL0hi4UnOJlvj43kC4Dhuor6opLd6fJkCS7gBq9SxtGtb8bQ==", + "version": "1.2.163", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.163.tgz", + "integrity": "sha512-BB1tioCAu2Wdt2efKOcbNR9vByzNUhiJqmBv1wWGR6wqV2k46jRMex2NzQESMBl8slIJG+ZPFLE8gUChl0crIg==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index eda0e740d..33f5f1fd0 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.162", + "@swc/core": "^1.2.163", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From ae0b418d67e8c71d3fd4e36ceedef4fc705ec1e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 08:02:26 +0700 Subject: [PATCH 227/411] chore(deps-dev): bump @typescript-eslint/parser from 5.17.0 to 5.18.0 (#854) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.17.0 to 5.18.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.18.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e47616dd..08f833fb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.17.0", - "@typescript-eslint/parser": "^5.17.0", + "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.12.0", "typescript": "^4.5.5" }, @@ -614,14 +614,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", - "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz", + "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/typescript-estree": "5.18.0", "debug": "^4.3.2" }, "engines": { @@ -640,6 +640,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", + "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", + "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", + "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", + "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.18.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", @@ -2899,15 +2973,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", - "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz", + "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/typescript-estree": "5.18.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", + "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0" + } + }, + "@typescript-eslint/types": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", + "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", + "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", + "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.18.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index 33f5f1fd0..652a1a917 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.17.0", - "@typescript-eslint/parser": "^5.17.0", + "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.12.0", "typescript": "^4.5.5" }, From fa68d1436d558b69fdb16a3d34172b2ceca3db04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 01:04:20 +0000 Subject: [PATCH 228/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#855) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.17.0 to 5.18.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.18.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 243 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 64 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08f833fb0..b2807bb6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.17.0", + "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.12.0", "typescript": "^4.5.5" @@ -581,14 +581,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", - "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz", + "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/type-utils": "5.17.0", - "@typescript-eslint/utils": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/type-utils": "5.18.0", + "@typescript-eslint/utils": "5.18.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -640,7 +640,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", @@ -657,87 +657,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", - "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", - "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", - "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.18.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", - "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz", + "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.17.0", + "@typescript-eslint/utils": "5.18.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -758,9 +684,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", + "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -771,13 +697,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", + "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -798,15 +724,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", - "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz", + "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/typescript-estree": "5.18.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -822,12 +748,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", + "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/types": "5.18.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -2956,14 +2882,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", - "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz", + "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/type-utils": "5.17.0", - "@typescript-eslint/utils": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/type-utils": "5.18.0", + "@typescript-eslint/utils": "5.18.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -2982,86 +2908,43 @@ "@typescript-eslint/types": "5.18.0", "@typescript-eslint/typescript-estree": "5.18.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", - "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0" - } - }, - "@typescript-eslint/types": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", - "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", - "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", - "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.18.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", + "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0" } }, "@typescript-eslint/type-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", - "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz", + "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.17.0", + "@typescript-eslint/utils": "5.18.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", + "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", + "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/visitor-keys": "5.18.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3070,26 +2953,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", - "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz", + "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.18.0", + "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/typescript-estree": "5.18.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", + "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/types": "5.18.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 652a1a917..6462adda5 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.17.0", + "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.12.0", "typescript": "^4.5.5" From bbd385d153a2093981244ec51f7727ef816d61ca Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 6 Apr 2022 08:03:57 +0900 Subject: [PATCH 229/411] chore(QueueCommand): remove console logs --- src/commands/music/QueueCommand.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index 6b4ab7c13..ce9db56d6 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -21,13 +21,11 @@ import { AudioPlayerPlayingState } from "@discordjs/voice"; export class QueueCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { - console.log("ehe"); const np = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full : full.filter(val => val.index >= np.index); - console.log("a"); const pages = await Promise.all(chunk([...songs.values()], 10).map(async (s, n) => { const names = await Promise.all(s.map((song, i) => { const npKey = np.key; @@ -38,12 +36,9 @@ export class QueueCommand extends BaseCommand { return names.join("\n"); })); - console.log("b"); const embed = createEmbed("info", pages[0]); const msg = await ctx.reply({ embeds: [embed] }); - console.log("c"); - return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => e.setDescription(p) From 9e232a2236907bbddc752def0863272314cadcbf Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 6 Apr 2022 08:04:20 +0900 Subject: [PATCH 230/411] feat(SongManager): make client property optional --- src/utils/structures/SongManager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/structures/SongManager.ts b/src/utils/structures/SongManager.ts index 5c8a093a7..d15e9a481 100644 --- a/src/utils/structures/SongManager.ts +++ b/src/utils/structures/SongManager.ts @@ -19,12 +19,12 @@ export class SongManager extends Collection<Snowflake, QueueSong> { } public set(key: Snowflake, data: QueueSong): this { - this.client.debugLog.logData("info", "SONG_MANAGER", `New value added to ${this.guild.name}(${this.guild.id}) song manager. Key: ${key}`); + (this.client as Rawon | undefined)?.debugLog.logData("info", "SONG_MANAGER", `New value added to ${this.guild.name}(${this.guild.id}) song manager. Key: ${key}`); return super.set(key, data); } public delete(key: Snowflake): boolean { - this.client.debugLog.logData("info", "SONG_MANAGER", `Value ${key} deleted from ${this.guild.name}(${this.guild.id}) song manager.`); + (this.client as Rawon | undefined)?.debugLog.logData("info", "SONG_MANAGER", `Value ${key} deleted from ${this.guild.name}(${this.guild.id}) song manager.`); return super.delete(key); } From ddbe2693aa2485a13a112a27d305ed4ab5688809 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 8 Apr 2022 17:31:22 +0900 Subject: [PATCH 231/411] feat(typings): make 'thumbnails' optional in BasicYoutubeVideoInfo --- src/typings/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 5f6244536..1db49a401 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -13,7 +13,7 @@ export interface QueryData { } export interface BasicYoutubeVideoInfo { - thumbnails: { url: string; width: number; height: number }[]; + thumbnails?: { url: string; width: number; height: number }[]; duration: number; title: string; url: string; From e7a687b38c2c4e1ebff17b15c0aebb28d72165ab Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 8 Apr 2022 17:31:50 +0900 Subject: [PATCH 232/411] feat(searchTrack): 'thumbnails' is optional --- src/utils/handlers/general/searchTrack.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index 9eb5974c4..b32ee0277 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -175,7 +175,7 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl result.items = [{ duration: info?.duration ?? 0, id: info?.id ?? "", - thumbnail: info?.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url ?? "", + thumbnail: info?.thumbnails?.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url ?? "", title: info?.title ?? "Unknown Song", url: info?.url ?? url.toString() }]; From 0211a78b328b6f144b454ee649f2166b79578398 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 9 Apr 2022 16:43:50 +0900 Subject: [PATCH 233/411] feat(yt-dlp-utils): use macOS binary for darwin-based platform --- yt-dlp-utils/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yt-dlp-utils/index.js b/yt-dlp-utils/index.js index 3083b16af..8ab1a6be8 100644 --- a/yt-dlp-utils/index.js +++ b/yt-dlp-utils/index.js @@ -3,7 +3,9 @@ import { spawn } from "child_process"; import { resolve } from "path"; import got from "got"; -const suffix = process.platform === "win32" ? ".exe" : ""; +const suffix = process.platform === "win32" ? ".exe" : ( + process.platform === "darwin" ? "_macos" : "" +); const filename = `yt-dlp${suffix}`; const scriptsPath = resolve(process.cwd(), "scripts"); const exePath = resolve(scriptsPath, filename); From 4d8444e05142a3304e1f0149868c0f2b55abb8bf Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 9 Apr 2022 16:46:38 +0900 Subject: [PATCH 234/411] chore(readme): remove Python requirement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59666029e..c1684073e 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ - A production-ready project, set up the bot without coding. ## General Setup -1. Download and install [Node.js](https://nodejs.org) version `16.6.0` and [Python](https://python.org) version `3.6.0` or above +1. Download and install [Node.js](https://nodejs.org) version `16.6.0` or higher 2. Open `.env_example` file and rename it to `.env` 3. Install required and optional dependencies ```sh From bfca136ade1d693db32d1dde5b29bb96ff60c3be Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 9 Apr 2022 16:50:25 +0900 Subject: [PATCH 235/411] chore: change `youtube-dl` stream strategy to `yt-dlp` --- .env_example | 6 +++--- README.md | 2 +- app.json | 4 ++-- src/config/env.ts | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.env_example b/.env_example index 836b04e4e..7dba0dea6 100644 --- a/.env_example +++ b/.env_example @@ -69,9 +69,9 @@ NODE_ENV="" #============================================================================== # OPTIONAL - Which youtube downloader do you want to use? # But if you use play-dl, it will support a few sites. -# Example: STREAM_STRATEGY="youtube-dl" -# Available: play-dl, youtube-dl -# Default: youtube-dl +# Example: STREAM_STRATEGY="yt-dlp" +# Available: play-dl, yt-dlp +# Default: yt-dlp STREAM_STRATEGY="" #============================================================================== diff --git a/README.md b/README.md index c1684073e..c1f4ab49f 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 **IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. -<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FRahagia%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+youtube-dl&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=youtube-dl&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" +<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FRahagia%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> ## Project Maintainer diff --git a/app.json b/app.json index 3d3a4f7a0..40beb6b03 100644 --- a/app.json +++ b/app.json @@ -53,9 +53,9 @@ "value": "production" }, "STREAM_STRATEGY": { - "description": "Which youtube downloader do you want to use? But if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"youtube-dl\"", + "description": "Which youtube downloader do you want to use? But if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"yt-dlp\"", "required": false, - "value": "youtube-dl" + "value": "yt-dlp" }, "ENABLE_SLASH_COMMAND": { "description": "Do you want to enable slash command support? | Example: yes", diff --git a/src/config/env.ts b/src/config/env.ts index 8d0cff8f8..e307fbd8f 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -14,7 +14,7 @@ export const isProd = !isDev; // String values export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; -export const streamStrategy = process.env.STREAM_STRATEGY! || "youtube-dl"; +export const streamStrategy = process.env.STREAM_STRATEGY! || "yt-dlp"; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; From 302e571a5b9cff37a8611e55d992f29f1083bd89 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 9 Apr 2022 16:51:49 +0900 Subject: [PATCH 236/411] chore(env_example): change play-dl information to wiki URL --- .env_example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env_example b/.env_example index 7dba0dea6..2b674f396 100644 --- a/.env_example +++ b/.env_example @@ -68,7 +68,7 @@ NODE_ENV="" #============================================================================== # OPTIONAL - Which youtube downloader do you want to use? -# But if you use play-dl, it will support a few sites. +# For more information, see: https://github.com/Rahagia/rawon/wiki/Stream-Strategy # Example: STREAM_STRATEGY="yt-dlp" # Available: play-dl, yt-dlp # Default: yt-dlp From 26e02953534862484927bf245d951f7fea445174 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 07:16:35 +0700 Subject: [PATCH 237/411] chore(deps): bump play-dl from 1.9.3 to 1.9.4 (#861) Bumps [play-dl](https://github.com/play-dl/play-dl) from 1.9.3 to 1.9.4. - [Release notes](https://github.com/play-dl/play-dl/releases) - [Commits](https://github.com/play-dl/play-dl/compare/1.9.3...1.9.4) --- updated-dependencies: - dependency-name: play-dl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2807bb6f..a8f5b8538 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", + "play-dl": "^1.9.4", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -36,7 +37,7 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.3" + "play-dl": "^1.9.4" } }, "node_modules/@discordjs/builders": { @@ -2060,9 +2061,9 @@ "optional": true }, "node_modules/play-dl": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.3.tgz", - "integrity": "sha512-eDiqO0KZ2ngGrPmlIrOWClDAQ2KDyrGJHNjlrreyDZlm6GrB0+FXc1UN+R7JnZZ6T1eXbn0a1CxBlJGL6tAKhw==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", "optional": true, "dependencies": { "play-audio": "^0.5.2" @@ -3933,9 +3934,9 @@ "optional": true }, "play-dl": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.3.tgz", - "integrity": "sha512-eDiqO0KZ2ngGrPmlIrOWClDAQ2KDyrGJHNjlrreyDZlm6GrB0+FXc1UN+R7JnZZ6T1eXbn0a1CxBlJGL6tAKhw==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", "optional": true, "requires": { "play-audio": "^0.5.2" diff --git a/package.json b/package.json index 6462adda5..1d396d1f4 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,6 @@ "node": ">=16.6.0" }, "optionalDependencies": { - "play-dl": "^1.9.3" + "play-dl": "^1.9.4" } } From ebb16af6fc016c033d0258fca2395afb84c8d606 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:14:56 +0700 Subject: [PATCH 238/411] chore(deps-dev): bump eslint from 8.12.0 to 8.13.0 (#859) Bumps [eslint](https://github.com/eslint/eslint) from 8.12.0 to 8.13.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.12.0...v8.13.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 15 +++++++-------- package.json | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8f5b8538..0bfd6540f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "got": "^12.0.3", "i18n": "0.14.2", "opusscript": "^0.0.8", - "play-dl": "^1.9.4", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", @@ -30,7 +29,7 @@ "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", - "eslint": "^8.12.0", + "eslint": "^8.13.0", "typescript": "^4.5.5" }, "engines": { @@ -1179,9 +1178,9 @@ } }, "node_modules/eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.2.1", @@ -3277,9 +3276,9 @@ "dev": true }, "eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.2.1", diff --git a/package.json b/package.json index 1d396d1f4..2ccb855e2 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", - "eslint": "^8.12.0", + "eslint": "^8.13.0", "typescript": "^4.5.5" }, "engines": { From 4498f4d9cf659a99c8f213f2459d2d4de7f41f4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 02:16:50 +0000 Subject: [PATCH 239/411] chore(deps): bump youtubei from 0.0.1-rc.32 to 0.0.1-rc.35 (#862) Bumps [youtubei](https://github.com/SuspiciousLookingOwl/youtubei) from 0.0.1-rc.32 to 0.0.1-rc.35. - [Release notes](https://github.com/SuspiciousLookingOwl/youtubei/releases) - [Changelog](https://github.com/SuspiciousLookingOwl/youtubei/blob/main/CHANGELOG.md) - [Commits](https://github.com/SuspiciousLookingOwl/youtubei/commits) --- updated-dependencies: - dependency-name: youtubei dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0bfd6540f..92095beff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.32" + "youtubei": "^0.0.1-rc.35" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", @@ -2527,9 +2527,9 @@ "dev": true }, "node_modules/youtubei": { - "version": "0.0.1-rc.32", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", - "integrity": "sha512-CzqsEE5ghK9j6sUKmXhNGZOX1GNapBNjDcvOWq6Rn3JDppcbr3IvTvZ9ECqfEHryxxLtSg/ma+tRFjVqBpeRcg==" + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" }, "node_modules/zod": { "version": "3.11.6", @@ -4242,9 +4242,9 @@ "dev": true }, "youtubei": { - "version": "0.0.1-rc.32", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.32.tgz", - "integrity": "sha512-CzqsEE5ghK9j6sUKmXhNGZOX1GNapBNjDcvOWq6Rn3JDppcbr3IvTvZ9ECqfEHryxxLtSg/ma+tRFjVqBpeRcg==" + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" }, "zod": { "version": "3.11.6", diff --git a/package.json b/package.json index 2ccb855e2..16ac73fa6 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "soundcloud.ts": "^0.4.5", "tslib": "^2.3.1", "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.32" + "youtubei": "^0.0.1-rc.35" }, "devDependencies": { "@rahagia/eslint-config": "^8.1.1", From f0dd98bfa984080a796104517f3517a814299f8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 02:18:45 +0000 Subject: [PATCH 240/411] chore(deps): bump @swc/core from 1.2.163 to 1.2.165 (#860) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.163 to 1.2.165. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.163...v1.2.165) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92095beff..2f52368da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.163", + "@swc/core": "^1.2.165", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -266,9 +266,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.163.tgz", - "integrity": "sha512-8/ytlOhXSomPjfgOFgto6xnYR+UAj0eHJEIu2NbdHgpFjrDFti6C9XeW0zB6zheCq0fShP0RbE9qXlgYKoSZ8w==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", + "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", "bin": { "swcx": "run_swcx.js" }, @@ -280,25 +280,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.163", - "@swc/core-android-arm64": "1.2.163", - "@swc/core-darwin-arm64": "1.2.163", - "@swc/core-darwin-x64": "1.2.163", - "@swc/core-freebsd-x64": "1.2.163", - "@swc/core-linux-arm-gnueabihf": "1.2.163", - "@swc/core-linux-arm64-gnu": "1.2.163", - "@swc/core-linux-arm64-musl": "1.2.163", - "@swc/core-linux-x64-gnu": "1.2.163", - "@swc/core-linux-x64-musl": "1.2.163", - "@swc/core-win32-arm64-msvc": "1.2.163", - "@swc/core-win32-ia32-msvc": "1.2.163", - "@swc/core-win32-x64-msvc": "1.2.163" + "@swc/core-android-arm-eabi": "1.2.165", + "@swc/core-android-arm64": "1.2.165", + "@swc/core-darwin-arm64": "1.2.165", + "@swc/core-darwin-x64": "1.2.165", + "@swc/core-freebsd-x64": "1.2.165", + "@swc/core-linux-arm-gnueabihf": "1.2.165", + "@swc/core-linux-arm64-gnu": "1.2.165", + "@swc/core-linux-arm64-musl": "1.2.165", + "@swc/core-linux-x64-gnu": "1.2.165", + "@swc/core-linux-x64-musl": "1.2.165", + "@swc/core-win32-arm64-msvc": "1.2.165", + "@swc/core-win32-ia32-msvc": "1.2.165", + "@swc/core-win32-x64-msvc": "1.2.165" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.163.tgz", - "integrity": "sha512-8tv6EMcL5zkgXikwkEMu4I2iy79gmCDe44a3PtQjAc7O/QxxyjJnEVxB6/1U1TnpyLBjcjVfLLzX572LnK9p4Q==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", + "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", "cpu": [ "arm" ], @@ -311,9 +311,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.163.tgz", - "integrity": "sha512-nDnogIlm1JMs+lSBNH5MIKf7h2h1JQ7kpZSIhnCrr8kajFP5YWQyz9pu2GMv2oc9iWp9TafRk2h2ov3rBJwzIg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", + "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", "cpu": [ "arm64" ], @@ -326,9 +326,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.163.tgz", - "integrity": "sha512-5sxTJUfWK8hFZNdh3MNYJBB4X58WL8gRzr/U7rWMRpA9GKFcKNAsvPZICICXEVGVX7glC6LZX94ML2fGsW/NeA==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", + "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", "cpu": [ "arm64" ], @@ -341,9 +341,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.163.tgz", - "integrity": "sha512-pVYtFi0Rfeh0JLZKD0HR1j4chcqEaxyk4lhx2DEMg2VvZYjZd1b6bRKB5gKJy1lLzpiUngqeSpIt14jnCIqWZg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", + "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", "cpu": [ "x64" ], @@ -356,9 +356,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.163.tgz", - "integrity": "sha512-a8adSrD2d7WCdD+BqUt7hlmwujcYTYGpSq6i8OxfmxPSf50lCUoBaQ+B/tSyvLlvnusiURHfwhfzSld1vtg04Q==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", + "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", "cpu": [ "x64" ], @@ -371,9 +371,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.163.tgz", - "integrity": "sha512-7pQZ7acveuX2p0Ysrg6AHVedTbWQBOjlBQ8AmJ3Wwri9h4o1GLzJkzJQ++Dyp+xGE+pI0ppK6dqaQZ1Zm8yPLQ==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", + "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", "cpu": [ "arm" ], @@ -386,9 +386,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.163.tgz", - "integrity": "sha512-yPG6iAN7OlhiNWPy8Ma9WrrQpQZIZE5huR1HVRzM5m8/svs65m3vCTAEHWa+45y1PX3/Bo+hd6tyjaHMAco/ew==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", + "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", "cpu": [ "arm64" ], @@ -401,9 +401,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.163.tgz", - "integrity": "sha512-sEBgJbaTixEEv8vvf7Udjc9d4HvAYnKtMBu354FszSwKBLmf75CJNUU4vJQRn+E/+WwMXxorSXdx1+wW4fpStg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", + "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", "cpu": [ "arm64" ], @@ -416,9 +416,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.163.tgz", - "integrity": "sha512-69OjEhbxYaMVIhly2hrgDwiOG0MdPQJ3BU5lD/kStvNMnGS/bCNgVYnnsjJgJKfpvJBLtUd/t7QrdwZvrY+pSw==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", + "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", "cpu": [ "x64" ], @@ -431,9 +431,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.163.tgz", - "integrity": "sha512-I2pvui8SaNE74vO1YHIJj7/R6IuR8qXfW5YNJ9NV2yR5G6Po2vPR/kMpJgd4rrt6gg16+FGw+XDpMue8+TGLcw==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", + "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", "cpu": [ "x64" ], @@ -446,9 +446,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.163.tgz", - "integrity": "sha512-CaFr1xVfXrXywDDyNUfRSWh9vqhMmaOh9dpBGHDWPDT+EOwK0Rm78LZPh9G3iQakEq9/6ztqCmskPy7Go6gG6A==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", + "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", "cpu": [ "arm64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.163.tgz", - "integrity": "sha512-0HfuKu8eG1brQ13PVba5WJm187asQuHeVuuVD0WL1/d6TSp2dfsfXdOPt7gjPG0WVtVpYh8e4N0IEcE0gVpzxA==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", + "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", "cpu": [ "ia32" ], @@ -476,9 +476,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.163.tgz", - "integrity": "sha512-BB1tioCAu2Wdt2efKOcbNR9vByzNUhiJqmBv1wWGR6wqV2k46jRMex2NzQESMBl8slIJG+ZPFLE8gUChl0crIg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", + "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", "cpu": [ "x64" ], @@ -2698,101 +2698,101 @@ } }, "@swc/core": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.163.tgz", - "integrity": "sha512-8/ytlOhXSomPjfgOFgto6xnYR+UAj0eHJEIu2NbdHgpFjrDFti6C9XeW0zB6zheCq0fShP0RbE9qXlgYKoSZ8w==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", + "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", "requires": { - "@swc/core-android-arm-eabi": "1.2.163", - "@swc/core-android-arm64": "1.2.163", - "@swc/core-darwin-arm64": "1.2.163", - "@swc/core-darwin-x64": "1.2.163", - "@swc/core-freebsd-x64": "1.2.163", - "@swc/core-linux-arm-gnueabihf": "1.2.163", - "@swc/core-linux-arm64-gnu": "1.2.163", - "@swc/core-linux-arm64-musl": "1.2.163", - "@swc/core-linux-x64-gnu": "1.2.163", - "@swc/core-linux-x64-musl": "1.2.163", - "@swc/core-win32-arm64-msvc": "1.2.163", - "@swc/core-win32-ia32-msvc": "1.2.163", - "@swc/core-win32-x64-msvc": "1.2.163" + "@swc/core-android-arm-eabi": "1.2.165", + "@swc/core-android-arm64": "1.2.165", + "@swc/core-darwin-arm64": "1.2.165", + "@swc/core-darwin-x64": "1.2.165", + "@swc/core-freebsd-x64": "1.2.165", + "@swc/core-linux-arm-gnueabihf": "1.2.165", + "@swc/core-linux-arm64-gnu": "1.2.165", + "@swc/core-linux-arm64-musl": "1.2.165", + "@swc/core-linux-x64-gnu": "1.2.165", + "@swc/core-linux-x64-musl": "1.2.165", + "@swc/core-win32-arm64-msvc": "1.2.165", + "@swc/core-win32-ia32-msvc": "1.2.165", + "@swc/core-win32-x64-msvc": "1.2.165" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.163.tgz", - "integrity": "sha512-8tv6EMcL5zkgXikwkEMu4I2iy79gmCDe44a3PtQjAc7O/QxxyjJnEVxB6/1U1TnpyLBjcjVfLLzX572LnK9p4Q==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", + "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.163.tgz", - "integrity": "sha512-nDnogIlm1JMs+lSBNH5MIKf7h2h1JQ7kpZSIhnCrr8kajFP5YWQyz9pu2GMv2oc9iWp9TafRk2h2ov3rBJwzIg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", + "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.163.tgz", - "integrity": "sha512-5sxTJUfWK8hFZNdh3MNYJBB4X58WL8gRzr/U7rWMRpA9GKFcKNAsvPZICICXEVGVX7glC6LZX94ML2fGsW/NeA==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", + "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.163.tgz", - "integrity": "sha512-pVYtFi0Rfeh0JLZKD0HR1j4chcqEaxyk4lhx2DEMg2VvZYjZd1b6bRKB5gKJy1lLzpiUngqeSpIt14jnCIqWZg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", + "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.163.tgz", - "integrity": "sha512-a8adSrD2d7WCdD+BqUt7hlmwujcYTYGpSq6i8OxfmxPSf50lCUoBaQ+B/tSyvLlvnusiURHfwhfzSld1vtg04Q==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", + "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.163.tgz", - "integrity": "sha512-7pQZ7acveuX2p0Ysrg6AHVedTbWQBOjlBQ8AmJ3Wwri9h4o1GLzJkzJQ++Dyp+xGE+pI0ppK6dqaQZ1Zm8yPLQ==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", + "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.163.tgz", - "integrity": "sha512-yPG6iAN7OlhiNWPy8Ma9WrrQpQZIZE5huR1HVRzM5m8/svs65m3vCTAEHWa+45y1PX3/Bo+hd6tyjaHMAco/ew==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", + "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.163.tgz", - "integrity": "sha512-sEBgJbaTixEEv8vvf7Udjc9d4HvAYnKtMBu354FszSwKBLmf75CJNUU4vJQRn+E/+WwMXxorSXdx1+wW4fpStg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", + "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.163.tgz", - "integrity": "sha512-69OjEhbxYaMVIhly2hrgDwiOG0MdPQJ3BU5lD/kStvNMnGS/bCNgVYnnsjJgJKfpvJBLtUd/t7QrdwZvrY+pSw==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", + "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.163.tgz", - "integrity": "sha512-I2pvui8SaNE74vO1YHIJj7/R6IuR8qXfW5YNJ9NV2yR5G6Po2vPR/kMpJgd4rrt6gg16+FGw+XDpMue8+TGLcw==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", + "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.163.tgz", - "integrity": "sha512-CaFr1xVfXrXywDDyNUfRSWh9vqhMmaOh9dpBGHDWPDT+EOwK0Rm78LZPh9G3iQakEq9/6ztqCmskPy7Go6gG6A==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", + "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.163.tgz", - "integrity": "sha512-0HfuKu8eG1brQ13PVba5WJm187asQuHeVuuVD0WL1/d6TSp2dfsfXdOPt7gjPG0WVtVpYh8e4N0IEcE0gVpzxA==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", + "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.163", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.163.tgz", - "integrity": "sha512-BB1tioCAu2Wdt2efKOcbNR9vByzNUhiJqmBv1wWGR6wqV2k46jRMex2NzQESMBl8slIJG+ZPFLE8gUChl0crIg==", + "version": "1.2.165", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", + "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 16ac73fa6..de0c070fa 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.8.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.163", + "@swc/core": "^1.2.165", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 6b9a38e3733a76ccdf0db4290a6d9c03f3911569 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 12:55:43 +0700 Subject: [PATCH 241/411] ci(deps): bump actions/setup-node from 3.1.0 to 3.1.1 (#863) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index be5008c06..8d6414bc0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.1.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node-version }} check-latest: true @@ -41,7 +41,7 @@ jobs: uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.1.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node-version }} check-latest: true From 80d4315c81de5cef91fed8182114a70428aa2a89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 05:57:35 +0000 Subject: [PATCH 242/411] chore(deps-dev): bump @typescript-eslint/parser from 5.18.0 to 5.19.0 (#864) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.18.0 to 5.19.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.19.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f52368da..35dcfa208 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", + "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", "typescript": "^4.5.5" }, @@ -614,14 +614,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz", - "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz", + "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/typescript-estree": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", "debug": "^4.3.2" }, "engines": { @@ -640,6 +640,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", + "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", + "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", + "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", + "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.19.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", @@ -2899,15 +2973,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz", - "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz", + "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/typescript-estree": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", + "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0" + } + }, + "@typescript-eslint/types": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", + "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", + "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", + "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.19.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index de0c070fa..01e88fda5 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", + "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", "typescript": "^4.5.5" }, From 54b581a0585f645d223379f1d5545fecf2cff3f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 13:00:04 +0700 Subject: [PATCH 243/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#865) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.18.0 to 5.19.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.19.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 243 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 64 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35dcfa208..f965553d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.18.0", + "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", "typescript": "^4.5.5" @@ -581,14 +581,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz", - "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", + "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/type-utils": "5.18.0", - "@typescript-eslint/utils": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/type-utils": "5.19.0", + "@typescript-eslint/utils": "5.19.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -640,7 +640,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.19.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", @@ -657,87 +657,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", - "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", - "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", - "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", - "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz", - "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", + "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.18.0", + "@typescript-eslint/utils": "5.19.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -758,9 +684,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", - "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", + "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -771,13 +697,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", - "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", + "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -798,15 +724,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz", - "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz", + "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/typescript-estree": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -822,12 +748,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", - "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", + "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/types": "5.19.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -2956,14 +2882,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz", - "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", + "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/type-utils": "5.18.0", - "@typescript-eslint/utils": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/type-utils": "5.19.0", + "@typescript-eslint/utils": "5.19.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -2982,86 +2908,43 @@ "@typescript-eslint/types": "5.19.0", "@typescript-eslint/typescript-estree": "5.19.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", - "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - } - }, - "@typescript-eslint/types": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", - "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", - "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", - "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz", - "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", + "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", "dev": true, "requires": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0" + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0" } }, "@typescript-eslint/type-utils": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz", - "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", + "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.18.0", + "@typescript-eslint/utils": "5.19.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz", - "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", + "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz", - "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", + "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/visitor-keys": "5.18.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3070,26 +2953,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz", - "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz", + "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.18.0", - "@typescript-eslint/types": "5.18.0", - "@typescript-eslint/typescript-estree": "5.18.0", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz", - "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", + "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.18.0", + "@typescript-eslint/types": "5.19.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 01e88fda5..29c434e6c 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.18.0", + "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", "typescript": "^4.5.5" From 7e35995b0ab34244579009b2657589647b3ec29a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 06:01:58 +0000 Subject: [PATCH 244/411] chore(deps-dev): bump @types/node from 17.0.23 to 17.0.24 (#866) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.23 to 17.0.24. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f965553d8..e327c9146 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.23", + "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", @@ -538,9 +538,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", + "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2840,9 +2840,9 @@ } }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", + "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 29c434e6c..7e6847efb 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^8.1.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.23", + "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.19.0", "eslint": "^8.13.0", From 56bf5a3ba8e52c85615430ce861c9a17f81c91db Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 15 Apr 2022 13:03:53 +0700 Subject: [PATCH 245/411] chore: update funding --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 63950d082..aa4b60560 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -patreon: mzrtamp +patreon: mozartrafi custom: ["https://paypal.me/mozartrafi"] From d3d1962d7c7a571054f8878e27e03a86cadf384c Mon Sep 17 00:00:00 2001 From: Ahmad Yaqdhan <ahmadyaqdhan123@gmail.com> Date: Sat, 16 Apr 2022 18:06:45 +0900 Subject: [PATCH 246/411] fix(yt-dlp-utils): give more permissions to the executable --- yt-dlp-utils/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yt-dlp-utils/index.js b/yt-dlp-utils/index.js index 8ab1a6be8..febf2476e 100644 --- a/yt-dlp-utils/index.js +++ b/yt-dlp-utils/index.js @@ -42,7 +42,7 @@ export async function downloadExecutable() { await new Promise((resolve, reject) => { got.get(asset.browser_download_url).buffer().then(x => { mkdirSync(scriptsPath, { recursive: true }); - writeFileSync(exePath, x); + writeFileSync(exePath, x, { mode: 0o777 }); }).then(resolve).catch(reject); }); console.info("[INFO] Yt-dlp has been downloaded."); From 982e8a92164be78c7954f7f37ffee4304a91180c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Apr 2022 10:46:16 +0900 Subject: [PATCH 247/411] chore(deps): bump @discordjs/voice from 0.8.0 to 0.9.0 (#867) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 50 +++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index e327c9146..82fcac947 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { - "@discordjs/voice": "^0.8.0", + "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", "@swc/core": "^1.2.165", "date-fns": "^2.28.0", @@ -65,21 +65,26 @@ } }, "node_modules/@discordjs/voice": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.8.0.tgz", - "integrity": "sha512-o0JfVLMs3eLjUzPf6oxMydEeum40I7xzfUc66SLN+RrKpSAsTbngf5qnCF53nm+KDNSvrwg1AZqNm4LEAdxJIA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", "dependencies": { - "@types/ws": "^8.2.0", - "discord-api-types": "^0.26.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", "prism-media": "^1.3.2", "tiny-typed-emitter": "^2.1.0", "tslib": "^2.3.1", - "ws": "^8.4.2" + "ws": "^8.5.0" }, "engines": { "node": ">=16.9.0" } }, + "node_modules/@discordjs/voice/node_modules/discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + }, "node_modules/@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -573,9 +578,9 @@ } }, "node_modules/@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "dependencies": { "@types/node": "*" } @@ -2559,16 +2564,23 @@ "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==" }, "@discordjs/voice": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.8.0.tgz", - "integrity": "sha512-o0JfVLMs3eLjUzPf6oxMydEeum40I7xzfUc66SLN+RrKpSAsTbngf5qnCF53nm+KDNSvrwg1AZqNm4LEAdxJIA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", "requires": { - "@types/ws": "^8.2.0", - "discord-api-types": "^0.26.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", "prism-media": "^1.3.2", "tiny-typed-emitter": "^2.1.0", "tslib": "^2.3.1", - "ws": "^8.4.2" + "ws": "^8.5.0" + }, + "dependencies": { + "discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + } } }, "@eslint/eslintrc": { @@ -2874,9 +2886,9 @@ } }, "@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "requires": { "@types/node": "*" } diff --git a/package.json b/package.json index 7e6847efb..59772c9f7 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ } }, "dependencies": { - "@discordjs/voice": "^0.8.0", + "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", "@swc/core": "^1.2.165", "date-fns": "^2.28.0", From 157ddc734849b75c0e006621573f22e2ebcad392 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Apr 2022 10:51:25 +0900 Subject: [PATCH 248/411] chore(deps): bump @swc/core from 1.2.165 to 1.2.168 (#868) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82fcac947..adc989e02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.165", + "@swc/core": "^1.2.168", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -271,9 +271,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", - "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.168.tgz", + "integrity": "sha512-O/PzeeSBqNQcpT/+62AGjXJ/TGQ2/jAkJc5aRtT/SyvwA/wQ+gSMOGc3mdFobD7SvgnXX+oS4/I/es84HhrhUA==", "bin": { "swcx": "run_swcx.js" }, @@ -285,25 +285,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.165", - "@swc/core-android-arm64": "1.2.165", - "@swc/core-darwin-arm64": "1.2.165", - "@swc/core-darwin-x64": "1.2.165", - "@swc/core-freebsd-x64": "1.2.165", - "@swc/core-linux-arm-gnueabihf": "1.2.165", - "@swc/core-linux-arm64-gnu": "1.2.165", - "@swc/core-linux-arm64-musl": "1.2.165", - "@swc/core-linux-x64-gnu": "1.2.165", - "@swc/core-linux-x64-musl": "1.2.165", - "@swc/core-win32-arm64-msvc": "1.2.165", - "@swc/core-win32-ia32-msvc": "1.2.165", - "@swc/core-win32-x64-msvc": "1.2.165" + "@swc/core-android-arm-eabi": "1.2.168", + "@swc/core-android-arm64": "1.2.168", + "@swc/core-darwin-arm64": "1.2.168", + "@swc/core-darwin-x64": "1.2.168", + "@swc/core-freebsd-x64": "1.2.168", + "@swc/core-linux-arm-gnueabihf": "1.2.168", + "@swc/core-linux-arm64-gnu": "1.2.168", + "@swc/core-linux-arm64-musl": "1.2.168", + "@swc/core-linux-x64-gnu": "1.2.168", + "@swc/core-linux-x64-musl": "1.2.168", + "@swc/core-win32-arm64-msvc": "1.2.168", + "@swc/core-win32-ia32-msvc": "1.2.168", + "@swc/core-win32-x64-msvc": "1.2.168" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", - "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.168.tgz", + "integrity": "sha512-RjjudVdJxm1KoNrbFxQIppJQjB1mzMYKW6+HYKVl8ktc7i/mnjwcl0cXVBWGbw1xsRWbTjHMHPs/kJ3hOESoeg==", "cpu": [ "arm" ], @@ -316,9 +316,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", - "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.168.tgz", + "integrity": "sha512-K83gxb578LJid4GI047oSdaK90REnaXfXa+f+DT3Ud5hKFDrF7zkpyF6oxfHJGTl9LCUMXhijwg8aRXaFZFqWQ==", "cpu": [ "arm64" ], @@ -331,9 +331,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", - "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.168.tgz", + "integrity": "sha512-/kciTqYbEryg3e2C+/Twpww7LBc+zaF7yhz2AmxOrA7nQKuUNHA3Q/Y4sXthSXD2BLqPABJETbRmfmumNi8gQA==", "cpu": [ "arm64" ], @@ -346,9 +346,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", - "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.168.tgz", + "integrity": "sha512-PbciVgB24OX6QCUmJmkD2hfZQh9LostC89vALfasUwT/wj3rHeg2SD2rvoPlIf0lYZjUPNfpbhDoxkUeEt+SEg==", "cpu": [ "x64" ], @@ -361,9 +361,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", - "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.168.tgz", + "integrity": "sha512-lp3lNrjF2vNSOtsRFVRDs0EBpwoXQSD0MeZugX9EwHbHXavPlY+Kmo6cNqHfdrxIVOoVOYMlqQn+kO3/4mwYAQ==", "cpu": [ "x64" ], @@ -376,9 +376,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", - "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.168.tgz", + "integrity": "sha512-TVYXoITQTCPOthHXhmBHFR77mXKE3tGN8CRAHtFYC0mUb42LY5nUQ8yc6peNpcvSqAUzK9K079koDltWIDfWKw==", "cpu": [ "arm" ], @@ -391,9 +391,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", - "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.168.tgz", + "integrity": "sha512-Xw7Vj/4EJA5V8kQ5cziUbj3qZQSt8n5Pr2TnFCZ3NkCL8og2JYf2N1mOTAI+PIknaDqh1boz+k9xEs1araQ2lA==", "cpu": [ "arm64" ], @@ -406,9 +406,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", - "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.168.tgz", + "integrity": "sha512-71HHYhyNxpv1Maiqv/U5cHFMitU3MP2TN77vTi5ifPw+6H7A3fG86aqE8zr7YEGsSmOzgQUrMMblqvwe52IrlQ==", "cpu": [ "arm64" ], @@ -421,9 +421,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", - "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.168.tgz", + "integrity": "sha512-kEP3VN6Seoz73Fyu+80qkKtIURl/FvlT6NNju55uTMqeeiF3su0CRC60A2/IWHwAZ8sjlorgcXQeaiNTyJmWBQ==", "cpu": [ "x64" ], @@ -436,9 +436,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", - "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.168.tgz", + "integrity": "sha512-IEDB4T5KyUB0BEdIsSJuFm1CV9Y1wIEG15870J0dONkvO1iv5lqWZ7GwA52w/YaI61iNC8+cZYWqfwr4MWj1EQ==", "cpu": [ "x64" ], @@ -451,9 +451,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", - "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.168.tgz", + "integrity": "sha512-cBiYhBdrW+GdfKJdNhIE/7Pw+45Kn7SKZ78TPc/0ibGXDdx2IkuDhO7x1eZy0eLlS+Br6OLUs9FkgbcMrpZAGw==", "cpu": [ "arm64" ], @@ -466,9 +466,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", - "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.168.tgz", + "integrity": "sha512-ShbX43+hFqDWLU4R8FnDFIPXR8OzC0zBwJBj8QPV3YmeoQD+wyA7NGBccm/8UbnEY5uE2t7P4Pz8891d6TW3Ww==", "cpu": [ "ia32" ], @@ -481,9 +481,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", - "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.168.tgz", + "integrity": "sha512-e+SPSiBHSlAI4+RM+Fcz8HVqpHQaGFiDL4b8LwguVgRdoDVeJAjamw53r2UJ23X++9PXamT3rhzPs5XEH0PQhg==", "cpu": [ "x64" ], @@ -2710,101 +2710,101 @@ } }, "@swc/core": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.165.tgz", - "integrity": "sha512-+Z/FquMEUQLOOVWJY4B2QnHvcAIgBKKJMVtVQLVlIwfC4Ez8OvzGPTfL1W4ixYlUoIaTbAd1956kjBXalr4wEg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.168.tgz", + "integrity": "sha512-O/PzeeSBqNQcpT/+62AGjXJ/TGQ2/jAkJc5aRtT/SyvwA/wQ+gSMOGc3mdFobD7SvgnXX+oS4/I/es84HhrhUA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.165", - "@swc/core-android-arm64": "1.2.165", - "@swc/core-darwin-arm64": "1.2.165", - "@swc/core-darwin-x64": "1.2.165", - "@swc/core-freebsd-x64": "1.2.165", - "@swc/core-linux-arm-gnueabihf": "1.2.165", - "@swc/core-linux-arm64-gnu": "1.2.165", - "@swc/core-linux-arm64-musl": "1.2.165", - "@swc/core-linux-x64-gnu": "1.2.165", - "@swc/core-linux-x64-musl": "1.2.165", - "@swc/core-win32-arm64-msvc": "1.2.165", - "@swc/core-win32-ia32-msvc": "1.2.165", - "@swc/core-win32-x64-msvc": "1.2.165" + "@swc/core-android-arm-eabi": "1.2.168", + "@swc/core-android-arm64": "1.2.168", + "@swc/core-darwin-arm64": "1.2.168", + "@swc/core-darwin-x64": "1.2.168", + "@swc/core-freebsd-x64": "1.2.168", + "@swc/core-linux-arm-gnueabihf": "1.2.168", + "@swc/core-linux-arm64-gnu": "1.2.168", + "@swc/core-linux-arm64-musl": "1.2.168", + "@swc/core-linux-x64-gnu": "1.2.168", + "@swc/core-linux-x64-musl": "1.2.168", + "@swc/core-win32-arm64-msvc": "1.2.168", + "@swc/core-win32-ia32-msvc": "1.2.168", + "@swc/core-win32-x64-msvc": "1.2.168" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.165.tgz", - "integrity": "sha512-DjX1/5qElHOnlrqhefcZsD1LEspJWDLpW31SKv9cNT2T13U76MkcrHi5ePI50NhG/bWDpHuWFWfuEmgcU+mwHA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.168.tgz", + "integrity": "sha512-RjjudVdJxm1KoNrbFxQIppJQjB1mzMYKW6+HYKVl8ktc7i/mnjwcl0cXVBWGbw1xsRWbTjHMHPs/kJ3hOESoeg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.165.tgz", - "integrity": "sha512-lPgG+td9/JlV3ZQiHZtdtqn+lZzGly+s/VQXfnaXgaHQE4JjWU2B4rhTVkVOQxEYbA/Cd9pszNWWxjJSrXytMA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.168.tgz", + "integrity": "sha512-K83gxb578LJid4GI047oSdaK90REnaXfXa+f+DT3Ud5hKFDrF7zkpyF6oxfHJGTl9LCUMXhijwg8aRXaFZFqWQ==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.165.tgz", - "integrity": "sha512-O6eFbCD4lZ4ZW2E1a4CsIo3zVTI5Tu2MpTbaVan7LvYyv2RK+tot9xjysVbOx/1nfgYDym9JLHU9gY/ayrdOtA==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.168.tgz", + "integrity": "sha512-/kciTqYbEryg3e2C+/Twpww7LBc+zaF7yhz2AmxOrA7nQKuUNHA3Q/Y4sXthSXD2BLqPABJETbRmfmumNi8gQA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.165.tgz", - "integrity": "sha512-R1WRiDnkmXWBkyNGR09WDq+mCFIujhdUs3e4QiHJih1HY2rKGXU0SZKoqaBTjeVerk/IYXaEnZM3Bx7sb0oyEQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.168.tgz", + "integrity": "sha512-PbciVgB24OX6QCUmJmkD2hfZQh9LostC89vALfasUwT/wj3rHeg2SD2rvoPlIf0lYZjUPNfpbhDoxkUeEt+SEg==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.165.tgz", - "integrity": "sha512-bL7Jxy2is/+YLZedQsF5a7swpbq9RGsvtXJmx5Bi0JqaavqWpbICmQtTr9I2S97taw16S/k8vOJ6DPzEvgJWWQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.168.tgz", + "integrity": "sha512-lp3lNrjF2vNSOtsRFVRDs0EBpwoXQSD0MeZugX9EwHbHXavPlY+Kmo6cNqHfdrxIVOoVOYMlqQn+kO3/4mwYAQ==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.165.tgz", - "integrity": "sha512-6m+X7a0iw5G97WfkJBKNy7/KfSEivRVRHbWB4VvJgRanNIO4tb//LxlUJFn58frQJg+H7bMFyOXhDJ/taRYAyg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.168.tgz", + "integrity": "sha512-TVYXoITQTCPOthHXhmBHFR77mXKE3tGN8CRAHtFYC0mUb42LY5nUQ8yc6peNpcvSqAUzK9K079koDltWIDfWKw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.165.tgz", - "integrity": "sha512-4roZScf8UZLhKTYBEqqbTNasZPqs3zDA2LF+SJuc4eFUGJyyrl9KgeVC08vTMtkAI47EebT15FgcQ+9LhtMlkg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.168.tgz", + "integrity": "sha512-Xw7Vj/4EJA5V8kQ5cziUbj3qZQSt8n5Pr2TnFCZ3NkCL8og2JYf2N1mOTAI+PIknaDqh1boz+k9xEs1araQ2lA==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.165.tgz", - "integrity": "sha512-xM5MDECEnptdsClSitld/f+azudbkeT8nNCkXCP+vFsurex9ISJ2DCWTvw7hgpkFElVv/qFEagDCucgESHcUzw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.168.tgz", + "integrity": "sha512-71HHYhyNxpv1Maiqv/U5cHFMitU3MP2TN77vTi5ifPw+6H7A3fG86aqE8zr7YEGsSmOzgQUrMMblqvwe52IrlQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.165.tgz", - "integrity": "sha512-MTEhtso3De+HP+qZKZw1DfPTbngn4ms3+7XG6jqUs6CKpmLTJkvnpPJ5swlXGvpKyDq367O2Aicft52Uoaoq+Q==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.168.tgz", + "integrity": "sha512-kEP3VN6Seoz73Fyu+80qkKtIURl/FvlT6NNju55uTMqeeiF3su0CRC60A2/IWHwAZ8sjlorgcXQeaiNTyJmWBQ==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.165.tgz", - "integrity": "sha512-T2ZSApYoK4VTMTTqhUKcrNcv68ChoAOZDKUNfOik8zXcN1pMttus/VaqfZjxT2+orviRTD5Bkdsc3UvrhHqHnw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.168.tgz", + "integrity": "sha512-IEDB4T5KyUB0BEdIsSJuFm1CV9Y1wIEG15870J0dONkvO1iv5lqWZ7GwA52w/YaI61iNC8+cZYWqfwr4MWj1EQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.165.tgz", - "integrity": "sha512-Icg6dtQpQZKjAUG6kME4WuYpG6cqZjUzzmiZPQ9wWOw7wY8EYFPwC2ZjTg8KwbOJFkAKN6cjk3O2IAFsOWuUGg==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.168.tgz", + "integrity": "sha512-cBiYhBdrW+GdfKJdNhIE/7Pw+45Kn7SKZ78TPc/0ibGXDdx2IkuDhO7x1eZy0eLlS+Br6OLUs9FkgbcMrpZAGw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.165.tgz", - "integrity": "sha512-ldrTYG1zydyJP54YmYie3VMGcU7gCT2dZ7S1uZ1Tab+10GzZtdvePGGlQ/39jJVpr36/DZ34L6PsjwQkPG7AOw==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.168.tgz", + "integrity": "sha512-ShbX43+hFqDWLU4R8FnDFIPXR8OzC0zBwJBj8QPV3YmeoQD+wyA7NGBccm/8UbnEY5uE2t7P4Pz8891d6TW3Ww==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.165", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.165.tgz", - "integrity": "sha512-gi2ZELsRLC3RfQFk+qwccL0VZ6ZgprMOP/phCVd8sA2MZsVVrFu6QBEJNGO0Z6hEqQ2BWrva6+cMF/eHSzuAsQ==", + "version": "1.2.168", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.168.tgz", + "integrity": "sha512-e+SPSiBHSlAI4+RM+Fcz8HVqpHQaGFiDL4b8LwguVgRdoDVeJAjamw53r2UJ23X++9PXamT3rhzPs5XEH0PQhg==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 59772c9f7..abb7c2039 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.165", + "@swc/core": "^1.2.168", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 9dedc826c7f553b80d6dcae3bce530f168e3beb0 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Mon, 18 Apr 2022 17:08:39 +0700 Subject: [PATCH 249/411] chore(deps-dev): debump '@rahagia/eslint-config' from 8.1.1 to 1.0.0 --- package-lock.json | 31 +++++++++++++------------------ package.json | 2 +- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index adc989e02..972b0a97b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { @@ -24,7 +25,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^8.1.1", + "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", @@ -197,19 +198,15 @@ } }, "node_modules/@rahagia/eslint-config": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-8.1.1.tgz", - "integrity": "sha512-e8+X2C4h4OyRrwaWKPw4nwrDVT+DhWArv/kDnSHS5YNDtU7qjB77c1/MGvGNQ/iGqw38FT0grY8TkQitYtmDtA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-iIVaB9XRgIIY2TPwM3UaMHtts5WuLn2HfueLqNhbe483jk4VN/xsizUQIZrK7d1Ma8BPs4niDa1viwponaKgMw==", "dev": true, - "dependencies": { - "strip-json-comments": "^3.1.1" - }, "peerDependencies": { - "@types/node": "^17.0.16", - "@typescript-eslint/eslint-plugin": ">=5.11.0", - "@typescript-eslint/parser": ">=5.11.0", - "eslint": ">=8.7.0", - "typescript": ">=3.3.1 <4.6.0" + "@typescript-eslint/eslint-plugin": ">=5.18.0", + "@typescript-eslint/parser": ">=5.18.0", + "eslint": ">=8.13.0", + "typescript": ">=3.3.1 <4.7.0" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -2680,13 +2677,11 @@ } }, "@rahagia/eslint-config": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-8.1.1.tgz", - "integrity": "sha512-e8+X2C4h4OyRrwaWKPw4nwrDVT+DhWArv/kDnSHS5YNDtU7qjB77c1/MGvGNQ/iGqw38FT0grY8TkQitYtmDtA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-iIVaB9XRgIIY2TPwM3UaMHtts5WuLn2HfueLqNhbe483jk4VN/xsizUQIZrK7d1Ma8BPs4niDa1viwponaKgMw==", "dev": true, - "requires": { - "strip-json-comments": "^3.1.1" - } + "requires": {} }, "@sapphire/async-queue": { "version": "1.2.0", diff --git a/package.json b/package.json index abb7c2039..c285db34c 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^8.1.1", + "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", From 28f8510006ffd764ac31fb16b8371e90c799531b Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Mon, 18 Apr 2022 17:09:55 +0700 Subject: [PATCH 250/411] fix(eslint): fix no-confusing-arrow usage but leaving another 3 warnings (no-type-alias) --- src/commands/general/HelpCommand.ts | 2 +- src/events/InteractionCreateEvent.ts | 4 ++-- src/utils/functions/parseEnvValue.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 86d5fb06d..a469ef0fd 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -59,7 +59,7 @@ export class HelpCommand extends BaseCommand { for (const category of this.client.commands.categories.values()) { const isDev = this.client.config.owners.includes(ctx.author.id); const cmds = category.cmds - .filter(c => isDev ? true : !c.meta.devOnly) + .filter(c => (isDev ? true : !c.meta.devOnly)) .map(c => `\`${c.meta.name}\``); if (cmds.length === 0) continue; if (category.hide && !isDev) continue; diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index 2d6ac74cb..1eb763b47 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -40,9 +40,9 @@ export class InteractionCreateEvent extends BaseEvent { if (interaction.isContextMenu()) { const data = interaction.options.getUser("user") ?? interaction.options.getMessage("message"); const cmd = this.client.commands.find( - x => (data as { type: string }).type === "MESSAGE" + x => ((data as { type: string }).type === "MESSAGE" ? x.meta.contextChat === interaction.commandName - : x.meta.contextUser === interaction.commandName + : x.meta.contextUser === interaction.commandName) ); if (cmd) { context.additionalArgs.set("options", data); diff --git a/src/utils/functions/parseEnvValue.ts b/src/utils/functions/parseEnvValue.ts index 395bd3745..9ab49ce61 100644 --- a/src/utils/functions/parseEnvValue.ts +++ b/src/utils/functions/parseEnvValue.ts @@ -3,11 +3,11 @@ export function parseEnvValue(str: string): string[] { .match(/(?<=(?:\s+|^))(?<str>['"])?(?:.*?)\k<str>(?=(?:(?:[,;])|(?:(?:\s+)?$)))/g) ?.filter(x => Boolean(x.trim())) .map( - x => ( + x => (( (x.startsWith("'") && x.endsWith("'")) || (x.startsWith('"') && x.endsWith('"')) ) ? x.slice(1, x.length - 1) - : x + : x) ) ?? []; } From c20ae02bc4047c518905c114197764022be4b3e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 08:15:04 +0700 Subject: [PATCH 251/411] chore(deps-dev): bump @typescript-eslint/parser from 5.19.0 to 5.20.0 (#869) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.19.0 to 5.20.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.20.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 131 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 972b0a97b..f878658ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", - "@typescript-eslint/parser": "^5.19.0", + "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", "typescript": "^4.5.5" }, @@ -616,14 +616,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz", - "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", + "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", "debug": "^4.3.2" }, "engines": { @@ -642,6 +642,80 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", + "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.20.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.19.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", @@ -2906,15 +2980,58 @@ } }, "@typescript-eslint/parser": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz", - "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", + "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", + "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0" + } + }, + "@typescript-eslint/types": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.20.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index c285db34c..26e755303 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.24", "@typescript-eslint/eslint-plugin": "^5.19.0", - "@typescript-eslint/parser": "^5.19.0", + "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", "typescript": "^4.5.5" }, From 12f26f40bdac3a8956b874eefeffa772724cd095 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 01:16:57 +0000 Subject: [PATCH 252/411] chore(deps-dev): bump @types/node from 17.0.24 to 17.0.25 (#870) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.24 to 17.0.25. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f878658ab..048f80a2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.24", + "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", @@ -540,9 +540,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2921,9 +2921,9 @@ } }, "@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 26e755303..7feee18b8 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.24", + "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.19.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", From af89d6a3d33a46005623cb113fed8d0f867da79d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 01:19:11 +0000 Subject: [PATCH 253/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#871) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.19.0 to 5.20.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.20.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 243 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 64 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index 048f80a2a..17964ab72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.25", - "@typescript-eslint/eslint-plugin": "^5.19.0", + "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", "typescript": "^4.5.5" @@ -583,14 +583,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", - "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", + "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/type-utils": "5.19.0", - "@typescript-eslint/utils": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/type-utils": "5.20.0", + "@typescript-eslint/utils": "5.20.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -642,7 +642,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.20.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", @@ -659,87 +659,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.20.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", - "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", - "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", + "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.19.0", + "@typescript-eslint/utils": "5.20.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -760,9 +686,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", - "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -773,13 +699,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", - "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -800,15 +726,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz", - "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", + "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -824,12 +750,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", - "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/types": "5.20.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -2963,14 +2889,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", - "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", + "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/type-utils": "5.19.0", - "@typescript-eslint/utils": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/type-utils": "5.20.0", + "@typescript-eslint/utils": "5.20.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -2989,86 +2915,43 @@ "@typescript-eslint/types": "5.20.0", "@typescript-eslint/typescript-estree": "5.20.0", "debug": "^4.3.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" - } - }, - "@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.20.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", - "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", + "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0" } }, "@typescript-eslint/type-utils": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", - "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", + "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.19.0", + "@typescript-eslint/utils": "5.20.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz", - "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", + "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", - "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", + "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/visitor-keys": "5.20.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3077,26 +2960,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz", - "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", + "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", + "@typescript-eslint/scope-manager": "5.20.0", + "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/typescript-estree": "5.20.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", - "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", + "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/types": "5.20.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 7feee18b8..a7cafe605 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.25", - "@typescript-eslint/eslint-plugin": "^5.19.0", + "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.13.0", "typescript": "^4.5.5" From ba9c395672afd04d7c9b78dd93dd924b41c5ee0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 11:09:39 +0700 Subject: [PATCH 254/411] chore(deps-dev): bump @rahagia/eslint-config from 1.0.0 to 1.0.1 (#872) Bumps [@rahagia/eslint-config](https://github.com/Rahagia/eslint-config) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/Rahagia/eslint-config/releases) - [Commits](https://github.com/Rahagia/eslint-config/compare/1.0.0...1.0.1) --- updated-dependencies: - dependency-name: "@rahagia/eslint-config" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 17964ab72..918705e19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^1.0.0", + "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.20.0", @@ -198,9 +198,9 @@ } }, "node_modules/@rahagia/eslint-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.0.tgz", - "integrity": "sha512-iIVaB9XRgIIY2TPwM3UaMHtts5WuLn2HfueLqNhbe483jk4VN/xsizUQIZrK7d1Ma8BPs4niDa1viwponaKgMw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.1.tgz", + "integrity": "sha512-B6QDilr3U9Ba8iG/9L06jlg67oSShhAo6NEneuaE89klTpPq79dcSzRrAF2HbnIFKPzQIg3EmRgLqzGhjGt2Ow==", "dev": true, "peerDependencies": { "@typescript-eslint/eslint-plugin": ">=5.18.0", @@ -2677,9 +2677,9 @@ } }, "@rahagia/eslint-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.0.tgz", - "integrity": "sha512-iIVaB9XRgIIY2TPwM3UaMHtts5WuLn2HfueLqNhbe483jk4VN/xsizUQIZrK7d1Ma8BPs4niDa1viwponaKgMw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.1.tgz", + "integrity": "sha512-B6QDilr3U9Ba8iG/9L06jlg67oSShhAo6NEneuaE89klTpPq79dcSzRrAF2HbnIFKPzQIg3EmRgLqzGhjGt2Ow==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index a7cafe605..7660f3ffb 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^1.0.0", + "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.20.0", From 8c5a6b012e2a629b0c1a39183c4b133ecdb35c49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 04:11:44 +0000 Subject: [PATCH 255/411] chore(deps): bump @swc/core from 1.2.168 to 1.2.170 (#873) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.168 to 1.2.170. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.168...v1.2.170) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 918705e19..cf7c8574e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.168", + "@swc/core": "^1.2.170", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.168.tgz", - "integrity": "sha512-O/PzeeSBqNQcpT/+62AGjXJ/TGQ2/jAkJc5aRtT/SyvwA/wQ+gSMOGc3mdFobD7SvgnXX+oS4/I/es84HhrhUA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.170.tgz", + "integrity": "sha512-F7IUscngYJ6YQDw+nwxJBD8Q1xREXkW4mTFMKmBtvSJWKpmlWXSKcFVLt+FqXfCpyLDCzEzJPPyiXeNYsVBwtA==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.168", - "@swc/core-android-arm64": "1.2.168", - "@swc/core-darwin-arm64": "1.2.168", - "@swc/core-darwin-x64": "1.2.168", - "@swc/core-freebsd-x64": "1.2.168", - "@swc/core-linux-arm-gnueabihf": "1.2.168", - "@swc/core-linux-arm64-gnu": "1.2.168", - "@swc/core-linux-arm64-musl": "1.2.168", - "@swc/core-linux-x64-gnu": "1.2.168", - "@swc/core-linux-x64-musl": "1.2.168", - "@swc/core-win32-arm64-msvc": "1.2.168", - "@swc/core-win32-ia32-msvc": "1.2.168", - "@swc/core-win32-x64-msvc": "1.2.168" + "@swc/core-android-arm-eabi": "1.2.170", + "@swc/core-android-arm64": "1.2.170", + "@swc/core-darwin-arm64": "1.2.170", + "@swc/core-darwin-x64": "1.2.170", + "@swc/core-freebsd-x64": "1.2.170", + "@swc/core-linux-arm-gnueabihf": "1.2.170", + "@swc/core-linux-arm64-gnu": "1.2.170", + "@swc/core-linux-arm64-musl": "1.2.170", + "@swc/core-linux-x64-gnu": "1.2.170", + "@swc/core-linux-x64-musl": "1.2.170", + "@swc/core-win32-arm64-msvc": "1.2.170", + "@swc/core-win32-ia32-msvc": "1.2.170", + "@swc/core-win32-x64-msvc": "1.2.170" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.168.tgz", - "integrity": "sha512-RjjudVdJxm1KoNrbFxQIppJQjB1mzMYKW6+HYKVl8ktc7i/mnjwcl0cXVBWGbw1xsRWbTjHMHPs/kJ3hOESoeg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.170.tgz", + "integrity": "sha512-+rhe5qNQKiD37EFcQURwsbI5pdRkN31RBo25LFINnc8FeXMZgkknjEyewgxtxPL/eOuiEo1MRx1GOyd1YUtm3A==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.168.tgz", - "integrity": "sha512-K83gxb578LJid4GI047oSdaK90REnaXfXa+f+DT3Ud5hKFDrF7zkpyF6oxfHJGTl9LCUMXhijwg8aRXaFZFqWQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.170.tgz", + "integrity": "sha512-o+hNm6uRTzm2RWZMAFm7LJLB7TDWcA4m+WOCZcevC3vDxjOz4sAAP6xb5AfhlKpFGV7hKofpb8eKnQgTxS9a1Q==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.168.tgz", - "integrity": "sha512-/kciTqYbEryg3e2C+/Twpww7LBc+zaF7yhz2AmxOrA7nQKuUNHA3Q/Y4sXthSXD2BLqPABJETbRmfmumNi8gQA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.170.tgz", + "integrity": "sha512-iGXnVc8mBSCMu2v2bpIGwvQlg3vxh/MjOe4w0MLUDb2rDjFa7a0RpRjSRoLr3KNJ7nEnXfx8Qjle/lrJiTdxuA==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.168.tgz", - "integrity": "sha512-PbciVgB24OX6QCUmJmkD2hfZQh9LostC89vALfasUwT/wj3rHeg2SD2rvoPlIf0lYZjUPNfpbhDoxkUeEt+SEg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.170.tgz", + "integrity": "sha512-Gmk9oFPrg9s4ciYnZ1FpVvODFfhwGcP/N50Ae9qqAjiEBTrX8Eajfabpht7hkFuiin3SFvJALzmLD5y11sShrw==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.168.tgz", - "integrity": "sha512-lp3lNrjF2vNSOtsRFVRDs0EBpwoXQSD0MeZugX9EwHbHXavPlY+Kmo6cNqHfdrxIVOoVOYMlqQn+kO3/4mwYAQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.170.tgz", + "integrity": "sha512-7AbaxLV8sT5nbEl9ndajScIMTderlT97zZSMvhxwqXCj6zXAqb50KKeU6JLFX5RXQ167HB5PGw5A+oRMf8jJXw==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.168.tgz", - "integrity": "sha512-TVYXoITQTCPOthHXhmBHFR77mXKE3tGN8CRAHtFYC0mUb42LY5nUQ8yc6peNpcvSqAUzK9K079koDltWIDfWKw==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.170.tgz", + "integrity": "sha512-aLl71mYgrkeuuhmOFKmelI5HTTMfAtoeCmR/NyDf205duSvDPXoqjoUU6TPJXylprGuA+DfOBO/uycC0FEaY8g==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.168.tgz", - "integrity": "sha512-Xw7Vj/4EJA5V8kQ5cziUbj3qZQSt8n5Pr2TnFCZ3NkCL8og2JYf2N1mOTAI+PIknaDqh1boz+k9xEs1araQ2lA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.170.tgz", + "integrity": "sha512-/bxtU4+c8cFdfL1+QgUsWZDzJ081YhPHkqKFW/OEfBGU4yw93e0lqW4Z5QjtCCssIWaLsmBzyIjr2M7NMCG7UQ==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.168.tgz", - "integrity": "sha512-71HHYhyNxpv1Maiqv/U5cHFMitU3MP2TN77vTi5ifPw+6H7A3fG86aqE8zr7YEGsSmOzgQUrMMblqvwe52IrlQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.170.tgz", + "integrity": "sha512-U2L9IGVKACwINGfwEFmlPd9dUu4Tj33czHVhvZPKi65zWmeZB3/B2N+jca9TU9bfVhAVjXMUmur+kFPLGPT+sw==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.168.tgz", - "integrity": "sha512-kEP3VN6Seoz73Fyu+80qkKtIURl/FvlT6NNju55uTMqeeiF3su0CRC60A2/IWHwAZ8sjlorgcXQeaiNTyJmWBQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.170.tgz", + "integrity": "sha512-8R+XQrjak19/cxvEUHZRWTQAluZHtbf6/ssothHqhjOAf+pvN0dpFugHcpzUdMijQewMpXY+arVtveSANKuXoA==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.168.tgz", - "integrity": "sha512-IEDB4T5KyUB0BEdIsSJuFm1CV9Y1wIEG15870J0dONkvO1iv5lqWZ7GwA52w/YaI61iNC8+cZYWqfwr4MWj1EQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.170.tgz", + "integrity": "sha512-wJdjS+JWLhNigChnyNgtuyBzXW2eHusqG5kOcg0M4v1yxQtZYvwXOtbGOQQOmqjg2v9bjjILrQXocnnmu29jqQ==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.168.tgz", - "integrity": "sha512-cBiYhBdrW+GdfKJdNhIE/7Pw+45Kn7SKZ78TPc/0ibGXDdx2IkuDhO7x1eZy0eLlS+Br6OLUs9FkgbcMrpZAGw==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.170.tgz", + "integrity": "sha512-Y4rXj2cb47+v+RSC3m0hEkjmszsJXjHS51DcYjHmGkzx/CmR5gxwGBDOI8ZGXo1t6iFFSx6nwRkznhnUW3UhJA==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.168.tgz", - "integrity": "sha512-ShbX43+hFqDWLU4R8FnDFIPXR8OzC0zBwJBj8QPV3YmeoQD+wyA7NGBccm/8UbnEY5uE2t7P4Pz8891d6TW3Ww==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.170.tgz", + "integrity": "sha512-VueClFr+rtWUCyeZfu2aD6GWWF2NLmqnTgd/TQRzlu9flVNWeJxGpIa9kGWcIDftoIQsssRuUMxXOcC856iOgA==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.168.tgz", - "integrity": "sha512-e+SPSiBHSlAI4+RM+Fcz8HVqpHQaGFiDL4b8LwguVgRdoDVeJAjamw53r2UJ23X++9PXamT3rhzPs5XEH0PQhg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.170.tgz", + "integrity": "sha512-gT/u/Sz2esYySdI2bXezgi7ow3AN+vFrUYUAvg0rBhO9wAvhKO35T8+/LlRShDp9E/ADAAwgg9jMBZTD6AKFlw==", "cpu": [ "x64" ], @@ -2705,101 +2705,101 @@ } }, "@swc/core": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.168.tgz", - "integrity": "sha512-O/PzeeSBqNQcpT/+62AGjXJ/TGQ2/jAkJc5aRtT/SyvwA/wQ+gSMOGc3mdFobD7SvgnXX+oS4/I/es84HhrhUA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.170.tgz", + "integrity": "sha512-F7IUscngYJ6YQDw+nwxJBD8Q1xREXkW4mTFMKmBtvSJWKpmlWXSKcFVLt+FqXfCpyLDCzEzJPPyiXeNYsVBwtA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.168", - "@swc/core-android-arm64": "1.2.168", - "@swc/core-darwin-arm64": "1.2.168", - "@swc/core-darwin-x64": "1.2.168", - "@swc/core-freebsd-x64": "1.2.168", - "@swc/core-linux-arm-gnueabihf": "1.2.168", - "@swc/core-linux-arm64-gnu": "1.2.168", - "@swc/core-linux-arm64-musl": "1.2.168", - "@swc/core-linux-x64-gnu": "1.2.168", - "@swc/core-linux-x64-musl": "1.2.168", - "@swc/core-win32-arm64-msvc": "1.2.168", - "@swc/core-win32-ia32-msvc": "1.2.168", - "@swc/core-win32-x64-msvc": "1.2.168" + "@swc/core-android-arm-eabi": "1.2.170", + "@swc/core-android-arm64": "1.2.170", + "@swc/core-darwin-arm64": "1.2.170", + "@swc/core-darwin-x64": "1.2.170", + "@swc/core-freebsd-x64": "1.2.170", + "@swc/core-linux-arm-gnueabihf": "1.2.170", + "@swc/core-linux-arm64-gnu": "1.2.170", + "@swc/core-linux-arm64-musl": "1.2.170", + "@swc/core-linux-x64-gnu": "1.2.170", + "@swc/core-linux-x64-musl": "1.2.170", + "@swc/core-win32-arm64-msvc": "1.2.170", + "@swc/core-win32-ia32-msvc": "1.2.170", + "@swc/core-win32-x64-msvc": "1.2.170" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.168.tgz", - "integrity": "sha512-RjjudVdJxm1KoNrbFxQIppJQjB1mzMYKW6+HYKVl8ktc7i/mnjwcl0cXVBWGbw1xsRWbTjHMHPs/kJ3hOESoeg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.170.tgz", + "integrity": "sha512-+rhe5qNQKiD37EFcQURwsbI5pdRkN31RBo25LFINnc8FeXMZgkknjEyewgxtxPL/eOuiEo1MRx1GOyd1YUtm3A==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.168.tgz", - "integrity": "sha512-K83gxb578LJid4GI047oSdaK90REnaXfXa+f+DT3Ud5hKFDrF7zkpyF6oxfHJGTl9LCUMXhijwg8aRXaFZFqWQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.170.tgz", + "integrity": "sha512-o+hNm6uRTzm2RWZMAFm7LJLB7TDWcA4m+WOCZcevC3vDxjOz4sAAP6xb5AfhlKpFGV7hKofpb8eKnQgTxS9a1Q==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.168.tgz", - "integrity": "sha512-/kciTqYbEryg3e2C+/Twpww7LBc+zaF7yhz2AmxOrA7nQKuUNHA3Q/Y4sXthSXD2BLqPABJETbRmfmumNi8gQA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.170.tgz", + "integrity": "sha512-iGXnVc8mBSCMu2v2bpIGwvQlg3vxh/MjOe4w0MLUDb2rDjFa7a0RpRjSRoLr3KNJ7nEnXfx8Qjle/lrJiTdxuA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.168.tgz", - "integrity": "sha512-PbciVgB24OX6QCUmJmkD2hfZQh9LostC89vALfasUwT/wj3rHeg2SD2rvoPlIf0lYZjUPNfpbhDoxkUeEt+SEg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.170.tgz", + "integrity": "sha512-Gmk9oFPrg9s4ciYnZ1FpVvODFfhwGcP/N50Ae9qqAjiEBTrX8Eajfabpht7hkFuiin3SFvJALzmLD5y11sShrw==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.168.tgz", - "integrity": "sha512-lp3lNrjF2vNSOtsRFVRDs0EBpwoXQSD0MeZugX9EwHbHXavPlY+Kmo6cNqHfdrxIVOoVOYMlqQn+kO3/4mwYAQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.170.tgz", + "integrity": "sha512-7AbaxLV8sT5nbEl9ndajScIMTderlT97zZSMvhxwqXCj6zXAqb50KKeU6JLFX5RXQ167HB5PGw5A+oRMf8jJXw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.168.tgz", - "integrity": "sha512-TVYXoITQTCPOthHXhmBHFR77mXKE3tGN8CRAHtFYC0mUb42LY5nUQ8yc6peNpcvSqAUzK9K079koDltWIDfWKw==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.170.tgz", + "integrity": "sha512-aLl71mYgrkeuuhmOFKmelI5HTTMfAtoeCmR/NyDf205duSvDPXoqjoUU6TPJXylprGuA+DfOBO/uycC0FEaY8g==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.168.tgz", - "integrity": "sha512-Xw7Vj/4EJA5V8kQ5cziUbj3qZQSt8n5Pr2TnFCZ3NkCL8og2JYf2N1mOTAI+PIknaDqh1boz+k9xEs1araQ2lA==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.170.tgz", + "integrity": "sha512-/bxtU4+c8cFdfL1+QgUsWZDzJ081YhPHkqKFW/OEfBGU4yw93e0lqW4Z5QjtCCssIWaLsmBzyIjr2M7NMCG7UQ==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.168.tgz", - "integrity": "sha512-71HHYhyNxpv1Maiqv/U5cHFMitU3MP2TN77vTi5ifPw+6H7A3fG86aqE8zr7YEGsSmOzgQUrMMblqvwe52IrlQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.170.tgz", + "integrity": "sha512-U2L9IGVKACwINGfwEFmlPd9dUu4Tj33czHVhvZPKi65zWmeZB3/B2N+jca9TU9bfVhAVjXMUmur+kFPLGPT+sw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.168.tgz", - "integrity": "sha512-kEP3VN6Seoz73Fyu+80qkKtIURl/FvlT6NNju55uTMqeeiF3su0CRC60A2/IWHwAZ8sjlorgcXQeaiNTyJmWBQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.170.tgz", + "integrity": "sha512-8R+XQrjak19/cxvEUHZRWTQAluZHtbf6/ssothHqhjOAf+pvN0dpFugHcpzUdMijQewMpXY+arVtveSANKuXoA==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.168.tgz", - "integrity": "sha512-IEDB4T5KyUB0BEdIsSJuFm1CV9Y1wIEG15870J0dONkvO1iv5lqWZ7GwA52w/YaI61iNC8+cZYWqfwr4MWj1EQ==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.170.tgz", + "integrity": "sha512-wJdjS+JWLhNigChnyNgtuyBzXW2eHusqG5kOcg0M4v1yxQtZYvwXOtbGOQQOmqjg2v9bjjILrQXocnnmu29jqQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.168.tgz", - "integrity": "sha512-cBiYhBdrW+GdfKJdNhIE/7Pw+45Kn7SKZ78TPc/0ibGXDdx2IkuDhO7x1eZy0eLlS+Br6OLUs9FkgbcMrpZAGw==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.170.tgz", + "integrity": "sha512-Y4rXj2cb47+v+RSC3m0hEkjmszsJXjHS51DcYjHmGkzx/CmR5gxwGBDOI8ZGXo1t6iFFSx6nwRkznhnUW3UhJA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.168.tgz", - "integrity": "sha512-ShbX43+hFqDWLU4R8FnDFIPXR8OzC0zBwJBj8QPV3YmeoQD+wyA7NGBccm/8UbnEY5uE2t7P4Pz8891d6TW3Ww==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.170.tgz", + "integrity": "sha512-VueClFr+rtWUCyeZfu2aD6GWWF2NLmqnTgd/TQRzlu9flVNWeJxGpIa9kGWcIDftoIQsssRuUMxXOcC856iOgA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.168", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.168.tgz", - "integrity": "sha512-e+SPSiBHSlAI4+RM+Fcz8HVqpHQaGFiDL4b8LwguVgRdoDVeJAjamw53r2UJ23X++9PXamT3rhzPs5XEH0PQhg==", + "version": "1.2.170", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.170.tgz", + "integrity": "sha512-gT/u/Sz2esYySdI2bXezgi7ow3AN+vFrUYUAvg0rBhO9wAvhKO35T8+/LlRShDp9E/ADAAwgg9jMBZTD6AKFlw==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 7660f3ffb..9741af7a4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.168", + "@swc/core": "^1.2.170", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 4951de9bd49b9c6666a31240f160b5617eae89a7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 25 Apr 2022 00:02:18 +0900 Subject: [PATCH 256/411] chore(deps): update lockfile --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index cf7c8574e..a1ca9c2c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From 85155afd3deb5757820837bf60d8231e33d3b3bc Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 25 Apr 2022 00:04:03 +0900 Subject: [PATCH 257/411] chore(lang/en): remove quote from repeat cmd footer --- lang/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 0162bb635..02d946c38 100644 --- a/lang/en.json +++ b/lang/en.json @@ -211,7 +211,7 @@ "slashDisable": "Disable repeat mode", "usage": "{prefix}repeat <{options}>", "actualMode": "Current repeat mode is **`{mode}`**", - "footer": "To change mode, see '{prefix}help repeat'", + "footer": "To change mode, see {prefix}help repeat", "newMode": "The repeat mode has been set to **`{mode}`**" }, "resume": { From a8f8ee1cfbc27b258a1a69d9780c6be2381f8d60 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 25 Apr 2022 00:08:36 +0900 Subject: [PATCH 258/411] feat(RepeatCommand): move footer to different embed --- src/commands/music/RepeatCommand.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 890feda52..df0e01510 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -68,6 +68,11 @@ export class RepeatCommand extends BaseCommand { ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`) + .setFooter({ + text: i18n.__mf("commands.music.repeat.footer", { + prefix: this.client.config.mainPrefix + }) + }) ] }); } @@ -80,11 +85,6 @@ export class RepeatCommand extends BaseCommand { ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`) - .setFooter({ - text: i18n.__mf("commands.music.repeat.footer", { - prefix: this.client.config.mainPrefix - }) - }) ] }); } From 98e49ad017e88eb41dcbc2fccb53618cbdeb941c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 12:28:32 +0700 Subject: [PATCH 259/411] chore(deps): bump tslib from 2.3.1 to 2.4.0 (#875) Bumps [tslib](https://github.com/Microsoft/tslib) from 2.3.1 to 2.4.0. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/2.3.1...2.4.0) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1ca9c2c0..4e7016561 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", - "tslib": "^2.3.1", + "tslib": "^2.4.0", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.35" }, @@ -2376,9 +2376,9 @@ "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -4139,9 +4139,9 @@ "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tsutils": { "version": "3.21.0", diff --git a/package.json b/package.json index 9741af7a4..aa806b7c1 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "opusscript": "^0.0.8", "prism-media": "^1.3.2", "soundcloud.ts": "^0.4.5", - "tslib": "^2.3.1", + "tslib": "^2.4.0", "tweetnacl": "^1.0.3", "youtubei": "^0.0.1-rc.35" }, From d5938e781621a6a01848af902c2b396cdfc25e1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 05:30:30 +0000 Subject: [PATCH 260/411] chore(deps): bump @swc/core from 1.2.170 to 1.2.171 (#876) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.170 to 1.2.171. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.170...v1.2.171) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e7016561..b17a7aa54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.170", + "@swc/core": "^1.2.171", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.170.tgz", - "integrity": "sha512-F7IUscngYJ6YQDw+nwxJBD8Q1xREXkW4mTFMKmBtvSJWKpmlWXSKcFVLt+FqXfCpyLDCzEzJPPyiXeNYsVBwtA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.171.tgz", + "integrity": "sha512-WE1Nn+LQOqMb41jDTt78REE29elW4QvbAIECpAI9wUP4SJpt9uo9ItJQ3UbXE4BECQ0JgkLz5x7l9uWUAt4YUw==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.170", - "@swc/core-android-arm64": "1.2.170", - "@swc/core-darwin-arm64": "1.2.170", - "@swc/core-darwin-x64": "1.2.170", - "@swc/core-freebsd-x64": "1.2.170", - "@swc/core-linux-arm-gnueabihf": "1.2.170", - "@swc/core-linux-arm64-gnu": "1.2.170", - "@swc/core-linux-arm64-musl": "1.2.170", - "@swc/core-linux-x64-gnu": "1.2.170", - "@swc/core-linux-x64-musl": "1.2.170", - "@swc/core-win32-arm64-msvc": "1.2.170", - "@swc/core-win32-ia32-msvc": "1.2.170", - "@swc/core-win32-x64-msvc": "1.2.170" + "@swc/core-android-arm-eabi": "1.2.171", + "@swc/core-android-arm64": "1.2.171", + "@swc/core-darwin-arm64": "1.2.171", + "@swc/core-darwin-x64": "1.2.171", + "@swc/core-freebsd-x64": "1.2.171", + "@swc/core-linux-arm-gnueabihf": "1.2.171", + "@swc/core-linux-arm64-gnu": "1.2.171", + "@swc/core-linux-arm64-musl": "1.2.171", + "@swc/core-linux-x64-gnu": "1.2.171", + "@swc/core-linux-x64-musl": "1.2.171", + "@swc/core-win32-arm64-msvc": "1.2.171", + "@swc/core-win32-ia32-msvc": "1.2.171", + "@swc/core-win32-x64-msvc": "1.2.171" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.170.tgz", - "integrity": "sha512-+rhe5qNQKiD37EFcQURwsbI5pdRkN31RBo25LFINnc8FeXMZgkknjEyewgxtxPL/eOuiEo1MRx1GOyd1YUtm3A==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.171.tgz", + "integrity": "sha512-0DZBYN8PX9GPWw2fJqKfVsctAFRVgQBM2Rin5ZRyJQehzTsI0HnandvFOZAS/I3T3YsiH4b5vH/S8KwRx+eCVg==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.170.tgz", - "integrity": "sha512-o+hNm6uRTzm2RWZMAFm7LJLB7TDWcA4m+WOCZcevC3vDxjOz4sAAP6xb5AfhlKpFGV7hKofpb8eKnQgTxS9a1Q==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.171.tgz", + "integrity": "sha512-9ul8XoIeXf0iHt+S2R2GedWmv/iZPrmlAj81esf/mg541kajt3kfdHD+YMKFn753iOmgTfCM+TlU82XT4nEe3w==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.170.tgz", - "integrity": "sha512-iGXnVc8mBSCMu2v2bpIGwvQlg3vxh/MjOe4w0MLUDb2rDjFa7a0RpRjSRoLr3KNJ7nEnXfx8Qjle/lrJiTdxuA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.171.tgz", + "integrity": "sha512-bZQLVbCRVU577LGXfhrDMqD0/cVvAFKRob3w2t/aZGY72rp9Mt56IPJcTIgah+5IeCapa4qwWwVQQVOP2DCcRA==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.170.tgz", - "integrity": "sha512-Gmk9oFPrg9s4ciYnZ1FpVvODFfhwGcP/N50Ae9qqAjiEBTrX8Eajfabpht7hkFuiin3SFvJALzmLD5y11sShrw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.171.tgz", + "integrity": "sha512-Geb3e9/o0h4VCky6dvQmHXwG+wpq0B4M0pkYySUMC3wVsqdun3rP2dF3i1FWG7F3t92sDOl3ba42JUweTtC2eA==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.170.tgz", - "integrity": "sha512-7AbaxLV8sT5nbEl9ndajScIMTderlT97zZSMvhxwqXCj6zXAqb50KKeU6JLFX5RXQ167HB5PGw5A+oRMf8jJXw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.171.tgz", + "integrity": "sha512-JSsetNvKghKTXFyAu4+vW0pVY8sDGwZSBd3foyqyx5XXEQMDVlhQEs3AVtojp7+DQrh+PmUdyCB+zS74p70nzg==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.170.tgz", - "integrity": "sha512-aLl71mYgrkeuuhmOFKmelI5HTTMfAtoeCmR/NyDf205duSvDPXoqjoUU6TPJXylprGuA+DfOBO/uycC0FEaY8g==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.171.tgz", + "integrity": "sha512-ZYf5rED8Dw1dbYXolVEnexT7SYVpPJhsuKa4162Onsm/3S3xw1e+qmxJfTVdZG7jI8F2RDoZTHMLH+0y3iH98Q==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.170.tgz", - "integrity": "sha512-/bxtU4+c8cFdfL1+QgUsWZDzJ081YhPHkqKFW/OEfBGU4yw93e0lqW4Z5QjtCCssIWaLsmBzyIjr2M7NMCG7UQ==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.171.tgz", + "integrity": "sha512-uteuIg77MoEwdQ0BZPGFKmbDr+V2OP1rp/Dx9sU5/O9nd1Vju/tuCycMEv8X/k0Riza6sbK6xIFVAQlrPUTZ7g==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.170.tgz", - "integrity": "sha512-U2L9IGVKACwINGfwEFmlPd9dUu4Tj33czHVhvZPKi65zWmeZB3/B2N+jca9TU9bfVhAVjXMUmur+kFPLGPT+sw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.171.tgz", + "integrity": "sha512-d1mKKb9QaIOp3KQKvPT8pFgPvZXpYc/YHnyyI667BUboKuznB9VDpHeXk6+C/SWUIT9QdStc0fcf/Tnwni+ivA==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.170.tgz", - "integrity": "sha512-8R+XQrjak19/cxvEUHZRWTQAluZHtbf6/ssothHqhjOAf+pvN0dpFugHcpzUdMijQewMpXY+arVtveSANKuXoA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.171.tgz", + "integrity": "sha512-CUNv0yNFuO4y0AnOq9Zbs44nBEuS+eLqC3gv2nEFovdUeVy71rRVelMjvdF5ZWXitHk+WjhfBznF+vP9pye3HA==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.170.tgz", - "integrity": "sha512-wJdjS+JWLhNigChnyNgtuyBzXW2eHusqG5kOcg0M4v1yxQtZYvwXOtbGOQQOmqjg2v9bjjILrQXocnnmu29jqQ==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.171.tgz", + "integrity": "sha512-orHpb/THPJOaDJkJvzGRppwOd0tmpk3ZUGTgRD6FhzYrGzESxEhXuPYNE2jlaXx9hBxu9YDRMUvJWsmLDZW3GQ==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.170.tgz", - "integrity": "sha512-Y4rXj2cb47+v+RSC3m0hEkjmszsJXjHS51DcYjHmGkzx/CmR5gxwGBDOI8ZGXo1t6iFFSx6nwRkznhnUW3UhJA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.171.tgz", + "integrity": "sha512-zdoPPnTC5li+4ijatjZA+qyrPTQzpmOqjtQ6HAx1yLoJriGLteLfYmjplx5sFI3JrcDXzITVjaGmu3Ep4Jmhtw==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.170.tgz", - "integrity": "sha512-VueClFr+rtWUCyeZfu2aD6GWWF2NLmqnTgd/TQRzlu9flVNWeJxGpIa9kGWcIDftoIQsssRuUMxXOcC856iOgA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.171.tgz", + "integrity": "sha512-AmaOwrjnIQffwqrCL1MfSpG//ZbtdcCVqhY3+UtVmfKoSsSSkgWXSV++PQlJApAgRn/iwjZiR816B7zLg6535g==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.170.tgz", - "integrity": "sha512-gT/u/Sz2esYySdI2bXezgi7ow3AN+vFrUYUAvg0rBhO9wAvhKO35T8+/LlRShDp9E/ADAAwgg9jMBZTD6AKFlw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.171.tgz", + "integrity": "sha512-DrOqi27Lagn/wy2QYDOiNr0KAJX4yR0areDcli2NQ875tva5uVFgvZo5sJFsHiLU/x6yBcxVpVAbzg8a1jRUAA==", "cpu": [ "x64" ], @@ -2704,101 +2704,101 @@ } }, "@swc/core": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.170.tgz", - "integrity": "sha512-F7IUscngYJ6YQDw+nwxJBD8Q1xREXkW4mTFMKmBtvSJWKpmlWXSKcFVLt+FqXfCpyLDCzEzJPPyiXeNYsVBwtA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.171.tgz", + "integrity": "sha512-WE1Nn+LQOqMb41jDTt78REE29elW4QvbAIECpAI9wUP4SJpt9uo9ItJQ3UbXE4BECQ0JgkLz5x7l9uWUAt4YUw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.170", - "@swc/core-android-arm64": "1.2.170", - "@swc/core-darwin-arm64": "1.2.170", - "@swc/core-darwin-x64": "1.2.170", - "@swc/core-freebsd-x64": "1.2.170", - "@swc/core-linux-arm-gnueabihf": "1.2.170", - "@swc/core-linux-arm64-gnu": "1.2.170", - "@swc/core-linux-arm64-musl": "1.2.170", - "@swc/core-linux-x64-gnu": "1.2.170", - "@swc/core-linux-x64-musl": "1.2.170", - "@swc/core-win32-arm64-msvc": "1.2.170", - "@swc/core-win32-ia32-msvc": "1.2.170", - "@swc/core-win32-x64-msvc": "1.2.170" + "@swc/core-android-arm-eabi": "1.2.171", + "@swc/core-android-arm64": "1.2.171", + "@swc/core-darwin-arm64": "1.2.171", + "@swc/core-darwin-x64": "1.2.171", + "@swc/core-freebsd-x64": "1.2.171", + "@swc/core-linux-arm-gnueabihf": "1.2.171", + "@swc/core-linux-arm64-gnu": "1.2.171", + "@swc/core-linux-arm64-musl": "1.2.171", + "@swc/core-linux-x64-gnu": "1.2.171", + "@swc/core-linux-x64-musl": "1.2.171", + "@swc/core-win32-arm64-msvc": "1.2.171", + "@swc/core-win32-ia32-msvc": "1.2.171", + "@swc/core-win32-x64-msvc": "1.2.171" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.170.tgz", - "integrity": "sha512-+rhe5qNQKiD37EFcQURwsbI5pdRkN31RBo25LFINnc8FeXMZgkknjEyewgxtxPL/eOuiEo1MRx1GOyd1YUtm3A==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.171.tgz", + "integrity": "sha512-0DZBYN8PX9GPWw2fJqKfVsctAFRVgQBM2Rin5ZRyJQehzTsI0HnandvFOZAS/I3T3YsiH4b5vH/S8KwRx+eCVg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.170.tgz", - "integrity": "sha512-o+hNm6uRTzm2RWZMAFm7LJLB7TDWcA4m+WOCZcevC3vDxjOz4sAAP6xb5AfhlKpFGV7hKofpb8eKnQgTxS9a1Q==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.171.tgz", + "integrity": "sha512-9ul8XoIeXf0iHt+S2R2GedWmv/iZPrmlAj81esf/mg541kajt3kfdHD+YMKFn753iOmgTfCM+TlU82XT4nEe3w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.170.tgz", - "integrity": "sha512-iGXnVc8mBSCMu2v2bpIGwvQlg3vxh/MjOe4w0MLUDb2rDjFa7a0RpRjSRoLr3KNJ7nEnXfx8Qjle/lrJiTdxuA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.171.tgz", + "integrity": "sha512-bZQLVbCRVU577LGXfhrDMqD0/cVvAFKRob3w2t/aZGY72rp9Mt56IPJcTIgah+5IeCapa4qwWwVQQVOP2DCcRA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.170.tgz", - "integrity": "sha512-Gmk9oFPrg9s4ciYnZ1FpVvODFfhwGcP/N50Ae9qqAjiEBTrX8Eajfabpht7hkFuiin3SFvJALzmLD5y11sShrw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.171.tgz", + "integrity": "sha512-Geb3e9/o0h4VCky6dvQmHXwG+wpq0B4M0pkYySUMC3wVsqdun3rP2dF3i1FWG7F3t92sDOl3ba42JUweTtC2eA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.170.tgz", - "integrity": "sha512-7AbaxLV8sT5nbEl9ndajScIMTderlT97zZSMvhxwqXCj6zXAqb50KKeU6JLFX5RXQ167HB5PGw5A+oRMf8jJXw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.171.tgz", + "integrity": "sha512-JSsetNvKghKTXFyAu4+vW0pVY8sDGwZSBd3foyqyx5XXEQMDVlhQEs3AVtojp7+DQrh+PmUdyCB+zS74p70nzg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.170.tgz", - "integrity": "sha512-aLl71mYgrkeuuhmOFKmelI5HTTMfAtoeCmR/NyDf205duSvDPXoqjoUU6TPJXylprGuA+DfOBO/uycC0FEaY8g==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.171.tgz", + "integrity": "sha512-ZYf5rED8Dw1dbYXolVEnexT7SYVpPJhsuKa4162Onsm/3S3xw1e+qmxJfTVdZG7jI8F2RDoZTHMLH+0y3iH98Q==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.170.tgz", - "integrity": "sha512-/bxtU4+c8cFdfL1+QgUsWZDzJ081YhPHkqKFW/OEfBGU4yw93e0lqW4Z5QjtCCssIWaLsmBzyIjr2M7NMCG7UQ==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.171.tgz", + "integrity": "sha512-uteuIg77MoEwdQ0BZPGFKmbDr+V2OP1rp/Dx9sU5/O9nd1Vju/tuCycMEv8X/k0Riza6sbK6xIFVAQlrPUTZ7g==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.170.tgz", - "integrity": "sha512-U2L9IGVKACwINGfwEFmlPd9dUu4Tj33czHVhvZPKi65zWmeZB3/B2N+jca9TU9bfVhAVjXMUmur+kFPLGPT+sw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.171.tgz", + "integrity": "sha512-d1mKKb9QaIOp3KQKvPT8pFgPvZXpYc/YHnyyI667BUboKuznB9VDpHeXk6+C/SWUIT9QdStc0fcf/Tnwni+ivA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.170.tgz", - "integrity": "sha512-8R+XQrjak19/cxvEUHZRWTQAluZHtbf6/ssothHqhjOAf+pvN0dpFugHcpzUdMijQewMpXY+arVtveSANKuXoA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.171.tgz", + "integrity": "sha512-CUNv0yNFuO4y0AnOq9Zbs44nBEuS+eLqC3gv2nEFovdUeVy71rRVelMjvdF5ZWXitHk+WjhfBznF+vP9pye3HA==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.170.tgz", - "integrity": "sha512-wJdjS+JWLhNigChnyNgtuyBzXW2eHusqG5kOcg0M4v1yxQtZYvwXOtbGOQQOmqjg2v9bjjILrQXocnnmu29jqQ==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.171.tgz", + "integrity": "sha512-orHpb/THPJOaDJkJvzGRppwOd0tmpk3ZUGTgRD6FhzYrGzESxEhXuPYNE2jlaXx9hBxu9YDRMUvJWsmLDZW3GQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.170.tgz", - "integrity": "sha512-Y4rXj2cb47+v+RSC3m0hEkjmszsJXjHS51DcYjHmGkzx/CmR5gxwGBDOI8ZGXo1t6iFFSx6nwRkznhnUW3UhJA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.171.tgz", + "integrity": "sha512-zdoPPnTC5li+4ijatjZA+qyrPTQzpmOqjtQ6HAx1yLoJriGLteLfYmjplx5sFI3JrcDXzITVjaGmu3Ep4Jmhtw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.170.tgz", - "integrity": "sha512-VueClFr+rtWUCyeZfu2aD6GWWF2NLmqnTgd/TQRzlu9flVNWeJxGpIa9kGWcIDftoIQsssRuUMxXOcC856iOgA==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.171.tgz", + "integrity": "sha512-AmaOwrjnIQffwqrCL1MfSpG//ZbtdcCVqhY3+UtVmfKoSsSSkgWXSV++PQlJApAgRn/iwjZiR816B7zLg6535g==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.170", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.170.tgz", - "integrity": "sha512-gT/u/Sz2esYySdI2bXezgi7ow3AN+vFrUYUAvg0rBhO9wAvhKO35T8+/LlRShDp9E/ADAAwgg9jMBZTD6AKFlw==", + "version": "1.2.171", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.171.tgz", + "integrity": "sha512-DrOqi27Lagn/wy2QYDOiNr0KAJX4yR0areDcli2NQ875tva5uVFgvZo5sJFsHiLU/x6yBcxVpVAbzg8a1jRUAA==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index aa806b7c1..251732c06 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.170", + "@swc/core": "^1.2.171", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 031fd8568e6d55ee981a85ceacd843f676e392c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 05:32:34 +0000 Subject: [PATCH 261/411] chore(deps-dev): bump eslint from 8.13.0 to 8.14.0 (#877) Bumps [eslint](https://github.com/eslint/eslint) from 8.13.0 to 8.14.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.13.0...v8.14.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index b17a7aa54..4cb35bda9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", - "eslint": "^8.13.0", + "eslint": "^8.14.0", "typescript": "^4.5.5" }, "engines": { @@ -86,9 +86,9 @@ "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" }, "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1179,12 +1179,12 @@ } }, "node_modules/eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.2", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2580,9 +2580,9 @@ } }, "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -3282,12 +3282,12 @@ "dev": true }, "eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.2", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", diff --git a/package.json b/package.json index 251732c06..f5d8ed386 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", - "eslint": "^8.13.0", + "eslint": "^8.14.0", "typescript": "^4.5.5" }, "engines": { From 955d1e4add3311774147fa08d9133c778255c909 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 05:34:29 +0000 Subject: [PATCH 262/411] chore(deps-dev): bump @types/node from 17.0.25 to 17.0.26 (#879) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.25 to 17.0.26. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4cb35bda9..7fcf1a1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.25", + "@types/node": "^17.0.26", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", - "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", + "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2846,9 +2846,9 @@ } }, "@types/node": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", - "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", + "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index f5d8ed386..c898ae0c0 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.25", + "@types/node": "^17.0.26", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", From 98fa7fef220c5aebefc6f7402962f3d3d9cbc36d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 05:36:21 +0000 Subject: [PATCH 263/411] chore(deps): bump got from 12.0.3 to 12.0.4 (#878) Bumps [got](https://github.com/sindresorhus/got) from 12.0.3 to 12.0.4. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v12.0.3...v12.0.4) --- updated-dependencies: - dependency-name: got dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7fcf1a1b6..ed35f0567 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.3", + "got": "^12.0.4", "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", @@ -1608,9 +1608,9 @@ } }, "node_modules/got": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.3.tgz", - "integrity": "sha512-hmdcXi/S0gcAtDg4P8j/rM7+j3o1Aq6bXhjxkDhRY2ipe7PHpvx/14DgTY2czHOLaGeU8VRvRecidwfu9qdFug==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", + "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", "dependencies": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", @@ -3605,9 +3605,9 @@ } }, "got": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.3.tgz", - "integrity": "sha512-hmdcXi/S0gcAtDg4P8j/rM7+j3o1Aq6bXhjxkDhRY2ipe7PHpvx/14DgTY2czHOLaGeU8VRvRecidwfu9qdFug==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", + "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", "requires": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", diff --git a/package.json b/package.json index c898ae0c0..35019eb91 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", - "got": "^12.0.3", + "got": "^12.0.4", "i18n": "0.14.2", "opusscript": "^0.0.8", "prism-media": "^1.3.2", From 593635ab0c1a8a430b27166998b4141640265229 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 08:51:18 +0700 Subject: [PATCH 264/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#880) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.20.0 to 5.21.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.21.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 258 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 226 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed35f0567..5d4cfbf45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.26", - "@typescript-eslint/eslint-plugin": "^5.20.0", + "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", "typescript": "^4.5.5" @@ -582,14 +582,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", + "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/type-utils": "5.21.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -614,6 +614,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.21.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "5.20.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", @@ -659,12 +706,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", + "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -725,15 +772,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", + "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -748,6 +795,80 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.21.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.20.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", @@ -2888,20 +3009,48 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", + "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/type-utils": "5.21.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.21.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/parser": { @@ -2927,12 +3076,12 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", + "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } @@ -2959,17 +3108,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", + "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.21.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { diff --git a/package.json b/package.json index 35019eb91..00671f0ed 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.26", - "@typescript-eslint/eslint-plugin": "^5.20.0", + "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", "typescript": "^4.5.5" From 797bf02103d3bd5f97326fcb89957bbe03cf3ef1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 01:53:26 +0000 Subject: [PATCH 265/411] chore(deps-dev): bump @types/node from 17.0.26 to 17.0.27 (#882) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.26 to 17.0.27. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d4cfbf45..de51b0a35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.26", + "@types/node": "^17.0.27", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", - "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" + "version": "17.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", + "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2967,9 +2967,9 @@ } }, "@types/node": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", - "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" + "version": "17.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", + "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 00671f0ed..a4698fa42 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.26", + "@types/node": "^17.0.27", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.20.0", "eslint": "^8.14.0", From 0180059e45cf3d5dae38932cdc7aa8bf0c36a5c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 01:55:27 +0000 Subject: [PATCH 266/411] chore(deps-dev): bump @typescript-eslint/parser from 5.20.0 to 5.21.0 (#881) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.20.0 to 5.21.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.21.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 278 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 236 deletions(-) diff --git a/package-lock.json b/package-lock.json index de51b0a35..9acaff905 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.27", "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.20.0", + "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", "typescript": "^4.5.5" }, @@ -614,62 +614,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", - "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", + "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "5.21.0", "@typescript-eslint/types": "5.21.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/typescript-estree": "5.21.0", "debug": "^4.3.2" }, "engines": { @@ -689,13 +642,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -732,9 +685,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -745,13 +698,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -795,64 +748,7 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", - "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", @@ -869,23 +765,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.20.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -3023,56 +2902,28 @@ "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", - "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.21.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", + "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" } }, "@typescript-eslint/type-utils": { @@ -3087,19 +2938,19 @@ } }, "@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3119,58 +2970,15 @@ "@typescript-eslint/typescript-estree": "5.21.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", - "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", - "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.21.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/types": "5.21.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index a4698fa42..a81305f44 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.27", "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.20.0", + "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", "typescript": "^4.5.5" }, From 163bded88edbb526f11397c5fffcde6913919250 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 27 Apr 2022 00:08:40 +0900 Subject: [PATCH 267/411] feat(PlayCommand): remove useless replace --- src/commands/music/PlayCommand.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 8d0eda345..0a0dba478 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -64,9 +64,6 @@ export class PlayCommand extends BaseCommand { }); } - // eslint-disable-next-line prefer-named-capture-group - const url = query.replace(/<(.+)>/g, "$1"); - if (ctx.guild?.queue && voiceChannel.id !== ctx.guild.queue.connection?.joinConfig.channelId) { return ctx.reply({ embeds: [createEmbed( @@ -80,8 +77,8 @@ export class PlayCommand extends BaseCommand { }); } - const queryCheck = checkQuery(url); - const songs = await searchTrack(this.client, url).catch(() => undefined); + const queryCheck = checkQuery(query); + const songs = await searchTrack(this.client, query).catch(() => undefined); if (!songs || songs.items.length <= 0) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.play.noSongData"), true)] From b7585a411ca84ca1f9ddbebecd891e91771e224a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:11:00 +0700 Subject: [PATCH 268/411] chore(deps): bump @swc/core from 1.2.171 to 1.2.172 (#883) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.171 to 1.2.172. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.171...v1.2.172) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9acaff905..fc5336830 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.171", + "@swc/core": "^1.2.172", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.171.tgz", - "integrity": "sha512-WE1Nn+LQOqMb41jDTt78REE29elW4QvbAIECpAI9wUP4SJpt9uo9ItJQ3UbXE4BECQ0JgkLz5x7l9uWUAt4YUw==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.172.tgz", + "integrity": "sha512-Jd3Czz46LUrBldXO1G9LUOoH/PxkRWxwsf2siUaX5arC2bkQsRt7i7czVHo0cbaCo78Nr84jvDN1gBr6e1aEtQ==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.171", - "@swc/core-android-arm64": "1.2.171", - "@swc/core-darwin-arm64": "1.2.171", - "@swc/core-darwin-x64": "1.2.171", - "@swc/core-freebsd-x64": "1.2.171", - "@swc/core-linux-arm-gnueabihf": "1.2.171", - "@swc/core-linux-arm64-gnu": "1.2.171", - "@swc/core-linux-arm64-musl": "1.2.171", - "@swc/core-linux-x64-gnu": "1.2.171", - "@swc/core-linux-x64-musl": "1.2.171", - "@swc/core-win32-arm64-msvc": "1.2.171", - "@swc/core-win32-ia32-msvc": "1.2.171", - "@swc/core-win32-x64-msvc": "1.2.171" + "@swc/core-android-arm-eabi": "1.2.172", + "@swc/core-android-arm64": "1.2.172", + "@swc/core-darwin-arm64": "1.2.172", + "@swc/core-darwin-x64": "1.2.172", + "@swc/core-freebsd-x64": "1.2.172", + "@swc/core-linux-arm-gnueabihf": "1.2.172", + "@swc/core-linux-arm64-gnu": "1.2.172", + "@swc/core-linux-arm64-musl": "1.2.172", + "@swc/core-linux-x64-gnu": "1.2.172", + "@swc/core-linux-x64-musl": "1.2.172", + "@swc/core-win32-arm64-msvc": "1.2.172", + "@swc/core-win32-ia32-msvc": "1.2.172", + "@swc/core-win32-x64-msvc": "1.2.172" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.171.tgz", - "integrity": "sha512-0DZBYN8PX9GPWw2fJqKfVsctAFRVgQBM2Rin5ZRyJQehzTsI0HnandvFOZAS/I3T3YsiH4b5vH/S8KwRx+eCVg==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.172.tgz", + "integrity": "sha512-r0Jf/ZArqPDQ0zojA2IrI4/OZoWUu/Rti0dbO/f5lYJNzasNZwelhN7xrGrzTm39ZFL5ekDw66FLFPP0q0bMgw==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.171.tgz", - "integrity": "sha512-9ul8XoIeXf0iHt+S2R2GedWmv/iZPrmlAj81esf/mg541kajt3kfdHD+YMKFn753iOmgTfCM+TlU82XT4nEe3w==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.172.tgz", + "integrity": "sha512-l+D0nq6jR6FV8NwhWKIz1lwGbGBHAK8OnmyJfgiVnv+vMGm8LEocU7T2XBq+5ixWdeMtIYbD/g0zapbcaWbouw==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.171.tgz", - "integrity": "sha512-bZQLVbCRVU577LGXfhrDMqD0/cVvAFKRob3w2t/aZGY72rp9Mt56IPJcTIgah+5IeCapa4qwWwVQQVOP2DCcRA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.172.tgz", + "integrity": "sha512-8BnauUKiScAEXzS6Ldk8GNP2BnH8RS5nF93xaeO0cUgc7QuBarwH5Y+tSCY9Vy4uUkCBY1gKe8yaJUXsvT5C0w==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.171.tgz", - "integrity": "sha512-Geb3e9/o0h4VCky6dvQmHXwG+wpq0B4M0pkYySUMC3wVsqdun3rP2dF3i1FWG7F3t92sDOl3ba42JUweTtC2eA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.172.tgz", + "integrity": "sha512-NlT+ginLBAYlGQzXiW+ZjlBD2/dTP5mo0ByF0nIdku4cFiTbIOfuTe6Uc0SrcIER1vuVBBvJkZmVrtgaV8DeAQ==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.171.tgz", - "integrity": "sha512-JSsetNvKghKTXFyAu4+vW0pVY8sDGwZSBd3foyqyx5XXEQMDVlhQEs3AVtojp7+DQrh+PmUdyCB+zS74p70nzg==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.172.tgz", + "integrity": "sha512-TBDGbX9WInEAOCAYWJthqhCpqcETjTSYVNicKQsUMSbYbBOYqtOSeLBKxDTT7E4sP4owvUW8mzig5Iuz2vJseg==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.171.tgz", - "integrity": "sha512-ZYf5rED8Dw1dbYXolVEnexT7SYVpPJhsuKa4162Onsm/3S3xw1e+qmxJfTVdZG7jI8F2RDoZTHMLH+0y3iH98Q==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.172.tgz", + "integrity": "sha512-oe+py6WiWRi/IqmkQFfD7HEkGTv1AAYgTW0sxDbsQP7BM8FyKtMyJoey1umE5IumewSf5gAZ8Twf4h0YPvR5wQ==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.171.tgz", - "integrity": "sha512-uteuIg77MoEwdQ0BZPGFKmbDr+V2OP1rp/Dx9sU5/O9nd1Vju/tuCycMEv8X/k0Riza6sbK6xIFVAQlrPUTZ7g==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.172.tgz", + "integrity": "sha512-dlseuiwjR1/sDNOJtpLB/MxeyuPq+5M6gzB+E1IVHZNSDeexXt8jVF7pomTHLmIkKl8sm2uVwVKK6r2KUH9Gcg==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.171.tgz", - "integrity": "sha512-d1mKKb9QaIOp3KQKvPT8pFgPvZXpYc/YHnyyI667BUboKuznB9VDpHeXk6+C/SWUIT9QdStc0fcf/Tnwni+ivA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.172.tgz", + "integrity": "sha512-gBGg7tgF3s5YZAUShHBs3LcQuZdFhlrwz5ixXnKy2p6dJjN9idMddj7sEV+e/O3q5jsL7T0aaIHE1/t24oLniQ==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.171.tgz", - "integrity": "sha512-CUNv0yNFuO4y0AnOq9Zbs44nBEuS+eLqC3gv2nEFovdUeVy71rRVelMjvdF5ZWXitHk+WjhfBznF+vP9pye3HA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.172.tgz", + "integrity": "sha512-t1X3grtfEqLmEtBfsbOO/k/xBocVGhCh3jIeeko2ra1AYWH6KW3fboz8tLvLNyAVzbfzTHnUxcRfRvwIKQnFXg==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.171.tgz", - "integrity": "sha512-orHpb/THPJOaDJkJvzGRppwOd0tmpk3ZUGTgRD6FhzYrGzESxEhXuPYNE2jlaXx9hBxu9YDRMUvJWsmLDZW3GQ==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.172.tgz", + "integrity": "sha512-lPlZg2zRiiVDSmrJZMvqjPHF69heekEXzN1t7k8jeHrL89c1KEOrTFN0ZMcGFkkjWgq04ba6o1RyubTI2B29rw==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.171.tgz", - "integrity": "sha512-zdoPPnTC5li+4ijatjZA+qyrPTQzpmOqjtQ6HAx1yLoJriGLteLfYmjplx5sFI3JrcDXzITVjaGmu3Ep4Jmhtw==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.172.tgz", + "integrity": "sha512-pAMjBrWEhp33C1F1klvfN3ICU7keX70Ms22bTsobsghUIi1gFY3IUG3rd+BV7dmMpF0FomQRrHjcMoM3T4Urlw==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.171.tgz", - "integrity": "sha512-AmaOwrjnIQffwqrCL1MfSpG//ZbtdcCVqhY3+UtVmfKoSsSSkgWXSV++PQlJApAgRn/iwjZiR816B7zLg6535g==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.172.tgz", + "integrity": "sha512-Z1inaIQSBETWm/r1kkQGa40g7UnEJRmaJm+qOUVjPPCeNNmmcD6bnDbb2SNv3NC0c6odtnn9yiOIWJTiZKyeCg==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.171.tgz", - "integrity": "sha512-DrOqi27Lagn/wy2QYDOiNr0KAJX4yR0areDcli2NQ875tva5uVFgvZo5sJFsHiLU/x6yBcxVpVAbzg8a1jRUAA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.172.tgz", + "integrity": "sha512-q9nMpPpxgBG7j5p31YSag+fm6LjDzorUIRY22QMG/Os68q14sGITm0+B5bLzxa/VkfpqHXLZ48XdcyA3UkKXXw==", "cpu": [ "x64" ], @@ -2704,101 +2704,101 @@ } }, "@swc/core": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.171.tgz", - "integrity": "sha512-WE1Nn+LQOqMb41jDTt78REE29elW4QvbAIECpAI9wUP4SJpt9uo9ItJQ3UbXE4BECQ0JgkLz5x7l9uWUAt4YUw==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.172.tgz", + "integrity": "sha512-Jd3Czz46LUrBldXO1G9LUOoH/PxkRWxwsf2siUaX5arC2bkQsRt7i7czVHo0cbaCo78Nr84jvDN1gBr6e1aEtQ==", "requires": { - "@swc/core-android-arm-eabi": "1.2.171", - "@swc/core-android-arm64": "1.2.171", - "@swc/core-darwin-arm64": "1.2.171", - "@swc/core-darwin-x64": "1.2.171", - "@swc/core-freebsd-x64": "1.2.171", - "@swc/core-linux-arm-gnueabihf": "1.2.171", - "@swc/core-linux-arm64-gnu": "1.2.171", - "@swc/core-linux-arm64-musl": "1.2.171", - "@swc/core-linux-x64-gnu": "1.2.171", - "@swc/core-linux-x64-musl": "1.2.171", - "@swc/core-win32-arm64-msvc": "1.2.171", - "@swc/core-win32-ia32-msvc": "1.2.171", - "@swc/core-win32-x64-msvc": "1.2.171" + "@swc/core-android-arm-eabi": "1.2.172", + "@swc/core-android-arm64": "1.2.172", + "@swc/core-darwin-arm64": "1.2.172", + "@swc/core-darwin-x64": "1.2.172", + "@swc/core-freebsd-x64": "1.2.172", + "@swc/core-linux-arm-gnueabihf": "1.2.172", + "@swc/core-linux-arm64-gnu": "1.2.172", + "@swc/core-linux-arm64-musl": "1.2.172", + "@swc/core-linux-x64-gnu": "1.2.172", + "@swc/core-linux-x64-musl": "1.2.172", + "@swc/core-win32-arm64-msvc": "1.2.172", + "@swc/core-win32-ia32-msvc": "1.2.172", + "@swc/core-win32-x64-msvc": "1.2.172" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.171.tgz", - "integrity": "sha512-0DZBYN8PX9GPWw2fJqKfVsctAFRVgQBM2Rin5ZRyJQehzTsI0HnandvFOZAS/I3T3YsiH4b5vH/S8KwRx+eCVg==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.172.tgz", + "integrity": "sha512-r0Jf/ZArqPDQ0zojA2IrI4/OZoWUu/Rti0dbO/f5lYJNzasNZwelhN7xrGrzTm39ZFL5ekDw66FLFPP0q0bMgw==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.171.tgz", - "integrity": "sha512-9ul8XoIeXf0iHt+S2R2GedWmv/iZPrmlAj81esf/mg541kajt3kfdHD+YMKFn753iOmgTfCM+TlU82XT4nEe3w==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.172.tgz", + "integrity": "sha512-l+D0nq6jR6FV8NwhWKIz1lwGbGBHAK8OnmyJfgiVnv+vMGm8LEocU7T2XBq+5ixWdeMtIYbD/g0zapbcaWbouw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.171.tgz", - "integrity": "sha512-bZQLVbCRVU577LGXfhrDMqD0/cVvAFKRob3w2t/aZGY72rp9Mt56IPJcTIgah+5IeCapa4qwWwVQQVOP2DCcRA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.172.tgz", + "integrity": "sha512-8BnauUKiScAEXzS6Ldk8GNP2BnH8RS5nF93xaeO0cUgc7QuBarwH5Y+tSCY9Vy4uUkCBY1gKe8yaJUXsvT5C0w==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.171.tgz", - "integrity": "sha512-Geb3e9/o0h4VCky6dvQmHXwG+wpq0B4M0pkYySUMC3wVsqdun3rP2dF3i1FWG7F3t92sDOl3ba42JUweTtC2eA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.172.tgz", + "integrity": "sha512-NlT+ginLBAYlGQzXiW+ZjlBD2/dTP5mo0ByF0nIdku4cFiTbIOfuTe6Uc0SrcIER1vuVBBvJkZmVrtgaV8DeAQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.171.tgz", - "integrity": "sha512-JSsetNvKghKTXFyAu4+vW0pVY8sDGwZSBd3foyqyx5XXEQMDVlhQEs3AVtojp7+DQrh+PmUdyCB+zS74p70nzg==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.172.tgz", + "integrity": "sha512-TBDGbX9WInEAOCAYWJthqhCpqcETjTSYVNicKQsUMSbYbBOYqtOSeLBKxDTT7E4sP4owvUW8mzig5Iuz2vJseg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.171.tgz", - "integrity": "sha512-ZYf5rED8Dw1dbYXolVEnexT7SYVpPJhsuKa4162Onsm/3S3xw1e+qmxJfTVdZG7jI8F2RDoZTHMLH+0y3iH98Q==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.172.tgz", + "integrity": "sha512-oe+py6WiWRi/IqmkQFfD7HEkGTv1AAYgTW0sxDbsQP7BM8FyKtMyJoey1umE5IumewSf5gAZ8Twf4h0YPvR5wQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.171.tgz", - "integrity": "sha512-uteuIg77MoEwdQ0BZPGFKmbDr+V2OP1rp/Dx9sU5/O9nd1Vju/tuCycMEv8X/k0Riza6sbK6xIFVAQlrPUTZ7g==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.172.tgz", + "integrity": "sha512-dlseuiwjR1/sDNOJtpLB/MxeyuPq+5M6gzB+E1IVHZNSDeexXt8jVF7pomTHLmIkKl8sm2uVwVKK6r2KUH9Gcg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.171.tgz", - "integrity": "sha512-d1mKKb9QaIOp3KQKvPT8pFgPvZXpYc/YHnyyI667BUboKuznB9VDpHeXk6+C/SWUIT9QdStc0fcf/Tnwni+ivA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.172.tgz", + "integrity": "sha512-gBGg7tgF3s5YZAUShHBs3LcQuZdFhlrwz5ixXnKy2p6dJjN9idMddj7sEV+e/O3q5jsL7T0aaIHE1/t24oLniQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.171.tgz", - "integrity": "sha512-CUNv0yNFuO4y0AnOq9Zbs44nBEuS+eLqC3gv2nEFovdUeVy71rRVelMjvdF5ZWXitHk+WjhfBznF+vP9pye3HA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.172.tgz", + "integrity": "sha512-t1X3grtfEqLmEtBfsbOO/k/xBocVGhCh3jIeeko2ra1AYWH6KW3fboz8tLvLNyAVzbfzTHnUxcRfRvwIKQnFXg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.171.tgz", - "integrity": "sha512-orHpb/THPJOaDJkJvzGRppwOd0tmpk3ZUGTgRD6FhzYrGzESxEhXuPYNE2jlaXx9hBxu9YDRMUvJWsmLDZW3GQ==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.172.tgz", + "integrity": "sha512-lPlZg2zRiiVDSmrJZMvqjPHF69heekEXzN1t7k8jeHrL89c1KEOrTFN0ZMcGFkkjWgq04ba6o1RyubTI2B29rw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.171.tgz", - "integrity": "sha512-zdoPPnTC5li+4ijatjZA+qyrPTQzpmOqjtQ6HAx1yLoJriGLteLfYmjplx5sFI3JrcDXzITVjaGmu3Ep4Jmhtw==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.172.tgz", + "integrity": "sha512-pAMjBrWEhp33C1F1klvfN3ICU7keX70Ms22bTsobsghUIi1gFY3IUG3rd+BV7dmMpF0FomQRrHjcMoM3T4Urlw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.171.tgz", - "integrity": "sha512-AmaOwrjnIQffwqrCL1MfSpG//ZbtdcCVqhY3+UtVmfKoSsSSkgWXSV++PQlJApAgRn/iwjZiR816B7zLg6535g==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.172.tgz", + "integrity": "sha512-Z1inaIQSBETWm/r1kkQGa40g7UnEJRmaJm+qOUVjPPCeNNmmcD6bnDbb2SNv3NC0c6odtnn9yiOIWJTiZKyeCg==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.171", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.171.tgz", - "integrity": "sha512-DrOqi27Lagn/wy2QYDOiNr0KAJX4yR0areDcli2NQ875tva5uVFgvZo5sJFsHiLU/x6yBcxVpVAbzg8a1jRUAA==", + "version": "1.2.172", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.172.tgz", + "integrity": "sha512-q9nMpPpxgBG7j5p31YSag+fm6LjDzorUIRY22QMG/Os68q14sGITm0+B5bLzxa/VkfpqHXLZ48XdcyA3UkKXXw==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index a81305f44..d61a59182 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.171", + "@swc/core": "^1.2.172", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 8a951c593337982bf3000359aced7891576aaebb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Apr 2022 06:13:16 +0000 Subject: [PATCH 269/411] chore(deps-dev): bump @types/node from 17.0.27 to 17.0.29 (#884) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.27 to 17.0.29. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc5336830..68c1047cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.27", + "@types/node": "^17.0.29", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", + "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2846,9 +2846,9 @@ } }, "@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", + "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index d61a59182..61467f359 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.27", + "@types/node": "^17.0.29", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", From 71051cf9574bfb1218f4e1ce27b387dd803d78b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Apr 2022 00:22:34 +0700 Subject: [PATCH 270/411] chore(deps-dev): bump @types/node from 17.0.29 to 17.0.30 (#885) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.29 to 17.0.30. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68c1047cf..02529b90c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.29", + "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", - "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" + "version": "17.0.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", + "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2846,9 +2846,9 @@ } }, "@types/node": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", - "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" + "version": "17.0.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", + "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 61467f359..43e538e21 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@rahagia/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.29", + "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", From 082f3c3e1f5c3d761817f7b12a096c2898cf6304 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:24:59 +0000 Subject: [PATCH 271/411] chore(deps): bump @swc/core from 1.2.172 to 1.2.173 (#887) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.172 to 1.2.173. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.172...v1.2.173) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02529b90c..9449f3634 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.172", + "@swc/core": "^1.2.173", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.172.tgz", - "integrity": "sha512-Jd3Czz46LUrBldXO1G9LUOoH/PxkRWxwsf2siUaX5arC2bkQsRt7i7czVHo0cbaCo78Nr84jvDN1gBr6e1aEtQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.173.tgz", + "integrity": "sha512-scTnWQMxaCN4BCi/IZbqBL8W+ce/Mx7b1hx/xp5EXu1T4hayDhOemq0LsUeeDxHi9xMgR/1hidqa9M6FWXXV+A==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.172", - "@swc/core-android-arm64": "1.2.172", - "@swc/core-darwin-arm64": "1.2.172", - "@swc/core-darwin-x64": "1.2.172", - "@swc/core-freebsd-x64": "1.2.172", - "@swc/core-linux-arm-gnueabihf": "1.2.172", - "@swc/core-linux-arm64-gnu": "1.2.172", - "@swc/core-linux-arm64-musl": "1.2.172", - "@swc/core-linux-x64-gnu": "1.2.172", - "@swc/core-linux-x64-musl": "1.2.172", - "@swc/core-win32-arm64-msvc": "1.2.172", - "@swc/core-win32-ia32-msvc": "1.2.172", - "@swc/core-win32-x64-msvc": "1.2.172" + "@swc/core-android-arm-eabi": "1.2.173", + "@swc/core-android-arm64": "1.2.173", + "@swc/core-darwin-arm64": "1.2.173", + "@swc/core-darwin-x64": "1.2.173", + "@swc/core-freebsd-x64": "1.2.173", + "@swc/core-linux-arm-gnueabihf": "1.2.173", + "@swc/core-linux-arm64-gnu": "1.2.173", + "@swc/core-linux-arm64-musl": "1.2.173", + "@swc/core-linux-x64-gnu": "1.2.173", + "@swc/core-linux-x64-musl": "1.2.173", + "@swc/core-win32-arm64-msvc": "1.2.173", + "@swc/core-win32-ia32-msvc": "1.2.173", + "@swc/core-win32-x64-msvc": "1.2.173" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.172.tgz", - "integrity": "sha512-r0Jf/ZArqPDQ0zojA2IrI4/OZoWUu/Rti0dbO/f5lYJNzasNZwelhN7xrGrzTm39ZFL5ekDw66FLFPP0q0bMgw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.173.tgz", + "integrity": "sha512-8ZfP3xrMhMbUznEAuJz8gy+Y+SLYQswuirclHv72VGhT01198dnb70dxokIDolZPp9SKfHtPtj6fHTXl6cenaA==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.172.tgz", - "integrity": "sha512-l+D0nq6jR6FV8NwhWKIz1lwGbGBHAK8OnmyJfgiVnv+vMGm8LEocU7T2XBq+5ixWdeMtIYbD/g0zapbcaWbouw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.173.tgz", + "integrity": "sha512-3JwPSZLlRdJrgHxqzRDtoNWWO72FnB0O99M0hpWIqeKtT+JjAsjnWpG8AQVSR6K6umgMCOa+6BdbFvDp7fVViw==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.172.tgz", - "integrity": "sha512-8BnauUKiScAEXzS6Ldk8GNP2BnH8RS5nF93xaeO0cUgc7QuBarwH5Y+tSCY9Vy4uUkCBY1gKe8yaJUXsvT5C0w==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.173.tgz", + "integrity": "sha512-ygshqTlu+nyf9URH6nvRxQcCwVbECvCsBqcwb/xQQLAGh/t6FIwjGwisjTJ8or1StoDmC3n4yamTJ9duSU95AQ==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.172.tgz", - "integrity": "sha512-NlT+ginLBAYlGQzXiW+ZjlBD2/dTP5mo0ByF0nIdku4cFiTbIOfuTe6Uc0SrcIER1vuVBBvJkZmVrtgaV8DeAQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.173.tgz", + "integrity": "sha512-HLmBvQKpLfCu4WZ9+h6DszPy5gid1VmuTjqh4Q3fHS7EaKOs7Bk7NtMbxlJzliir++tLt3xPIEUlzM1pl6QZkQ==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.172.tgz", - "integrity": "sha512-TBDGbX9WInEAOCAYWJthqhCpqcETjTSYVNicKQsUMSbYbBOYqtOSeLBKxDTT7E4sP4owvUW8mzig5Iuz2vJseg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.173.tgz", + "integrity": "sha512-XpI+Cn+yr9HeWo6NH3vmna++UQQUGuq8S9T6CmoYOAm1ApneQeOoJQy259C9bMD2AiXWIMJtvULMbm+EO+A+jQ==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.172.tgz", - "integrity": "sha512-oe+py6WiWRi/IqmkQFfD7HEkGTv1AAYgTW0sxDbsQP7BM8FyKtMyJoey1umE5IumewSf5gAZ8Twf4h0YPvR5wQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.173.tgz", + "integrity": "sha512-8imFCNXb4pX+unPxKCJZMelPBh/WY7Kx2O11X9cpuxRcmVpZsodJPscreJJrTaAliq88feIox+V6k6oWlIzTCw==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.172.tgz", - "integrity": "sha512-dlseuiwjR1/sDNOJtpLB/MxeyuPq+5M6gzB+E1IVHZNSDeexXt8jVF7pomTHLmIkKl8sm2uVwVKK6r2KUH9Gcg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.173.tgz", + "integrity": "sha512-PhK0etjVWM29L8mjDcu6tBSWjexL/f0uta6nxPh44DrofxBKandvgKW6EcFekZDx1QFa2vy0aqb+JUV52tDRlw==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.172.tgz", - "integrity": "sha512-gBGg7tgF3s5YZAUShHBs3LcQuZdFhlrwz5ixXnKy2p6dJjN9idMddj7sEV+e/O3q5jsL7T0aaIHE1/t24oLniQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.173.tgz", + "integrity": "sha512-uOq8skOvDBycQWloYixp4Ml+ZQl8YyR1WwVtuuHPXNxV0eMn3eryGpqezqMzBFkadRIKLREdnGfIiG5/oZiGlw==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.172.tgz", - "integrity": "sha512-t1X3grtfEqLmEtBfsbOO/k/xBocVGhCh3jIeeko2ra1AYWH6KW3fboz8tLvLNyAVzbfzTHnUxcRfRvwIKQnFXg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.173.tgz", + "integrity": "sha512-0jCfUFOxSAGEVRPHziCIPxD0zMmMRvYKK8PkdWMvPG2DKi4ITI/wRq+4sGj87dLHWybXhtolu/ceErMWv5L+kw==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.172.tgz", - "integrity": "sha512-lPlZg2zRiiVDSmrJZMvqjPHF69heekEXzN1t7k8jeHrL89c1KEOrTFN0ZMcGFkkjWgq04ba6o1RyubTI2B29rw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.173.tgz", + "integrity": "sha512-qL/Cb813U7hEXPpqd+O2W0HhcW2TpettQBlb99wyjCfVe0I2eg+S83cg6SV7tSmDRJ5SCezxNcbrnBZjqOw/MA==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.172.tgz", - "integrity": "sha512-pAMjBrWEhp33C1F1klvfN3ICU7keX70Ms22bTsobsghUIi1gFY3IUG3rd+BV7dmMpF0FomQRrHjcMoM3T4Urlw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.173.tgz", + "integrity": "sha512-ik9pmhc/Jt0Q/JDPj65fJr2S4eNuwipLdDkfc5C/CvWKWSFPuDoxIThPc26vExF+RnaAh3qk/jbsgc2SeD48wg==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.172.tgz", - "integrity": "sha512-Z1inaIQSBETWm/r1kkQGa40g7UnEJRmaJm+qOUVjPPCeNNmmcD6bnDbb2SNv3NC0c6odtnn9yiOIWJTiZKyeCg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.173.tgz", + "integrity": "sha512-l68d516QiVCAmJzFKHO7o3PSDXopaDCRlHdXcOUIM6OFyNsdKV2cJ3NeDrbCLEIUPeeH1tdtfV6yHlvmEOEPew==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.172.tgz", - "integrity": "sha512-q9nMpPpxgBG7j5p31YSag+fm6LjDzorUIRY22QMG/Os68q14sGITm0+B5bLzxa/VkfpqHXLZ48XdcyA3UkKXXw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.173.tgz", + "integrity": "sha512-gnNI474ZjmHCN1Swtu86URrznnTYM7P6HCvk8ls5mzeDoDCD8qnXz0APWXRM+Rv56C8xYjro9pKbzCP1MYiwwQ==", "cpu": [ "x64" ], @@ -2704,101 +2704,101 @@ } }, "@swc/core": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.172.tgz", - "integrity": "sha512-Jd3Czz46LUrBldXO1G9LUOoH/PxkRWxwsf2siUaX5arC2bkQsRt7i7czVHo0cbaCo78Nr84jvDN1gBr6e1aEtQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.173.tgz", + "integrity": "sha512-scTnWQMxaCN4BCi/IZbqBL8W+ce/Mx7b1hx/xp5EXu1T4hayDhOemq0LsUeeDxHi9xMgR/1hidqa9M6FWXXV+A==", "requires": { - "@swc/core-android-arm-eabi": "1.2.172", - "@swc/core-android-arm64": "1.2.172", - "@swc/core-darwin-arm64": "1.2.172", - "@swc/core-darwin-x64": "1.2.172", - "@swc/core-freebsd-x64": "1.2.172", - "@swc/core-linux-arm-gnueabihf": "1.2.172", - "@swc/core-linux-arm64-gnu": "1.2.172", - "@swc/core-linux-arm64-musl": "1.2.172", - "@swc/core-linux-x64-gnu": "1.2.172", - "@swc/core-linux-x64-musl": "1.2.172", - "@swc/core-win32-arm64-msvc": "1.2.172", - "@swc/core-win32-ia32-msvc": "1.2.172", - "@swc/core-win32-x64-msvc": "1.2.172" + "@swc/core-android-arm-eabi": "1.2.173", + "@swc/core-android-arm64": "1.2.173", + "@swc/core-darwin-arm64": "1.2.173", + "@swc/core-darwin-x64": "1.2.173", + "@swc/core-freebsd-x64": "1.2.173", + "@swc/core-linux-arm-gnueabihf": "1.2.173", + "@swc/core-linux-arm64-gnu": "1.2.173", + "@swc/core-linux-arm64-musl": "1.2.173", + "@swc/core-linux-x64-gnu": "1.2.173", + "@swc/core-linux-x64-musl": "1.2.173", + "@swc/core-win32-arm64-msvc": "1.2.173", + "@swc/core-win32-ia32-msvc": "1.2.173", + "@swc/core-win32-x64-msvc": "1.2.173" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.172.tgz", - "integrity": "sha512-r0Jf/ZArqPDQ0zojA2IrI4/OZoWUu/Rti0dbO/f5lYJNzasNZwelhN7xrGrzTm39ZFL5ekDw66FLFPP0q0bMgw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.173.tgz", + "integrity": "sha512-8ZfP3xrMhMbUznEAuJz8gy+Y+SLYQswuirclHv72VGhT01198dnb70dxokIDolZPp9SKfHtPtj6fHTXl6cenaA==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.172.tgz", - "integrity": "sha512-l+D0nq6jR6FV8NwhWKIz1lwGbGBHAK8OnmyJfgiVnv+vMGm8LEocU7T2XBq+5ixWdeMtIYbD/g0zapbcaWbouw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.173.tgz", + "integrity": "sha512-3JwPSZLlRdJrgHxqzRDtoNWWO72FnB0O99M0hpWIqeKtT+JjAsjnWpG8AQVSR6K6umgMCOa+6BdbFvDp7fVViw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.172.tgz", - "integrity": "sha512-8BnauUKiScAEXzS6Ldk8GNP2BnH8RS5nF93xaeO0cUgc7QuBarwH5Y+tSCY9Vy4uUkCBY1gKe8yaJUXsvT5C0w==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.173.tgz", + "integrity": "sha512-ygshqTlu+nyf9URH6nvRxQcCwVbECvCsBqcwb/xQQLAGh/t6FIwjGwisjTJ8or1StoDmC3n4yamTJ9duSU95AQ==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.172.tgz", - "integrity": "sha512-NlT+ginLBAYlGQzXiW+ZjlBD2/dTP5mo0ByF0nIdku4cFiTbIOfuTe6Uc0SrcIER1vuVBBvJkZmVrtgaV8DeAQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.173.tgz", + "integrity": "sha512-HLmBvQKpLfCu4WZ9+h6DszPy5gid1VmuTjqh4Q3fHS7EaKOs7Bk7NtMbxlJzliir++tLt3xPIEUlzM1pl6QZkQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.172.tgz", - "integrity": "sha512-TBDGbX9WInEAOCAYWJthqhCpqcETjTSYVNicKQsUMSbYbBOYqtOSeLBKxDTT7E4sP4owvUW8mzig5Iuz2vJseg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.173.tgz", + "integrity": "sha512-XpI+Cn+yr9HeWo6NH3vmna++UQQUGuq8S9T6CmoYOAm1ApneQeOoJQy259C9bMD2AiXWIMJtvULMbm+EO+A+jQ==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.172.tgz", - "integrity": "sha512-oe+py6WiWRi/IqmkQFfD7HEkGTv1AAYgTW0sxDbsQP7BM8FyKtMyJoey1umE5IumewSf5gAZ8Twf4h0YPvR5wQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.173.tgz", + "integrity": "sha512-8imFCNXb4pX+unPxKCJZMelPBh/WY7Kx2O11X9cpuxRcmVpZsodJPscreJJrTaAliq88feIox+V6k6oWlIzTCw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.172.tgz", - "integrity": "sha512-dlseuiwjR1/sDNOJtpLB/MxeyuPq+5M6gzB+E1IVHZNSDeexXt8jVF7pomTHLmIkKl8sm2uVwVKK6r2KUH9Gcg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.173.tgz", + "integrity": "sha512-PhK0etjVWM29L8mjDcu6tBSWjexL/f0uta6nxPh44DrofxBKandvgKW6EcFekZDx1QFa2vy0aqb+JUV52tDRlw==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.172.tgz", - "integrity": "sha512-gBGg7tgF3s5YZAUShHBs3LcQuZdFhlrwz5ixXnKy2p6dJjN9idMddj7sEV+e/O3q5jsL7T0aaIHE1/t24oLniQ==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.173.tgz", + "integrity": "sha512-uOq8skOvDBycQWloYixp4Ml+ZQl8YyR1WwVtuuHPXNxV0eMn3eryGpqezqMzBFkadRIKLREdnGfIiG5/oZiGlw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.172.tgz", - "integrity": "sha512-t1X3grtfEqLmEtBfsbOO/k/xBocVGhCh3jIeeko2ra1AYWH6KW3fboz8tLvLNyAVzbfzTHnUxcRfRvwIKQnFXg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.173.tgz", + "integrity": "sha512-0jCfUFOxSAGEVRPHziCIPxD0zMmMRvYKK8PkdWMvPG2DKi4ITI/wRq+4sGj87dLHWybXhtolu/ceErMWv5L+kw==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.172.tgz", - "integrity": "sha512-lPlZg2zRiiVDSmrJZMvqjPHF69heekEXzN1t7k8jeHrL89c1KEOrTFN0ZMcGFkkjWgq04ba6o1RyubTI2B29rw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.173.tgz", + "integrity": "sha512-qL/Cb813U7hEXPpqd+O2W0HhcW2TpettQBlb99wyjCfVe0I2eg+S83cg6SV7tSmDRJ5SCezxNcbrnBZjqOw/MA==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.172.tgz", - "integrity": "sha512-pAMjBrWEhp33C1F1klvfN3ICU7keX70Ms22bTsobsghUIi1gFY3IUG3rd+BV7dmMpF0FomQRrHjcMoM3T4Urlw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.173.tgz", + "integrity": "sha512-ik9pmhc/Jt0Q/JDPj65fJr2S4eNuwipLdDkfc5C/CvWKWSFPuDoxIThPc26vExF+RnaAh3qk/jbsgc2SeD48wg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.172.tgz", - "integrity": "sha512-Z1inaIQSBETWm/r1kkQGa40g7UnEJRmaJm+qOUVjPPCeNNmmcD6bnDbb2SNv3NC0c6odtnn9yiOIWJTiZKyeCg==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.173.tgz", + "integrity": "sha512-l68d516QiVCAmJzFKHO7o3PSDXopaDCRlHdXcOUIM6OFyNsdKV2cJ3NeDrbCLEIUPeeH1tdtfV6yHlvmEOEPew==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.172", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.172.tgz", - "integrity": "sha512-q9nMpPpxgBG7j5p31YSag+fm6LjDzorUIRY22QMG/Os68q14sGITm0+B5bLzxa/VkfpqHXLZ48XdcyA3UkKXXw==", + "version": "1.2.173", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.173.tgz", + "integrity": "sha512-gnNI474ZjmHCN1Swtu86URrznnTYM7P6HCvk8ls5mzeDoDCD8qnXz0APWXRM+Rv56C8xYjro9pKbzCP1MYiwwQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 43e538e21..8001d2547 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.172", + "@swc/core": "^1.2.173", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From fb54187bc36811a9a0ef4f2a4e6b2b1e5fd8a7d4 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 30 Apr 2022 05:00:50 +0700 Subject: [PATCH 272/411] chore(deps): update lockfile --- package-lock.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package-lock.json b/package-lock.json index 9449f3634..fea7534d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From 204e734ac2bf722535acee9bba3aceedc947733b Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 30 Apr 2022 05:27:47 +0700 Subject: [PATCH 273/411] chore: rename Rahagia to Cyteliz, and rahagia.tech to cyteliz.net --- .env_example | 2 +- README.md | 8 ++++---- app.json | 6 +++--- package.json | 4 ++-- src/commands/developers/EvalCommand.ts | 4 ++-- src/commands/general/AboutCommand.ts | 2 +- src/commands/general/HelpCommand.ts | 6 +++--- src/commands/music/LyricsCommand.ts | 2 +- src/commands/music/NowPlayingCommand.ts | 2 +- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.env_example b/.env_example index 2b674f396..9272612a3 100644 --- a/.env_example +++ b/.env_example @@ -68,7 +68,7 @@ NODE_ENV="" #============================================================================== # OPTIONAL - Which youtube downloader do you want to use? -# For more information, see: https://github.com/Rahagia/rawon/wiki/Stream-Strategy +# For more information, see: https://github.com/Cyteliz/rawon/wiki/Stream-Strategy # Example: STREAM_STRATEGY="yt-dlp" # Available: play-dl, yt-dlp # Default: yt-dlp diff --git a/README.md b/README.md index c1f4ab49f..e8883dbec 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ <a href="https://discord.com/oauth2/authorize?client_id=711712829031448637&permissions=53857345&scope=bot"><img src="https://img.shields.io/static/v1?label=Invite%20Me&message=Rawon%237022&plastic&color=5865F2&logo=discord"></a> <img src="https://badgen.net/badge/icon/typescript?icon=typescript&label"> -<a href="https://github.com/Rahagia/rawon/actions?query=workflow%3A%22Lint+code+%26+compile+test%22"><img src="https://github.com/Rahagia/rawon/workflows/Lint%20code%20&%20compile%20test/badge.svg" alt="CI Status" /></a> +<a href="https://github.com/Cyteliz/rawon/actions?query=workflow%3A%22Lint+code+%26+compile+test%22"><img src="https://github.com/Cyteliz/rawon/workflows/Lint%20code%20&%20compile%20test/badge.svg" alt="CI Status" /></a> ## Features - Interaction support. @@ -40,7 +40,7 @@ $ npm start ### Heroku You can host this bot to make it stay online on Heroku. -<a href="https://heroku.com/deploy?template=https://github.com/Rahagia/rawon"><img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku"></a> +<a href="https://heroku.com/deploy?template=https://github.com/Cyteliz/rawon"><img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku"></a> ### Glitch You can use Glitch too for this project, featured with its code editor. @@ -53,14 +53,14 @@ You can use Glitch too for this project, featured with its code editor. 6. After specifying `.env`, open **Tools** > **Terminal** 7. Type `refresh`, and track the process from **Logs** -<a href="https://glitch.com/edit/#!/import/github/Rahagia/rawon"><img src="https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg" alt="Remix on Glitch"></a> +<a href="https://glitch.com/edit/#!/import/github/Cyteliz/rawon"><img src="https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg" alt="Remix on Glitch"></a> ### Railway Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. **IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. -<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FRahagia%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FRahagia%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" +<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> ## Project Maintainer diff --git a/app.json b/app.json index 40beb6b03..be01e7992 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "Rawon", "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "logo": "https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/rawon.png", + "logo": "https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/rawon.png", "env": { "DISCORD_TOKEN": { "description": "What is your Discord bot's token? | Example: NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd", @@ -108,8 +108,8 @@ "value": "no" } }, - "repository": "https://github.com/Rahagia/rawon", - "website": "https://rawon.rahagia.tech", + "repository": "https://github.com/Cyteliz/rawon", + "website": "https://rawon.cyteliz.net", "formation": { "worker": { "quantity": 1, diff --git a/package.json b/package.json index 8001d2547..90fadd9a2 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "3.0.0-dev", "private": true, "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "repository": "https://github.com/Rahagia/rawon", + "repository": "https://github.com/Cyteliz/rawon", "license": "BSD-3-Clause", - "author": "mzrtamp <mozartrafikt@gmail.com>", + "author": "Cyteliz <admin@cyteliz.net>", "type": "module", "main": "index.js", "scripts": { diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index 17a00f6ab..6fce49086 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -84,10 +84,10 @@ export class EvalCommand extends BaseCommand { } private async hastebin(text: string): Promise<string> { - const result = await this.client.request.post("https://bin.rahagia.tech/documents", { + const result = await this.client.request.post("https://bin.cyteliz.net/documents", { body: text }).json<{ key: string }>(); - return `https://bin.rahagia.tech/${result.key}`; + return `https://bin.cyteliz.net/${result.key}`; } } diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 49c74f9dd..d8830c464 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -32,7 +32,7 @@ export class AboutCommand extends BaseCommand { [i18n.__("commands.general.about.ffmpegVersionString"), this.client.utils.getFFmpegVersion()], [i18n.__("commands.general.about.botVersionString"), BotVersion], [""], - [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/Rahagia/rawon"] + [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/Cyteliz/rawon"] ]; const value = createTable(values); diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index a469ef0fd..8b712b4a5 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -33,11 +33,11 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), - iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/info.png" }); private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://raw.githubusercontent.com/Rahagia/rawon/main/.github/images/question_mark.png"); + .setThumbnail("https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/question_mark.png"); public async execute(ctx: CommandContext): Promise<Message | undefined> { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); @@ -143,7 +143,7 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), - iconURL: "https://raw.githubusercontent.com/Rahagia/rawon/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Cyteliz/rawon/.github/images/info.png" })] }, "editReply"); } diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index c58d76e01..3b8dc39b3 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -55,7 +55,7 @@ export class LyricsCommand extends BaseCommand { }); } - const albumArt = data.album_art ?? "https://api.rahagia.tech/assets/images/icon.png"; + const albumArt = data.album_art ?? "https://api.cyteliz.net/assets/images/icon.png"; const pages: string[] = chunk(data.lyrics!, 2048); const embed = createEmbed("info", pages[0]) .setAuthor({ diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index f34aece9c..3b09efa38 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -33,7 +33,7 @@ export class NowPlayingCommand extends BaseCommand { song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue") - }`).setThumbnail(song?.thumbnail ?? "https://api.rahagia.tech/assets/images/icon.png"); + }`).setThumbnail(song?.thumbnail ?? "https://api.cyteliz.net/assets/images/icon.png"); } const buttons = new MessageActionRow() From 9c24ec0cc9e6ccd32bff0d8933b2125044b12034 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 30 Apr 2022 05:30:45 +0700 Subject: [PATCH 274/411] chore(deps-dev): use '@cyteliz/eslint/config' --- package-lock.json | 62 +++++++++++++++++++++++------------------------ package.json | 4 +-- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index fea7534d3..ad91bcc33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^1.0.1", + "@cyteliz/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", @@ -40,6 +40,29 @@ "play-dl": "^1.9.4" } }, + "node_modules/@cyteliz/eslint-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cyteliz/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-yFtBjqen0d5MF3+j9aM3SiVwNzWktUuCN86oK4Xz5f5AKAm3gcLvClnvIzxzt35X3504HNxvvYHXmPiVmnI2AA==", + "dev": true, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">=5.18.0", + "@typescript-eslint/parser": ">=5.18.0", + "eslint": ">=8.13.0", + "typescript": ">=3.3.1 <4.7.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, "node_modules/@discordjs/builders": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", @@ -197,29 +220,6 @@ "node": ">= 8" } }, - "node_modules/@rahagia/eslint-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.1.tgz", - "integrity": "sha512-B6QDilr3U9Ba8iG/9L06jlg67oSShhAo6NEneuaE89klTpPq79dcSzRrAF2HbnIFKPzQIg3EmRgLqzGhjGt2Ow==", - "dev": true, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5.18.0", - "@typescript-eslint/parser": ">=5.18.0", - "eslint": ">=8.13.0", - "typescript": ">=3.3.1 <4.7.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "@typescript-eslint/parser": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, "node_modules/@sapphire/async-queue": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", @@ -2543,6 +2543,13 @@ } }, "dependencies": { + "@cyteliz/eslint-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cyteliz/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-yFtBjqen0d5MF3+j9aM3SiVwNzWktUuCN86oK4Xz5f5AKAm3gcLvClnvIzxzt35X3504HNxvvYHXmPiVmnI2AA==", + "dev": true, + "requires": {} + }, "@discordjs/builders": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", @@ -2676,13 +2683,6 @@ "fastq": "^1.6.0" } }, - "@rahagia/eslint-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rahagia/eslint-config/-/eslint-config-1.0.1.tgz", - "integrity": "sha512-B6QDilr3U9Ba8iG/9L06jlg67oSShhAo6NEneuaE89klTpPq79dcSzRrAF2HbnIFKPzQIg3EmRgLqzGhjGt2Ow==", - "dev": true, - "requires": {} - }, "@sapphire/async-queue": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", diff --git a/package.json b/package.json index 90fadd9a2..93c350478 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": "@rahagia/eslint-config/typescript", + "extends": "@cyteliz/eslint-config/typescript", "rules": { "@typescript-eslint/no-extra-parens": "off" } @@ -42,7 +42,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@rahagia/eslint-config": "^1.0.1", + "@cyteliz/eslint-config": "^1.0.0", "@types/i18n": "^0.13.2", "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", From 8a332fc30d7497776eb7a920e6607c29829d31a4 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 4 May 2022 02:36:05 +0900 Subject: [PATCH 275/411] feat(EvalCommand): add support for evaluating code using triple backticks codeblock --- src/commands/developers/EvalCommand.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index 6fce49086..79455384a 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -20,11 +20,15 @@ export class EvalCommand extends BaseCommand { const msg = ctx; const client = this.client; + const code = ctx.args.join(" ") + .replace( + /^\s*\n?(```(?:[^\s]+\n)?(.*?)```|.*)$/s, + (_, a: string, b) => a.startsWith("```") ? b : a + ); const embed = createEmbed("info") - .addField("Input", `\`\`\`js\n${ctx.args.join(" ")}\`\`\``); + .addField("Input", `\`\`\`js\n${code}\`\`\``); try { - const code = ctx.args.join(" "); if (!code) { return await ctx.send({ embeds: [createEmbed("error", i18n.__("commands.developers.eval.noCode"), true)] From adc976ad7bd8bf924d698fc4b0445812f373d818 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 May 2022 19:18:37 +0700 Subject: [PATCH 276/411] chore(deps): bump @swc/core from 1.2.173 to 1.2.177 (#893) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.173 to 1.2.177. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.173...v1.2.177) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index ad91bcc33..8f7ff4c29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.173", + "@swc/core": "^1.2.177", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.173.tgz", - "integrity": "sha512-scTnWQMxaCN4BCi/IZbqBL8W+ce/Mx7b1hx/xp5EXu1T4hayDhOemq0LsUeeDxHi9xMgR/1hidqa9M6FWXXV+A==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", + "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.173", - "@swc/core-android-arm64": "1.2.173", - "@swc/core-darwin-arm64": "1.2.173", - "@swc/core-darwin-x64": "1.2.173", - "@swc/core-freebsd-x64": "1.2.173", - "@swc/core-linux-arm-gnueabihf": "1.2.173", - "@swc/core-linux-arm64-gnu": "1.2.173", - "@swc/core-linux-arm64-musl": "1.2.173", - "@swc/core-linux-x64-gnu": "1.2.173", - "@swc/core-linux-x64-musl": "1.2.173", - "@swc/core-win32-arm64-msvc": "1.2.173", - "@swc/core-win32-ia32-msvc": "1.2.173", - "@swc/core-win32-x64-msvc": "1.2.173" + "@swc/core-android-arm-eabi": "1.2.177", + "@swc/core-android-arm64": "1.2.177", + "@swc/core-darwin-arm64": "1.2.177", + "@swc/core-darwin-x64": "1.2.177", + "@swc/core-freebsd-x64": "1.2.177", + "@swc/core-linux-arm-gnueabihf": "1.2.177", + "@swc/core-linux-arm64-gnu": "1.2.177", + "@swc/core-linux-arm64-musl": "1.2.177", + "@swc/core-linux-x64-gnu": "1.2.177", + "@swc/core-linux-x64-musl": "1.2.177", + "@swc/core-win32-arm64-msvc": "1.2.177", + "@swc/core-win32-ia32-msvc": "1.2.177", + "@swc/core-win32-x64-msvc": "1.2.177" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.173.tgz", - "integrity": "sha512-8ZfP3xrMhMbUznEAuJz8gy+Y+SLYQswuirclHv72VGhT01198dnb70dxokIDolZPp9SKfHtPtj6fHTXl6cenaA==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", + "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.173.tgz", - "integrity": "sha512-3JwPSZLlRdJrgHxqzRDtoNWWO72FnB0O99M0hpWIqeKtT+JjAsjnWpG8AQVSR6K6umgMCOa+6BdbFvDp7fVViw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", + "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.173.tgz", - "integrity": "sha512-ygshqTlu+nyf9URH6nvRxQcCwVbECvCsBqcwb/xQQLAGh/t6FIwjGwisjTJ8or1StoDmC3n4yamTJ9duSU95AQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", + "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.173.tgz", - "integrity": "sha512-HLmBvQKpLfCu4WZ9+h6DszPy5gid1VmuTjqh4Q3fHS7EaKOs7Bk7NtMbxlJzliir++tLt3xPIEUlzM1pl6QZkQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", + "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.173.tgz", - "integrity": "sha512-XpI+Cn+yr9HeWo6NH3vmna++UQQUGuq8S9T6CmoYOAm1ApneQeOoJQy259C9bMD2AiXWIMJtvULMbm+EO+A+jQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", + "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.173.tgz", - "integrity": "sha512-8imFCNXb4pX+unPxKCJZMelPBh/WY7Kx2O11X9cpuxRcmVpZsodJPscreJJrTaAliq88feIox+V6k6oWlIzTCw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", + "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.173.tgz", - "integrity": "sha512-PhK0etjVWM29L8mjDcu6tBSWjexL/f0uta6nxPh44DrofxBKandvgKW6EcFekZDx1QFa2vy0aqb+JUV52tDRlw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", + "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.173.tgz", - "integrity": "sha512-uOq8skOvDBycQWloYixp4Ml+ZQl8YyR1WwVtuuHPXNxV0eMn3eryGpqezqMzBFkadRIKLREdnGfIiG5/oZiGlw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", + "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.173.tgz", - "integrity": "sha512-0jCfUFOxSAGEVRPHziCIPxD0zMmMRvYKK8PkdWMvPG2DKi4ITI/wRq+4sGj87dLHWybXhtolu/ceErMWv5L+kw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", + "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.173.tgz", - "integrity": "sha512-qL/Cb813U7hEXPpqd+O2W0HhcW2TpettQBlb99wyjCfVe0I2eg+S83cg6SV7tSmDRJ5SCezxNcbrnBZjqOw/MA==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", + "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.173.tgz", - "integrity": "sha512-ik9pmhc/Jt0Q/JDPj65fJr2S4eNuwipLdDkfc5C/CvWKWSFPuDoxIThPc26vExF+RnaAh3qk/jbsgc2SeD48wg==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", + "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.173.tgz", - "integrity": "sha512-l68d516QiVCAmJzFKHO7o3PSDXopaDCRlHdXcOUIM6OFyNsdKV2cJ3NeDrbCLEIUPeeH1tdtfV6yHlvmEOEPew==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", + "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.173.tgz", - "integrity": "sha512-gnNI474ZjmHCN1Swtu86URrznnTYM7P6HCvk8ls5mzeDoDCD8qnXz0APWXRM+Rv56C8xYjro9pKbzCP1MYiwwQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", + "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", "cpu": [ "x64" ], @@ -2705,101 +2705,101 @@ } }, "@swc/core": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.173.tgz", - "integrity": "sha512-scTnWQMxaCN4BCi/IZbqBL8W+ce/Mx7b1hx/xp5EXu1T4hayDhOemq0LsUeeDxHi9xMgR/1hidqa9M6FWXXV+A==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", + "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", "requires": { - "@swc/core-android-arm-eabi": "1.2.173", - "@swc/core-android-arm64": "1.2.173", - "@swc/core-darwin-arm64": "1.2.173", - "@swc/core-darwin-x64": "1.2.173", - "@swc/core-freebsd-x64": "1.2.173", - "@swc/core-linux-arm-gnueabihf": "1.2.173", - "@swc/core-linux-arm64-gnu": "1.2.173", - "@swc/core-linux-arm64-musl": "1.2.173", - "@swc/core-linux-x64-gnu": "1.2.173", - "@swc/core-linux-x64-musl": "1.2.173", - "@swc/core-win32-arm64-msvc": "1.2.173", - "@swc/core-win32-ia32-msvc": "1.2.173", - "@swc/core-win32-x64-msvc": "1.2.173" + "@swc/core-android-arm-eabi": "1.2.177", + "@swc/core-android-arm64": "1.2.177", + "@swc/core-darwin-arm64": "1.2.177", + "@swc/core-darwin-x64": "1.2.177", + "@swc/core-freebsd-x64": "1.2.177", + "@swc/core-linux-arm-gnueabihf": "1.2.177", + "@swc/core-linux-arm64-gnu": "1.2.177", + "@swc/core-linux-arm64-musl": "1.2.177", + "@swc/core-linux-x64-gnu": "1.2.177", + "@swc/core-linux-x64-musl": "1.2.177", + "@swc/core-win32-arm64-msvc": "1.2.177", + "@swc/core-win32-ia32-msvc": "1.2.177", + "@swc/core-win32-x64-msvc": "1.2.177" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.173.tgz", - "integrity": "sha512-8ZfP3xrMhMbUznEAuJz8gy+Y+SLYQswuirclHv72VGhT01198dnb70dxokIDolZPp9SKfHtPtj6fHTXl6cenaA==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", + "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.173.tgz", - "integrity": "sha512-3JwPSZLlRdJrgHxqzRDtoNWWO72FnB0O99M0hpWIqeKtT+JjAsjnWpG8AQVSR6K6umgMCOa+6BdbFvDp7fVViw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", + "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.173.tgz", - "integrity": "sha512-ygshqTlu+nyf9URH6nvRxQcCwVbECvCsBqcwb/xQQLAGh/t6FIwjGwisjTJ8or1StoDmC3n4yamTJ9duSU95AQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", + "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.173.tgz", - "integrity": "sha512-HLmBvQKpLfCu4WZ9+h6DszPy5gid1VmuTjqh4Q3fHS7EaKOs7Bk7NtMbxlJzliir++tLt3xPIEUlzM1pl6QZkQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", + "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.173.tgz", - "integrity": "sha512-XpI+Cn+yr9HeWo6NH3vmna++UQQUGuq8S9T6CmoYOAm1ApneQeOoJQy259C9bMD2AiXWIMJtvULMbm+EO+A+jQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", + "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.173.tgz", - "integrity": "sha512-8imFCNXb4pX+unPxKCJZMelPBh/WY7Kx2O11X9cpuxRcmVpZsodJPscreJJrTaAliq88feIox+V6k6oWlIzTCw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", + "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.173.tgz", - "integrity": "sha512-PhK0etjVWM29L8mjDcu6tBSWjexL/f0uta6nxPh44DrofxBKandvgKW6EcFekZDx1QFa2vy0aqb+JUV52tDRlw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", + "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.173.tgz", - "integrity": "sha512-uOq8skOvDBycQWloYixp4Ml+ZQl8YyR1WwVtuuHPXNxV0eMn3eryGpqezqMzBFkadRIKLREdnGfIiG5/oZiGlw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", + "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.173.tgz", - "integrity": "sha512-0jCfUFOxSAGEVRPHziCIPxD0zMmMRvYKK8PkdWMvPG2DKi4ITI/wRq+4sGj87dLHWybXhtolu/ceErMWv5L+kw==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", + "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.173.tgz", - "integrity": "sha512-qL/Cb813U7hEXPpqd+O2W0HhcW2TpettQBlb99wyjCfVe0I2eg+S83cg6SV7tSmDRJ5SCezxNcbrnBZjqOw/MA==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", + "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.173.tgz", - "integrity": "sha512-ik9pmhc/Jt0Q/JDPj65fJr2S4eNuwipLdDkfc5C/CvWKWSFPuDoxIThPc26vExF+RnaAh3qk/jbsgc2SeD48wg==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", + "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.173.tgz", - "integrity": "sha512-l68d516QiVCAmJzFKHO7o3PSDXopaDCRlHdXcOUIM6OFyNsdKV2cJ3NeDrbCLEIUPeeH1tdtfV6yHlvmEOEPew==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", + "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.173", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.173.tgz", - "integrity": "sha512-gnNI474ZjmHCN1Swtu86URrznnTYM7P6HCvk8ls5mzeDoDCD8qnXz0APWXRM+Rv56C8xYjro9pKbzCP1MYiwwQ==", + "version": "1.2.177", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", + "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 93c350478..de3f341a6 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.173", + "@swc/core": "^1.2.177", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 20430940415e255b98e11f4a501aa34477f9c103 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sun, 8 May 2022 18:02:10 +0700 Subject: [PATCH 277/411] chore(deps-dev): change @cyteliz/eslint-config to @clytage-pkg/eslint-config --- package-lock.json | 108 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f7ff4c29..f341198ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@cyteliz/eslint-config": "^1.0.0", + "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", @@ -40,15 +40,15 @@ "play-dl": "^1.9.4" } }, - "node_modules/@cyteliz/eslint-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@cyteliz/eslint-config/-/eslint-config-1.0.0.tgz", - "integrity": "sha512-yFtBjqen0d5MF3+j9aM3SiVwNzWktUuCN86oK4Xz5f5AKAm3gcLvClnvIzxzt35X3504HNxvvYHXmPiVmnI2AA==", + "node_modules/@clytage-pkg/eslint-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.1.tgz", + "integrity": "sha512-kRD4Lxwm3OkASKkUJsKk1Iz/aOkK4uaSDfRmkdzQfHjBz8xn0HgidnfvbwDxummQHhkLKxHEt+SVUw8p4F2k9g==", "dev": true, "peerDependencies": { "@typescript-eslint/eslint-plugin": ">=5.18.0", "@typescript-eslint/parser": ">=5.18.0", - "eslint": ">=8.13.0", + "eslint": ">=8.15.0", "typescript": ">=3.3.1 <4.7.0" }, "peerDependenciesMeta": { @@ -110,19 +110,19 @@ "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" }, "node_modules/@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { @@ -767,9 +767,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1180,12 +1180,12 @@ } }, "node_modules/eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -1196,7 +1196,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1212,7 +1212,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -1303,13 +1303,13 @@ } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1902,9 +1902,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -2543,10 +2543,10 @@ } }, "dependencies": { - "@cyteliz/eslint-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@cyteliz/eslint-config/-/eslint-config-1.0.0.tgz", - "integrity": "sha512-yFtBjqen0d5MF3+j9aM3SiVwNzWktUuCN86oK4Xz5f5AKAm3gcLvClnvIzxzt35X3504HNxvvYHXmPiVmnI2AA==", + "@clytage-pkg/eslint-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.1.tgz", + "integrity": "sha512-kRD4Lxwm3OkASKkUJsKk1Iz/aOkK4uaSDfRmkdzQfHjBz8xn0HgidnfvbwDxummQHhkLKxHEt+SVUw8p4F2k9g==", "dev": true, "requires": {} }, @@ -2588,19 +2588,19 @@ } }, "@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, @@ -2984,9 +2984,9 @@ } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { @@ -3283,12 +3283,12 @@ "dev": true }, "eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3299,7 +3299,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3315,7 +3315,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -3377,13 +3377,13 @@ "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -3827,9 +3827,9 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" diff --git a/package.json b/package.json index de3f341a6..067770a20 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": "@cyteliz/eslint-config/typescript", + "extends": "@clytage-pkg/eslint-config/typescript", "rules": { "@typescript-eslint/no-extra-parens": "off" } @@ -42,7 +42,7 @@ "youtubei": "^0.0.1-rc.35" }, "devDependencies": { - "@cyteliz/eslint-config": "^1.0.0", + "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.30", "@typescript-eslint/eslint-plugin": "^5.21.0", From c90e939576b89143c640b0d52d02311072cab93c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 May 2022 11:04:07 +0000 Subject: [PATCH 278/411] chore(deps-dev): bump @types/node from 17.0.30 to 17.0.31 (#888) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.30 to 17.0.31. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f341198ed..0d323bc06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.30", + "@types/node": "^17.0.31", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", @@ -540,9 +540,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", - "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2847,9 +2847,9 @@ } }, "@types/node": { - "version": "17.0.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", - "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 067770a20..dc3170599 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.30", + "@types/node": "^17.0.31", "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", From cc315ca8b7f1d30866ef27438f16d91c3a3d9526 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 May 2022 11:06:10 +0000 Subject: [PATCH 279/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#890) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.21.0 to 5.22.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.22.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 258 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 226 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d323bc06..7561ac5f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", - "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", "typescript": "^4.5.5" @@ -583,14 +583,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", - "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz", + "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/type-utils": "5.21.0", - "@typescript-eslint/utils": "5.21.0", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/type-utils": "5.22.0", + "@typescript-eslint/utils": "5.22.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -615,6 +615,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", + "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.22.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "5.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", @@ -660,12 +707,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", - "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz", + "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.21.0", + "@typescript-eslint/utils": "5.22.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -726,15 +773,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", - "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz", + "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/typescript-estree": "5.21.0", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/typescript-estree": "5.22.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -749,6 +796,80 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", + "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", + "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.22.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", @@ -2889,20 +3010,48 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", - "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz", + "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/type-utils": "5.21.0", - "@typescript-eslint/utils": "5.21.0", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/type-utils": "5.22.0", + "@typescript-eslint/utils": "5.22.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" + } + }, + "@typescript-eslint/types": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", + "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/parser": { @@ -2928,12 +3077,12 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", - "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz", + "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.21.0", + "@typescript-eslint/utils": "5.22.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } @@ -2960,17 +3109,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", - "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz", + "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/typescript-estree": "5.21.0", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/typescript-estree": "5.22.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" + } + }, + "@typescript-eslint/types": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", + "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", + "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { diff --git a/package.json b/package.json index dc3170599..0ba716e6f 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", - "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.21.0", "eslint": "^8.14.0", "typescript": "^4.5.5" From 7f6ea7dbfe3104343da48f0237eebb3f85522d74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 May 2022 11:08:09 +0000 Subject: [PATCH 280/411] chore(deps-dev): bump @typescript-eslint/parser from 5.21.0 to 5.22.0 (#891) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.21.0 to 5.22.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.22.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 278 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 236 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7561ac5f9..888f0b1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", "@typescript-eslint/eslint-plugin": "^5.22.0", - "@typescript-eslint/parser": "^5.21.0", + "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", "typescript": "^4.5.5" }, @@ -615,62 +615,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", - "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz", + "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "5.22.0", "@typescript-eslint/types": "5.22.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", - "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/typescript-estree": "5.21.0", + "@typescript-eslint/typescript-estree": "5.22.0", "debug": "^4.3.2" }, "engines": { @@ -690,13 +643,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -733,9 +686,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -746,13 +699,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", - "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", + "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -796,64 +749,7 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", - "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.22.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", @@ -870,23 +766,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", - "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.21.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/acorn": { "version": "8.7.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", @@ -3024,56 +2903,28 @@ "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" - } - }, - "@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", - "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.22.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", - "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz", + "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.21.0", - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/typescript-estree": "5.21.0", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/typescript-estree": "5.22.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", - "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", + "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0" + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" } }, "@typescript-eslint/type-utils": { @@ -3088,19 +2939,19 @@ } }, "@typescript-eslint/types": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", - "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", + "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", - "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", + "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.21.0", - "@typescript-eslint/visitor-keys": "5.21.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3120,58 +2971,15 @@ "@typescript-eslint/typescript-estree": "5.22.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" - } - }, - "@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", - "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", - "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.22.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", - "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", + "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/types": "5.22.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index 0ba716e6f..570f96d13 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", "@typescript-eslint/eslint-plugin": "^5.22.0", - "@typescript-eslint/parser": "^5.21.0", + "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", "typescript": "^4.5.5" }, From a84c635685734e61b9483022851e90fbb2a7a9a6 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sun, 8 May 2022 18:33:00 +0700 Subject: [PATCH 281/411] chore: rename Cyteliz to Clytage, cyteliz.net to clytage.org --- .env_example | 2 +- README.md | 6 +++--- app.json | 6 +++--- package.json | 4 ++-- src/commands/developers/EvalCommand.ts | 4 ++-- src/commands/general/AboutCommand.ts | 2 +- src/commands/general/HelpCommand.ts | 6 +++--- src/commands/music/LyricsCommand.ts | 2 +- src/commands/music/NowPlayingCommand.ts | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.env_example b/.env_example index 9272612a3..d8333daa0 100644 --- a/.env_example +++ b/.env_example @@ -68,7 +68,7 @@ NODE_ENV="" #============================================================================== # OPTIONAL - Which youtube downloader do you want to use? -# For more information, see: https://github.com/Cyteliz/rawon/wiki/Stream-Strategy +# For more information, see: https://github.com/Clytage/rawon/wiki/Stream-Strategy # Example: STREAM_STRATEGY="yt-dlp" # Available: play-dl, yt-dlp # Default: yt-dlp diff --git a/README.md b/README.md index e8883dbec..ceae295b7 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ <a href="https://discord.com/oauth2/authorize?client_id=711712829031448637&permissions=53857345&scope=bot"><img src="https://img.shields.io/static/v1?label=Invite%20Me&message=Rawon%237022&plastic&color=5865F2&logo=discord"></a> <img src="https://badgen.net/badge/icon/typescript?icon=typescript&label"> -<a href="https://github.com/Cyteliz/rawon/actions?query=workflow%3A%22Lint+code+%26+compile+test%22"><img src="https://github.com/Cyteliz/rawon/workflows/Lint%20code%20&%20compile%20test/badge.svg" alt="CI Status" /></a> +<a href="https://github.com/Clytage/rawon/actions?query=workflow%3A%22Lint+code+%26+compile+test%22"><img src="https://github.com/Clytage/rawon/workflows/Lint%20code%20&%20compile%20test/badge.svg" alt="CI Status" /></a> ## Features - Interaction support. @@ -40,7 +40,7 @@ $ npm start ### Heroku You can host this bot to make it stay online on Heroku. -<a href="https://heroku.com/deploy?template=https://github.com/Cyteliz/rawon"><img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku"></a> +<a href="https://heroku.com/deploy?template=https://github.com/Clytage/rawon"><img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku"></a> ### Glitch You can use Glitch too for this project, featured with its code editor. @@ -53,7 +53,7 @@ You can use Glitch too for this project, featured with its code editor. 6. After specifying `.env`, open **Tools** > **Terminal** 7. Type `refresh`, and track the process from **Logs** -<a href="https://glitch.com/edit/#!/import/github/Cyteliz/rawon"><img src="https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg" alt="Remix on Glitch"></a> +<a href="https://glitch.com/edit/#!/import/github/Clytage/rawon"><img src="https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg" alt="Remix on Glitch"></a> ### Railway Railway provide $5 each month for you to use in free plan, it will stay online 24/7 as long as your usage does not exceed $5. diff --git a/app.json b/app.json index be01e7992..5d3d7a492 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "Rawon", "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "logo": "https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/rawon.png", + "logo": "https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/rawon.png", "env": { "DISCORD_TOKEN": { "description": "What is your Discord bot's token? | Example: NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd", @@ -108,8 +108,8 @@ "value": "no" } }, - "repository": "https://github.com/Cyteliz/rawon", - "website": "https://rawon.cyteliz.net", + "repository": "https://github.com/Clytage/rawon", + "website": "https://rawon.clytage.org", "formation": { "worker": { "quantity": 1, diff --git a/package.json b/package.json index 570f96d13..239afdae7 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "3.0.0-dev", "private": true, "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "repository": "https://github.com/Cyteliz/rawon", + "repository": "https://github.com/Clytage/rawon", "license": "BSD-3-Clause", - "author": "Cyteliz <admin@cyteliz.net>", + "author": "Clytage <admin@clytage.org>", "type": "module", "main": "index.js", "scripts": { diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index 79455384a..d26788a39 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -88,10 +88,10 @@ export class EvalCommand extends BaseCommand { } private async hastebin(text: string): Promise<string> { - const result = await this.client.request.post("https://bin.cyteliz.net/documents", { + const result = await this.client.request.post("https://bin.clytage.org/documents", { body: text }).json<{ key: string }>(); - return `https://bin.cyteliz.net/${result.key}`; + return `https://bin.clytage.org/${result.key}`; } } diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index d8830c464..1147e2f28 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -32,7 +32,7 @@ export class AboutCommand extends BaseCommand { [i18n.__("commands.general.about.ffmpegVersionString"), this.client.utils.getFFmpegVersion()], [i18n.__("commands.general.about.botVersionString"), BotVersion], [""], - [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/Cyteliz/rawon"] + [i18n.__("commands.general.about.sourceCodeString"), "https://github.com/Clytage/rawon"] ]; const value = createTable(values); diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 8b712b4a5..140d1b769 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -33,11 +33,11 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), - iconURL: "https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/info.png" }); private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://raw.githubusercontent.com/Cyteliz/rawon/main/.github/images/question_mark.png"); + .setThumbnail("https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/question_mark.png"); public async execute(ctx: CommandContext): Promise<Message | undefined> { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); @@ -143,7 +143,7 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), - iconURL: "https://raw.githubusercontent.com/Cyteliz/rawon/.github/images/info.png" + iconURL: "https://raw.githubusercontent.com/Clytage/rawon/.github/images/info.png" })] }, "editReply"); } diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 3b8dc39b3..78eec148e 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -55,7 +55,7 @@ export class LyricsCommand extends BaseCommand { }); } - const albumArt = data.album_art ?? "https://api.cyteliz.net/assets/images/icon.png"; + const albumArt = data.album_art ?? "https://api.clytage.org/assets/images/icon.png"; const pages: string[] = chunk(data.lyrics!, 2048); const embed = createEmbed("info", pages[0]) .setAuthor({ diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index 3b09efa38..f103dd243 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -33,7 +33,7 @@ export class NowPlayingCommand extends BaseCommand { song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue") - }`).setThumbnail(song?.thumbnail ?? "https://api.cyteliz.net/assets/images/icon.png"); + }`).setThumbnail(song?.thumbnail ?? "https://api.clytage.org/assets/images/icon.png"); } const buttons = new MessageActionRow() From 23bee48e01ca3da4875f3786a46169afbcc551ea Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 9 May 2022 01:14:06 +0900 Subject: [PATCH 282/411] chore(deps): update lockfile --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 888f0b1b6..96566f56f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From 80a74c50ba2c50b051c821b58342ca57fb17af0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 08:45:02 +0700 Subject: [PATCH 283/411] chore(deps): bump @swc/core from 1.2.177 to 1.2.179 (#894) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.177 to 1.2.179. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.177...v1.2.179) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 888f0b1b6..3710e04ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.177", + "@swc/core": "^1.2.179", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", @@ -268,9 +268,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", - "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.179.tgz", + "integrity": "sha512-B1O4acip37cNfMxKYG9Ptrrmcc3mcklFnSuRT9UtHr92Nq26o7omuturK0HCoKqLVReU05psfhDzx+K6H1tbNQ==", "bin": { "swcx": "run_swcx.js" }, @@ -282,25 +282,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.177", - "@swc/core-android-arm64": "1.2.177", - "@swc/core-darwin-arm64": "1.2.177", - "@swc/core-darwin-x64": "1.2.177", - "@swc/core-freebsd-x64": "1.2.177", - "@swc/core-linux-arm-gnueabihf": "1.2.177", - "@swc/core-linux-arm64-gnu": "1.2.177", - "@swc/core-linux-arm64-musl": "1.2.177", - "@swc/core-linux-x64-gnu": "1.2.177", - "@swc/core-linux-x64-musl": "1.2.177", - "@swc/core-win32-arm64-msvc": "1.2.177", - "@swc/core-win32-ia32-msvc": "1.2.177", - "@swc/core-win32-x64-msvc": "1.2.177" + "@swc/core-android-arm-eabi": "1.2.179", + "@swc/core-android-arm64": "1.2.179", + "@swc/core-darwin-arm64": "1.2.179", + "@swc/core-darwin-x64": "1.2.179", + "@swc/core-freebsd-x64": "1.2.179", + "@swc/core-linux-arm-gnueabihf": "1.2.179", + "@swc/core-linux-arm64-gnu": "1.2.179", + "@swc/core-linux-arm64-musl": "1.2.179", + "@swc/core-linux-x64-gnu": "1.2.179", + "@swc/core-linux-x64-musl": "1.2.179", + "@swc/core-win32-arm64-msvc": "1.2.179", + "@swc/core-win32-ia32-msvc": "1.2.179", + "@swc/core-win32-x64-msvc": "1.2.179" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", - "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.179.tgz", + "integrity": "sha512-86a0zDxgT+9xwakvAo14YmPF2H34i3nG/Vfq4WLXV5JRNQgylMIFMVWPMmCp4pRFeFnM+XunkepADoc9cxd7cg==", "cpu": [ "arm" ], @@ -313,9 +313,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", - "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.179.tgz", + "integrity": "sha512-Se+b84pXxQ9t+w5gAs+U8htxc/ry7xfGGpalo7+KSzH96rsQPcuBL2MIeOxrL/E68eVsUk5RF457FoAkCobI2A==", "cpu": [ "arm64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", - "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.179.tgz", + "integrity": "sha512-Jj0ZoIXpgt+/9a6GD/L68uuoMG4Lnq4wAp/n9gQQPw5CwiLuhZELPBqsrjfKVz/I/Iz24IbAJcEEZ3iaODaxdA==", "cpu": [ "arm64" ], @@ -343,9 +343,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", - "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.179.tgz", + "integrity": "sha512-GBF4BPFn170l1oZDBsNaZpiyPdyIXQmDOXtg8LGVFHvFire4n2jgjw/i6Fh4sefi1B+lc1LP6KmfOuMhLaBukg==", "cpu": [ "x64" ], @@ -358,9 +358,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", - "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.179.tgz", + "integrity": "sha512-2ooBzQ4iEyuXZLz6iTyu5YW4rKIOSxZbP6UbrFT8aX/FLypBktkeKyad+4WpXQNC5vRxks1VUKS9eNh2BvbWwA==", "cpu": [ "x64" ], @@ -373,9 +373,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", - "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.179.tgz", + "integrity": "sha512-Pf0r7eUYViCWnlTOx8LjceA3r+XGa0GXXEUfwLjQ8wZQUEhNN02hsCz6F2d9Q3WYkzNJVYXu87I6BUY+L9GWAQ==", "cpu": [ "arm" ], @@ -388,9 +388,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", - "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.179.tgz", + "integrity": "sha512-Dqx48DJvxI0r7yFCZkopOo8/AVNlep/05BYxXv7UzZSiJpiYS8pAGwuboeOJwF83aaW7hT4vx+HLUDvUTTfSWQ==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", - "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.179.tgz", + "integrity": "sha512-wHYvSsP/qTQwVJKBBK1duUvbySHYL7BL8ge+IcAEjTy62K38z0mPg9j2nSqeSldBi7y1foudbKqUA9qwoAC9oQ==", "cpu": [ "arm64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", - "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.179.tgz", + "integrity": "sha512-orVaK4BIa4qIW298uxvsKaeQLHqjZpxbaCATOnFibUBx2nX+P/MTHZm3WB1qgdmeKto8SEyFGkV8PAMcbFu5Rg==", "cpu": [ "x64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", - "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.179.tgz", + "integrity": "sha512-UG2zrpg5C0iq0BwSJpoxMgraM2jt9CItCRVaiZki7kg0wuIIdjwjXTOuf7XJ939WefLVrB0fu9uVKLfZAzuuxA==", "cpu": [ "x64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", - "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.179.tgz", + "integrity": "sha512-am0P4A/7gDrU/HlGthf2Ozxfm8/zduOdigMD/ynTgEv11+gwWVnmr+sVR1l83BnXp3H765/LoC2eu8UiAbjGHA==", "cpu": [ "arm64" ], @@ -463,9 +463,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", - "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.179.tgz", + "integrity": "sha512-Do7Y+nMhF3+0rFl6pmtQJ6DqCbliAHpSIKx/eC3NzspS4qPSddWwcLgajWl22ueouAj/79rx+FYUSRCNOHpjTg==", "cpu": [ "ia32" ], @@ -478,9 +478,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", - "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.179.tgz", + "integrity": "sha512-xA/pd6ri0eJ1bqQRT8h0xVa1wclFvLddp5mUhTEfxhtajrPkdriEUCoFOo4ySJhz86cjpTIoa81iq3XLpGQsMQ==", "cpu": [ "x64" ], @@ -2705,101 +2705,101 @@ } }, "@swc/core": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", - "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.179.tgz", + "integrity": "sha512-B1O4acip37cNfMxKYG9Ptrrmcc3mcklFnSuRT9UtHr92Nq26o7omuturK0HCoKqLVReU05psfhDzx+K6H1tbNQ==", "requires": { - "@swc/core-android-arm-eabi": "1.2.177", - "@swc/core-android-arm64": "1.2.177", - "@swc/core-darwin-arm64": "1.2.177", - "@swc/core-darwin-x64": "1.2.177", - "@swc/core-freebsd-x64": "1.2.177", - "@swc/core-linux-arm-gnueabihf": "1.2.177", - "@swc/core-linux-arm64-gnu": "1.2.177", - "@swc/core-linux-arm64-musl": "1.2.177", - "@swc/core-linux-x64-gnu": "1.2.177", - "@swc/core-linux-x64-musl": "1.2.177", - "@swc/core-win32-arm64-msvc": "1.2.177", - "@swc/core-win32-ia32-msvc": "1.2.177", - "@swc/core-win32-x64-msvc": "1.2.177" + "@swc/core-android-arm-eabi": "1.2.179", + "@swc/core-android-arm64": "1.2.179", + "@swc/core-darwin-arm64": "1.2.179", + "@swc/core-darwin-x64": "1.2.179", + "@swc/core-freebsd-x64": "1.2.179", + "@swc/core-linux-arm-gnueabihf": "1.2.179", + "@swc/core-linux-arm64-gnu": "1.2.179", + "@swc/core-linux-arm64-musl": "1.2.179", + "@swc/core-linux-x64-gnu": "1.2.179", + "@swc/core-linux-x64-musl": "1.2.179", + "@swc/core-win32-arm64-msvc": "1.2.179", + "@swc/core-win32-ia32-msvc": "1.2.179", + "@swc/core-win32-x64-msvc": "1.2.179" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", - "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.179.tgz", + "integrity": "sha512-86a0zDxgT+9xwakvAo14YmPF2H34i3nG/Vfq4WLXV5JRNQgylMIFMVWPMmCp4pRFeFnM+XunkepADoc9cxd7cg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", - "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.179.tgz", + "integrity": "sha512-Se+b84pXxQ9t+w5gAs+U8htxc/ry7xfGGpalo7+KSzH96rsQPcuBL2MIeOxrL/E68eVsUk5RF457FoAkCobI2A==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", - "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.179.tgz", + "integrity": "sha512-Jj0ZoIXpgt+/9a6GD/L68uuoMG4Lnq4wAp/n9gQQPw5CwiLuhZELPBqsrjfKVz/I/Iz24IbAJcEEZ3iaODaxdA==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", - "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.179.tgz", + "integrity": "sha512-GBF4BPFn170l1oZDBsNaZpiyPdyIXQmDOXtg8LGVFHvFire4n2jgjw/i6Fh4sefi1B+lc1LP6KmfOuMhLaBukg==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", - "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.179.tgz", + "integrity": "sha512-2ooBzQ4iEyuXZLz6iTyu5YW4rKIOSxZbP6UbrFT8aX/FLypBktkeKyad+4WpXQNC5vRxks1VUKS9eNh2BvbWwA==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", - "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.179.tgz", + "integrity": "sha512-Pf0r7eUYViCWnlTOx8LjceA3r+XGa0GXXEUfwLjQ8wZQUEhNN02hsCz6F2d9Q3WYkzNJVYXu87I6BUY+L9GWAQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", - "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.179.tgz", + "integrity": "sha512-Dqx48DJvxI0r7yFCZkopOo8/AVNlep/05BYxXv7UzZSiJpiYS8pAGwuboeOJwF83aaW7hT4vx+HLUDvUTTfSWQ==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", - "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.179.tgz", + "integrity": "sha512-wHYvSsP/qTQwVJKBBK1duUvbySHYL7BL8ge+IcAEjTy62K38z0mPg9j2nSqeSldBi7y1foudbKqUA9qwoAC9oQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", - "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.179.tgz", + "integrity": "sha512-orVaK4BIa4qIW298uxvsKaeQLHqjZpxbaCATOnFibUBx2nX+P/MTHZm3WB1qgdmeKto8SEyFGkV8PAMcbFu5Rg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", - "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.179.tgz", + "integrity": "sha512-UG2zrpg5C0iq0BwSJpoxMgraM2jt9CItCRVaiZki7kg0wuIIdjwjXTOuf7XJ939WefLVrB0fu9uVKLfZAzuuxA==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", - "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.179.tgz", + "integrity": "sha512-am0P4A/7gDrU/HlGthf2Ozxfm8/zduOdigMD/ynTgEv11+gwWVnmr+sVR1l83BnXp3H765/LoC2eu8UiAbjGHA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", - "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.179.tgz", + "integrity": "sha512-Do7Y+nMhF3+0rFl6pmtQJ6DqCbliAHpSIKx/eC3NzspS4qPSddWwcLgajWl22ueouAj/79rx+FYUSRCNOHpjTg==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", - "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", + "version": "1.2.179", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.179.tgz", + "integrity": "sha512-xA/pd6ri0eJ1bqQRT8h0xVa1wclFvLddp5mUhTEfxhtajrPkdriEUCoFOo4ySJhz86cjpTIoa81iq3XLpGQsMQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 239afdae7..146f59cdb 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.177", + "@swc/core": "^1.2.179", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.0", From 88378116f6d8b61ea416874af91caa6d72315c2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 02:07:21 +0000 Subject: [PATCH 284/411] chore(deps-dev): bump typescript from 4.5.5 to 4.6.4 (#886) * chore(deps-dev): bump typescript from 4.5.5 to 4.6.4 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.5 to 4.6.4. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.5...v4.6.4) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * fix(ServerQueue): just ignore this compiler error Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mzrtamp <mozartrafikt@gmail.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- src/structures/ServerQueue.ts | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3710e04ae..9f3555049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", - "typescript": "^4.5.5" + "typescript": "^4.6.4" }, "engines": { "node": ">=16.6.0" @@ -2432,9 +2432,9 @@ } }, "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4182,9 +4182,9 @@ "dev": true }, "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "dev": true }, "uri-js": { diff --git a/package.json b/package.json index 146f59cdb..47398f82d 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", - "typescript": "^4.5.5" + "typescript": "^4.6.4" }, "engines": { "node": ">=16.6.0" diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index 8585a42b7..a45bbf032 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -38,6 +38,7 @@ export class ServerQueue { } }); + // @ts-expect-error: Ignore a compile error due to typed emitter error this.player.on("stateChange", (oldState, newState) => { if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { newState.resource.volume?.setVolumeLogarithmic(this.volume / 100); From 3dfcbc96584f0365ad55f96ce8fa21d833456855 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Mon, 9 May 2022 09:15:11 +0700 Subject: [PATCH 285/411] chore(readme): forget to update the railway url as well --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ceae295b7..30d532329 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 **IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. -<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FCyteliz%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" +<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FClytage%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> ## Project Maintainer From d528dd937fd29992d906373f9468b2256dd1bc98 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Mon, 9 May 2022 09:15:45 +0700 Subject: [PATCH 286/411] chore: final change RB Project to Clytage --- LICENSE | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index fa094f16b..18e53369d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2022, RB Project +Copyright (c) 2022, Clytage All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 30d532329..1c48a113a 100644 --- a/README.md +++ b/README.md @@ -70,4 +70,4 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 ## Disclaimers Disclaimers are listed on the [DISCLAIMERS.md](./DISCLAIMERS.md) file. -> © 2022 RB Project +> © 2022 Clytage From 45565a9e30c05099a55b38a06c67e445cd02fddf Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Mon, 9 May 2022 09:22:16 +0700 Subject: [PATCH 287/411] chore(funding): update details --- .github/FUNDING.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index aa4b60560..e4b01b94a 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -patreon: mozartrafi -custom: ["https://paypal.me/mozartrafi"] +patreon: clytage +custom: ["https://paypal.me/clytage", "https://karyakarsa.com/clytage"] From a1099edf8056590ba8dd981454dc80b20e603301 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Mon, 9 May 2022 23:36:40 +0900 Subject: [PATCH 288/411] chore(PlayCommand): remove pointless linter ignore --- src/commands/music/PlayCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 0a0dba478..6e506efa5 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -47,7 +47,7 @@ export class PlayCommand extends BaseCommand { return handleVideos(this.client, ctx, toQueue, voiceChannel); } - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const query = ( ctx.args.join(" ") || ctx.options?.getString("query") ) ?? ( From f1e41605a4aded7cc723938037538593bfab6b10 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 00:36:13 +0900 Subject: [PATCH 289/411] fix(SpotifyUtil): fix error while fetching playlist with more than 100 songs --- src/utils/handlers/SpotifyUtil.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index 8f31b5bae..e3afb1289 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -53,9 +53,9 @@ export class SpotifyUtil { headers: { Authorization: this.token } - }).json<SpotifyPlaylist>(); - next = nextPlaylistResponse.tracks.next; - playlistResponse.tracks.items.push(...nextPlaylistResponse.tracks.items); + }).json<SpotifyPlaylist["tracks"]>(); + next = nextPlaylistResponse.next; + playlistResponse.tracks.items.push(...nextPlaylistResponse.items); } return playlistResponse.tracks.items; } From 546cfd4232156b98b13d6924859e4f5cc7dd71bd Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:56:57 +0900 Subject: [PATCH 290/411] feat(ChannelUpdateEvent): add debug log --- src/events/ChannelUpdateEvent.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index ce860fa67..8e3957cd3 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -8,6 +8,11 @@ import i18n from "i18n"; @Event("channelUpdate") export class ChannelUpdateEvent extends BaseEvent { public async execute(oldChannel: GuildChannel, newChannel: GuildChannel): Promise<void> { + this.client.debugLog.logData("info", "CHANNEL_UPDATE_EVENT", [ + ["Channel", `${newChannel.name}(${newChannel.id})`], + ["Type", newChannel.type] + ]); + if (!newChannel.guild.queue || newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || From e159004bc5a6070e3c5837d2779303a7c002d769 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:57:12 +0900 Subject: [PATCH 291/411] feat(GuildBanAddEvent): add debug log --- src/events/GuildBanAddEvent.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/events/GuildBanAddEvent.ts b/src/events/GuildBanAddEvent.ts index 8733cf233..2e192152f 100644 --- a/src/events/GuildBanAddEvent.ts +++ b/src/events/GuildBanAddEvent.ts @@ -5,6 +5,12 @@ import { GuildBan } from "discord.js"; @Event("guildBanAdd") export class GuildBanAddEvent extends BaseEvent { public execute(ban: GuildBan): void { + this.client.debugLog.logData("info", "GUILD_BAN_ADD", [ + ["User", `${ban.user.tag}(${ban.user.id})`], + ["Guild", `${ban.guild.name}(${ban.guild.id})`], + ["Reason", ban.reason ?? "[No Reason Provided]"] + ]); + void this.client.modlogs.handleBanAdd(ban); } } From 4c713adbb8c62681d913140f80aa9f1c99694abc Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:58:44 +0900 Subject: [PATCH 292/411] feat(GuildBanRemoveEvent): add debug log --- src/events/GuildBanRemoveEvent.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/events/GuildBanRemoveEvent.ts b/src/events/GuildBanRemoveEvent.ts index ee054f2b1..720237170 100644 --- a/src/events/GuildBanRemoveEvent.ts +++ b/src/events/GuildBanRemoveEvent.ts @@ -5,6 +5,12 @@ import { GuildBan } from "discord.js"; @Event("guildBanRemove") export class GuildBanRemoveEvent extends BaseEvent { public execute(ban: GuildBan): void { + this.client.debugLog.logData("info", "GUILD_BAN_REMOVE", [ + ["User", `${ban.user.tag}(${ban.user.id})`], + ["Guild", `${ban.guild.name}(${ban.guild.id})`], + ["Reason", ban.reason ?? "[No Reason Provided]"] + ]); + void this.client.modlogs.handleBanRemove(ban); } } From 2f0ea2fe4deb22744a423528a6ba48ac1158f0af Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:59:04 +0900 Subject: [PATCH 293/411] feat(InteractionCreateEvent): add debug log --- src/events/InteractionCreateEvent.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index 1eb763b47..5cc79e5de 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -3,11 +3,34 @@ import { createEmbed } from "../utils/functions/createEmbed"; import { BaseEvent } from "../structures/BaseEvent"; import { Event } from "../utils/decorators/Event"; import i18n from "../config"; -import { BitFieldResolvable, Interaction, Permissions, PermissionString } from "discord.js"; +import { BitFieldResolvable, Interaction, Permissions, PermissionString, TextChannel } from "discord.js"; @Event("interactionCreate") export class InteractionCreateEvent extends BaseEvent { public async execute(interaction: Interaction): Promise<void> { + this.client.debugLog.logData("info", "INTERACTION_CREATE", [ + [ + "Type", + interaction.type + ], + [ + "Guild", + interaction.inGuild() + ? `${interaction.guild?.name ?? "[???]"}(${interaction.guildId})` + : "DM" + ], + [ + "Channel", + (interaction.channel?.type ?? "DM") === "DM" + ? "DM" + : `${(interaction.channel as TextChannel).name}(${(interaction.channel as TextChannel).id})` + ], + [ + "User", + `${interaction.user.tag}(${interaction.user.id})` + ] + ]); + if (!interaction.inGuild() || !this.client.commands.isReady) return; if (interaction.isButton()) { From 1079a6e9ffab1d2edae3964491a00ae155b34d1c Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:59:39 +0900 Subject: [PATCH 294/411] feat(MessageCreateEvent): add debug log --- src/events/MessageCreateEvent.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index 399e03f9a..943be4525 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -7,6 +7,13 @@ import { Message, User } from "discord.js"; @Event<typeof MessageCreateEvent>("messageCreate") export class MessageCreateEvent extends BaseEvent { public execute(message: Message): Message | undefined { + this.client.debugLog.logData("info", "MESSAGE_CREATE", [ + ["ID", message.id], + ["Guild", message.guild ? `${message.guild.name}(${message.guild.id})` : "DM"], + ["Channel", message.channel.type === "DM" ? "DM" : `${message.channel.name}(${message.channel.id})`], + ["Author", `${message.author.tag}(${message.author.id})`] + ]); + if (message.author.bot || message.channel.type === "DM" || !this.client.commands.isReady) return message; From d1d49bdfd5d1640f12692036b50a1a2d5a1cef49 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 01:59:53 +0900 Subject: [PATCH 295/411] feat(VoiceStateUpdateEvent): add debug log --- src/events/VoiceStateUpdateEvent.ts | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index f2d6944e7..7f2976fc8 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -11,6 +11,38 @@ import { Message, StageChannel, VoiceState, VoiceChannel } from "discord.js"; @Event<typeof VoiceStateUpdateEvent>("voiceStateUpdate") export class VoiceStateUpdateEvent extends BaseEvent { public async execute(oldState: VoiceState, newState: VoiceState): Promise<Message | undefined> { + if (this.client.config.debugMode) { + const oldCh = oldState.channel ? `${oldState.channel.name}(${oldState.channel.id})` : "Not connected"; + const newCh = newState.channel ? `${newState.channel.name}(${newState.channel.id})` : "Not connected"; + const chDiff = oldState.channel?.id === newState.channel?.id ? [] : [["Channel", `${oldCh} -> ${newCh}`]]; + + const oldServM = oldState.serverMute ? "Muted" : "Unmuted"; + const newServM = newState.serverMute ? "Muted" : "Unmuted"; + const servMute = oldServM === newServM ? [] : [["Server Mute", `${oldServM} -> ${newServM}`]]; + + const oldSelfM = oldState.selfMute ? "Muted" : "Unmuted"; + const newSelfM = newState.selfMute ? "Muted" : "Unmuted"; + const selfMute = oldSelfM === newSelfM ? [] : [["Self Mute", `${oldSelfM} -> ${newSelfM}`]]; + + const oldServD = oldState.serverDeaf ? "Deaf" : "Undeaf"; + const newServD = newState.serverDeaf ? "Deaf" : "Undeaf"; + const servDeaf = oldServD === newServD ? [] : [["Server Deaf", `${oldServD} -> ${newServD}`]]; + + const oldSelfD = oldState.selfDeaf ? "Deaf" : "Undeaf"; + const newSelfD = newState.selfDeaf ? "Deaf" : "Undeaf"; + const selfDeaf = oldSelfD === newSelfD ? [] : [["Self Deaf", `${oldSelfD} -> ${newSelfD}`]]; + + this.client.debugLog.logData("info", "VOICE_STATE_UPDATE", [ + ["Guild", `${oldState.guild.name}(${oldState.guild.id})`], + ["User", oldState.member ? `${oldState.member.user.tag}(${oldState.member.user.id})` : "[???]"], + ...chDiff, + ...servMute, + ...selfMute, + ...servDeaf, + ...selfDeaf + ]); + } + const queue = newState.guild.queue; if (!queue) return; From 8a3bea7471fc660df4e60cab24101697676c1e30 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 02:00:21 +0900 Subject: [PATCH 296/411] feat(Rawon): add debug log for request library --- src/structures/Rawon.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index cd77e7475..8631070df 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -26,7 +26,31 @@ export class Rawon extends Client { public readonly spotify = new SpotifyUtil(this); public readonly utils = new ClientUtils(this); public readonly soundcloud = soundcloud; - public readonly request = got; + public readonly request = got.extend({ + hooks: { + beforeError: [ + error => { + this.debugLog.logData("error", "GOT_REQUEST", [ + ["URL", error.options.url?.toString() ?? "[???]"], + ["Code", error.code], + ["Response", error.response?.rawBody.toString("ascii") ?? "[???]"] + ]); + + return error; + } + ], + beforeRequest: [ + options => { + this.debugLog.logData("info", "GOT_REQUEST", [ + ["URL", options.url?.toString() ?? "[???]"], + ["Method", options.method], + ["Encoding", options.encoding ?? "UTF-8"], + ["Agent", options.agent.http ? "HTTP" : "HTTPS"] + ]); + } + ] + } + }); public constructor(opt: ClientOptions) { super(opt); } From b518f950ff5447292eb46eda7c0c226153dffc42 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 02:01:26 +0900 Subject: [PATCH 297/411] feat(CommandManager): add debug log on message handler --- src/utils/structures/CommandManager.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index befe2bfe3..6a0ce5c58 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -121,6 +121,13 @@ export class CommandManager extends Collection<string, CommandComponent> { const cmd = args.shift()?.toLowerCase(); const command = this.get(cmd!) ?? this.get(this.aliases.get(cmd!)!); + this.client.debugLog.logData("info", "COMMAND_MANAGER_HANDLE", [ + ["Content", message.content], + ["Prefix", pref], + ["Cmd Name", cmd ?? "[???]"], + ["Is Command", command === undefined ? "No" : "Yes"] + ]); + if (!command || command.meta.disable) return; if (!this.cooldowns.has(command.meta.name)) this.cooldowns.set(command.meta.name, new Collection()); From 7e161c017e4209092c84ba3d724dcf9a7e089c2b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Tue, 10 May 2022 02:02:19 +0900 Subject: [PATCH 298/411] feat(DebugLogManager): add line break between messages --- src/utils/structures/DebugLogManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/structures/DebugLogManager.ts b/src/utils/structures/DebugLogManager.ts index 4f2922b53..df6f71c47 100644 --- a/src/utils/structures/DebugLogManager.ts +++ b/src/utils/structures/DebugLogManager.ts @@ -17,6 +17,6 @@ export class DebugLogManager extends BaseLogger { messages.push(data); } - this.log(messages, level); + this.log([`${messages.join("\n")}\n`], level); } } From bc28b759bffd14b81bf6be3e539b77da321d19d7 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:07:09 +0900 Subject: [PATCH 299/411] feat: create dev.env_example file --- dev.env_example | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 dev.env_example diff --git a/dev.env_example b/dev.env_example new file mode 100644 index 000000000..eb5404b94 --- /dev/null +++ b/dev.env_example @@ -0,0 +1,30 @@ +# This is the configuration file for dev options. All options here are optional. +# Intended to be used for developers who want to extend their experience with the bot. +# If you're just a regular user (not a developer), you probably don't need to edit this file. + +#============================================================================== +# MULTIPLE - What are the IDs of the bot developers? +# Example: DEVS="390045370240991234, 366169273485361153" +DEVS="" + +#============================================================================== +# In which mode do you want to activate your bot? +# Example: NODE_ENV="production" +# Available: production, development +# Default: production +NODE_ENV="" + +#============================================================================== +# Do you want to enable Debug Mode? +# This mode will print all information (such as raw event data, queue changes, etc) on the console. +# Example: DEBUG_MODE="no" +# Default: no +DEBUG_MODE="" + +#============================================================================== +# Do you want to enable REPL feature? +# You can evaluate code from the console using this feature. +# REPL included with "shardManager" variable containing the ShardManager of the bot. +# Example: REPL="no" +# Default: no +REPL="" From 51f1d29319755a31e5069486d381616d1505e38b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:07:29 +0900 Subject: [PATCH 300/411] chore(git): ignore 'dev.env' file --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 37b46dd04..98cca99b3 100644 --- a/.gitignore +++ b/.gitignore @@ -69,7 +69,7 @@ dist/ # dotenv environment variables file .env -.env +dev.env .prod.env # parcel-bundler cache (https://parceljs.org/) From 175909717a8df8889353c7a7ce6723da753a40bf Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:07:56 +0900 Subject: [PATCH 301/411] chore(env_example): move dev options and change 'DEV_GUILD' to 'MAIN_GUILD' --- .env_example | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/.env_example b/.env_example index d8333daa0..f08141c40 100644 --- a/.env_example +++ b/.env_example @@ -1,9 +1,11 @@ # This is your bot's configuration file, control your bot's environment here. Every value must contains a string ("") +# Note: if you're looking for the dev options, please go to the dev.env file + #============================================================================== # OPTIONAL = This value is optional, and can be left blank. # IMPORTANT = It is recommended that you pay attention to the value. # MULTIPLE - This value can be multiple string, each value splitted with comma or semi-colon. You can use single-quote (') to escape whether you have any comma or semicolon in the value. -# DEV - Leave blank, this value is not recommended to modify, except if you know what you are doing. + #============================================================================== # IMPORTANT - What is your Discord bot's token? # Example: DISCORD_TOKEN="NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd" @@ -49,22 +51,10 @@ ACTIVITIES="My default prefix is {prefix}, music with {userCount} users, {textCh # Available: PLAYING, WATCHING, LISTENING, COMPETING ACTIVITY_TYPES="PLAYING, LISTENING, WATCHING, PLAYING, COMPETING" -#============================================================================== -# OPTIONAL, MULTIPLE - What is the owner's ID of the bot? -# Example: OWNERS="390045370240991234, 366169273485361153" -OWNERS="" - #============================================================================== # OPTIONAL, MULTIPLE - What is your server's ID? -# Example: DEV_GUILD="521178509033340968" -DEV_GUILD="" - -#============================================================================== -# DEV - In which mode do you want to activate your bot? -# Example: NODE_ENV="production" -# Available: production, development -# Default: production -NODE_ENV="" +# Example: MAIN_GUILD="521178509033340968" +MAIN_GUILD="" #============================================================================== # OPTIONAL - Which youtube downloader do you want to use? @@ -122,18 +112,3 @@ YES_EMOJI="" # Example: NO_EMOJI="❌" # Default: ❌ NO_EMOJI="" - -#============================================================================== -# DEV - Do you want to enable Debug Mode? -# This mode will print all information (such as raw event data, queue changes, etc) on the console. -# Example: DEBUG_MODE="no" -# Default: no -DEBUG_MODE="" - -#============================================================================== -# DEV - Do you want to enable REPL feature? -# You can evaluate code from the console using this feature. -# REPL included with "shardManager" variable containing the ShardManager of the bot. -# Example: REPL="no" -# Default: no -REPL="" From 597a6c9345a298e4258dd6165d9ede9b681ee62a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:09:17 +0900 Subject: [PATCH 302/411] feat(index): loading '.env' file manually is not required --- src/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 7af2056c0..38729698d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,6 @@ import { RawonLogger } from "./utils/structures/RawonLogger"; import { ShardingManager } from "discord.js"; import { resolve } from "path"; import { start } from "repl"; -import "dotenv/config"; const log = new RawonLogger({ prod: isProd }); From 93c07c36e1fdbaece431685d00c7ceb6524200a2 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:09:42 +0900 Subject: [PATCH 303/411] feat(config/env): parse the values in 'dev.env' file --- src/config/env.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/config/env.ts b/src/config/env.ts index e307fbd8f..01e55c9b8 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -1,6 +1,18 @@ import { parseEnvValue } from "../utils/functions/parseEnvValue"; import { PresenceData } from "../typings"; import { ActivityType, ClientPresenceStatus } from "discord.js"; +import { existsSync, readFileSync } from "fs"; +import { parse } from "dotenv"; +import { resolve } from "path"; + +// Parse the dev.env file +const devEnvPath = resolve(process.cwd(), "dev.env"); +if (existsSync(devEnvPath)) { + const parsed = parse(readFileSync(devEnvPath)); + for (const [k, v] of Object.entries(parsed)) { + process.env[k] = v; + } +} // Boolean values export const stayInVCAfterFinished = process.env.STAY_IN_VC_AFTER_FINISHED?.toLowerCase() === "yes"; @@ -24,8 +36,8 @@ export const noEmoji = process.env.NO_EMOJI! || "❌"; // Multiple values export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); -export const owners: string[] = parseEnvValue(process.env.OWNERS ?? ""); -export const devGuild = parseEnvValue(process.env.DEV_GUILD ?? ""); +export const devs: string[] = parseEnvValue(process.env.DEVS ?? ""); +export const mainGuild = parseEnvValue(process.env.MAIN_GUILD ?? ""); export const presenceData: PresenceData = { activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, From 994cfab31a909853f4bc747c616735f0e292e182 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:10:44 +0900 Subject: [PATCH 304/411] fix(HelpCommand): property not available beause of name change --- src/commands/general/HelpCommand.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 140d1b769..c290b3a1f 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -57,7 +57,7 @@ export class HelpCommand extends BaseCommand { this.listEmbed.fields = []; for (const category of this.client.commands.categories.values()) { - const isDev = this.client.config.owners.includes(ctx.author.id); + const isDev = this.client.config.devs.includes(ctx.author.id); const cmds = category.cmds .filter(c => (isDev ? true : !c.meta.devOnly)) .map(c => `\`${c.meta.name}\``); @@ -151,7 +151,7 @@ export class HelpCommand extends BaseCommand { private generateSelectMenu(cmd: string, author: string): MessageSelectOptionData[] { const emojis = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟"]; const matching = [...this.client.commands.values()].filter(x => { - const isDev = this.client.config.owners.includes(author); + const isDev = this.client.config.devs.includes(author); if (isDev) return x.meta.name.includes(cmd); return x.meta.name.includes(cmd) && !x.meta.devOnly; }).slice(0, 10).map((x, i) => ( From eb724ee8bb3f2d1b56af395de77b6f2061188bde Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:11:02 +0900 Subject: [PATCH 305/411] fix(ReadyEvent): property not available beause of name change --- src/events/ReadyEvent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/ReadyEvent.ts b/src/events/ReadyEvent.ts index c7ebb24de..98a0f42de 100644 --- a/src/events/ReadyEvent.ts +++ b/src/events/ReadyEvent.ts @@ -6,7 +6,7 @@ import { Presence } from "discord.js"; export class ReadyEvent extends BaseEvent { public async execute(): Promise<void> { if (this.client.application?.owner) { - this.client.config.owners.push(this.client.application.owner.id); + this.client.config.devs.push(this.client.application.owner.id); } await this.client.spotify.renew(); From 182aa2fff87b2787846f79a88bcf314e2e555d55 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 11 May 2022 00:11:19 +0900 Subject: [PATCH 306/411] fix(CommandManager): property not available beause of name change --- src/utils/structures/CommandManager.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index 6a0ce5c58..f6a2222ae 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -149,17 +149,17 @@ export class CommandManager extends Collection<string, CommandComponent> { setTimeout(() => timestamps.delete(message.author.id), cooldownAmount); } else { timestamps?.set(message.author.id, now); - if (this.client.config.owners.includes(message.author.id)) timestamps?.delete(message.author.id); + if (this.client.config.devs.includes(message.author.id)) timestamps?.delete(message.author.id); } try { - if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return; + if (command.meta.devOnly && !this.client.config.devs.includes(message.author.id)) return; command.execute(new CommandContext(message, args)); } catch (e) { this.client.logger.error("COMMAND_HANDLER_ERR:", e); } finally { // eslint-disable-next-line no-unsafe-finally - if (command.meta.devOnly && !this.client.config.owners.includes(message.author.id)) return; + if (command.meta.devOnly && !this.client.config.devs.includes(message.author.id)) return; this.client.logger.info( `${message.author.tag} [${message.author.id}] is using ${command.meta.name} command from ${command.meta.category!} category ` + `on #${(message.channel as TextChannel).name} [${message.channel.id}] in guild: ${message.guild!.name} [${message.guild!.id}]` @@ -169,7 +169,7 @@ export class CommandManager extends Collection<string, CommandComponent> { private async registerCmd(data: ApplicationCommandData, options?: RegisterCmdOptions): Promise<void> { if (options && this.client.config.isDev) { - for (const id of this.client.config.devGuild) { + for (const id of this.client.config.mainGuild) { let guild: Guild | null = null; try { From 84ebc9a0e35db238691d4c52c61a48845725bdb4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 17:06:01 +0700 Subject: [PATCH 307/411] chore(deps): bump dotenv from 16.0.0 to 16.0.1 (#898) Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.0.0 to 16.0.1. - [Release notes](https://github.com/motdotla/dotenv/releases) - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v16.0.0...v16.0.1) --- updated-dependencies: - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09dc31293..c1a0c2da4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@swc/core": "^1.2.179", "date-fns": "^2.28.0", "discord.js": "^13.6.0", - "dotenv": "^16.0.0", + "dotenv": "^16.0.1", "got": "^12.0.4", "i18n": "0.14.2", "opusscript": "^0.0.8", @@ -1151,9 +1151,9 @@ } }, "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "engines": { "node": ">=12" } @@ -3263,9 +3263,9 @@ } }, "dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" }, "end-of-stream": { "version": "1.4.4", diff --git a/package.json b/package.json index 47398f82d..c22d0f9e5 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@swc/core": "^1.2.179", "date-fns": "^2.28.0", "discord.js": "^13.6.0", - "dotenv": "^16.0.0", + "dotenv": "^16.0.1", "got": "^12.0.4", "i18n": "0.14.2", "opusscript": "^0.0.8", From ba52d455b1a1efee6eccf2bf028a39a4b2fea822 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 10:08:13 +0000 Subject: [PATCH 308/411] chore(deps-dev): bump @typescript-eslint/eslint-plugin (#896) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.23.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 258 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 226 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1a0c2da4..26d5022a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", - "@typescript-eslint/eslint-plugin": "^5.22.0", + "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", "typescript": "^4.6.4" @@ -582,14 +582,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz", - "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", + "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/type-utils": "5.22.0", - "@typescript-eslint/utils": "5.22.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -614,6 +614,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "5.22.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz", @@ -659,12 +706,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz", - "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", + "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.22.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -725,15 +772,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz", - "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/typescript-estree": "5.22.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -748,6 +795,80 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.22.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", @@ -2888,20 +3009,48 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz", - "integrity": "sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", + "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/type-utils": "5.22.0", - "@typescript-eslint/utils": "5.22.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + } + }, + "@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/parser": { @@ -2927,12 +3076,12 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz", - "integrity": "sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", + "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.22.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } @@ -2959,17 +3108,60 @@ } }, "@typescript-eslint/utils": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.22.0.tgz", - "integrity": "sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/typescript-estree": "5.22.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + } + }, + "@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { diff --git a/package.json b/package.json index c22d0f9e5..3d3565aad 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", "@types/node": "^17.0.31", - "@typescript-eslint/eslint-plugin": "^5.22.0", + "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", "typescript": "^4.6.4" From a870e60c311fb97e32ed982fce622a88414f78c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 10:10:32 +0000 Subject: [PATCH 309/411] chore(deps-dev): bump @types/node from 17.0.31 to 17.0.32 (#899) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.31 to 17.0.32. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26d5022a8..200e8a93c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.31", + "@types/node": "^17.0.32", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", + "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2967,9 +2967,9 @@ } }, "@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", + "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index 3d3565aad..48035d414 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.31", + "@types/node": "^17.0.32", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", From 60f79da7f58049cd46b2efae6a86e1cc86f3274c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 12:38:15 +0000 Subject: [PATCH 310/411] chore(deps): bump @swc/core from 1.2.179 to 1.2.181 (#897) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.179 to 1.2.181. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.179...v1.2.181) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 200e8a93c..7e9783c4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.179", + "@swc/core": "^1.2.181", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.1", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.179.tgz", - "integrity": "sha512-B1O4acip37cNfMxKYG9Ptrrmcc3mcklFnSuRT9UtHr92Nq26o7omuturK0HCoKqLVReU05psfhDzx+K6H1tbNQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.181.tgz", + "integrity": "sha512-evQX+Br/gC+FYLbUIF1dOQa7hUzBpowrcbgPkIRCEvi4HrCn7pGBZ2ZHBXmwEtBdLfOlyQvN/8USClApQKK4Rw==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.179", - "@swc/core-android-arm64": "1.2.179", - "@swc/core-darwin-arm64": "1.2.179", - "@swc/core-darwin-x64": "1.2.179", - "@swc/core-freebsd-x64": "1.2.179", - "@swc/core-linux-arm-gnueabihf": "1.2.179", - "@swc/core-linux-arm64-gnu": "1.2.179", - "@swc/core-linux-arm64-musl": "1.2.179", - "@swc/core-linux-x64-gnu": "1.2.179", - "@swc/core-linux-x64-musl": "1.2.179", - "@swc/core-win32-arm64-msvc": "1.2.179", - "@swc/core-win32-ia32-msvc": "1.2.179", - "@swc/core-win32-x64-msvc": "1.2.179" + "@swc/core-android-arm-eabi": "1.2.181", + "@swc/core-android-arm64": "1.2.181", + "@swc/core-darwin-arm64": "1.2.181", + "@swc/core-darwin-x64": "1.2.181", + "@swc/core-freebsd-x64": "1.2.181", + "@swc/core-linux-arm-gnueabihf": "1.2.181", + "@swc/core-linux-arm64-gnu": "1.2.181", + "@swc/core-linux-arm64-musl": "1.2.181", + "@swc/core-linux-x64-gnu": "1.2.181", + "@swc/core-linux-x64-musl": "1.2.181", + "@swc/core-win32-arm64-msvc": "1.2.181", + "@swc/core-win32-ia32-msvc": "1.2.181", + "@swc/core-win32-x64-msvc": "1.2.181" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.179.tgz", - "integrity": "sha512-86a0zDxgT+9xwakvAo14YmPF2H34i3nG/Vfq4WLXV5JRNQgylMIFMVWPMmCp4pRFeFnM+XunkepADoc9cxd7cg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.181.tgz", + "integrity": "sha512-H3HNf8j6M13uIbSruef8iMsCElJJDZOhp5qxwm/+P1jAG4eQ4vPfajIlTVdFJes8Adrbr4WQaVvl+m4BQw51JQ==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.179.tgz", - "integrity": "sha512-Se+b84pXxQ9t+w5gAs+U8htxc/ry7xfGGpalo7+KSzH96rsQPcuBL2MIeOxrL/E68eVsUk5RF457FoAkCobI2A==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.181.tgz", + "integrity": "sha512-b1apYKeosBaXl28xE/By4QVHYrXaR2+nOdcP6rsDXg6nyLBArtoiS5YUFikFN/VQbSAQqNeJQ+rovT5zITrgSQ==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.179.tgz", - "integrity": "sha512-Jj0ZoIXpgt+/9a6GD/L68uuoMG4Lnq4wAp/n9gQQPw5CwiLuhZELPBqsrjfKVz/I/Iz24IbAJcEEZ3iaODaxdA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.181.tgz", + "integrity": "sha512-M3/PPeO6NTN7GYa1mOWPNMaAPxEQH8xd+X6FHMa7OBCi+Qxkarafu4DZRfzR88TcS3XikqFLgmmzSP7Z/tye2w==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.179.tgz", - "integrity": "sha512-GBF4BPFn170l1oZDBsNaZpiyPdyIXQmDOXtg8LGVFHvFire4n2jgjw/i6Fh4sefi1B+lc1LP6KmfOuMhLaBukg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.181.tgz", + "integrity": "sha512-8Uc6gx7YN5+eSnk3h7aHqp1f3RFoBJPDPeH9cURm4mfE4BTgkVgkctUm0IE5sS5AotazVbrOwhEFrl7TONSfPA==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.179.tgz", - "integrity": "sha512-2ooBzQ4iEyuXZLz6iTyu5YW4rKIOSxZbP6UbrFT8aX/FLypBktkeKyad+4WpXQNC5vRxks1VUKS9eNh2BvbWwA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.181.tgz", + "integrity": "sha512-SbnsbJHGFNY7VSTA5OhBh2PmLgQumIGerAxTCTYO1IgtbADCTL+gCjU0TK0viG/zpH4jnjaL965BI4JTo/bpRg==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.179.tgz", - "integrity": "sha512-Pf0r7eUYViCWnlTOx8LjceA3r+XGa0GXXEUfwLjQ8wZQUEhNN02hsCz6F2d9Q3WYkzNJVYXu87I6BUY+L9GWAQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.181.tgz", + "integrity": "sha512-aWO6Lr9wea96Z7AEagzf4reKgDb3UWXZnClwJK7baScwF8KV+Mh99vVgkSe1nj2gKOZ31pBLp62RDJkc3gdlnA==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.179.tgz", - "integrity": "sha512-Dqx48DJvxI0r7yFCZkopOo8/AVNlep/05BYxXv7UzZSiJpiYS8pAGwuboeOJwF83aaW7hT4vx+HLUDvUTTfSWQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.181.tgz", + "integrity": "sha512-+7fzDwsvcbhPafKdminMQrU3Ej1NHltXy7k+zgjj8BDPZbfi8hRzQcONeBV7sfl4xvw3d3roNHu2UMmKzLNs0w==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.179.tgz", - "integrity": "sha512-wHYvSsP/qTQwVJKBBK1duUvbySHYL7BL8ge+IcAEjTy62K38z0mPg9j2nSqeSldBi7y1foudbKqUA9qwoAC9oQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.181.tgz", + "integrity": "sha512-U9k8pv2oCxYYfu9DdOO1ZZgqbmF97NgJzSaIu3PsTedF4RcGIiPcuGOFqrUECsGUW2i6uKejE8onbXPj9UmaZQ==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.179.tgz", - "integrity": "sha512-orVaK4BIa4qIW298uxvsKaeQLHqjZpxbaCATOnFibUBx2nX+P/MTHZm3WB1qgdmeKto8SEyFGkV8PAMcbFu5Rg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.181.tgz", + "integrity": "sha512-9AQXrvZ9BFQJeqYMpKQZRf9h/DEwhfHIR39krehO+g594i+mkkp+UNTToez6Ifn+NBYl58xyEcQGwsYIqtdYVw==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.179.tgz", - "integrity": "sha512-UG2zrpg5C0iq0BwSJpoxMgraM2jt9CItCRVaiZki7kg0wuIIdjwjXTOuf7XJ939WefLVrB0fu9uVKLfZAzuuxA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.181.tgz", + "integrity": "sha512-Pq/aBMj3F4CR4tXq85t7IW3piu76a677nIoo6QtBkAjrQ5QuJqpaez/5aewipG+kIXpiu/DNFIN+cISa1QeC8A==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.179.tgz", - "integrity": "sha512-am0P4A/7gDrU/HlGthf2Ozxfm8/zduOdigMD/ynTgEv11+gwWVnmr+sVR1l83BnXp3H765/LoC2eu8UiAbjGHA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.181.tgz", + "integrity": "sha512-m24036tVFDE8ZJ3fBVBfsHw4tHd0BG6g3TvT2MLAiW2MezYeTdrGpmvPBz4Woz686I/06cWeSg7cZF1/ZcZMMA==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.179.tgz", - "integrity": "sha512-Do7Y+nMhF3+0rFl6pmtQJ6DqCbliAHpSIKx/eC3NzspS4qPSddWwcLgajWl22ueouAj/79rx+FYUSRCNOHpjTg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.181.tgz", + "integrity": "sha512-OPROzGapmr29qqwvB/aP9SA80r2eIukj+q7gghdQVptJrQU4GrTyzW1TpnGtpzj8rLZz4hEG6KtyPUh54bJZ/g==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.179.tgz", - "integrity": "sha512-xA/pd6ri0eJ1bqQRT8h0xVa1wclFvLddp5mUhTEfxhtajrPkdriEUCoFOo4ySJhz86cjpTIoa81iq3XLpGQsMQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.181.tgz", + "integrity": "sha512-YrIaS63XsGiQ9AgxUVZ7Irt4pwQc3c2TPN7PyQP7ok9zBZxY5pBTwRTdLctlF4LNsSavlHE5+rvdPzcYAG0ekQ==", "cpu": [ "x64" ], @@ -2825,101 +2825,101 @@ } }, "@swc/core": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.179.tgz", - "integrity": "sha512-B1O4acip37cNfMxKYG9Ptrrmcc3mcklFnSuRT9UtHr92Nq26o7omuturK0HCoKqLVReU05psfhDzx+K6H1tbNQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.181.tgz", + "integrity": "sha512-evQX+Br/gC+FYLbUIF1dOQa7hUzBpowrcbgPkIRCEvi4HrCn7pGBZ2ZHBXmwEtBdLfOlyQvN/8USClApQKK4Rw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.179", - "@swc/core-android-arm64": "1.2.179", - "@swc/core-darwin-arm64": "1.2.179", - "@swc/core-darwin-x64": "1.2.179", - "@swc/core-freebsd-x64": "1.2.179", - "@swc/core-linux-arm-gnueabihf": "1.2.179", - "@swc/core-linux-arm64-gnu": "1.2.179", - "@swc/core-linux-arm64-musl": "1.2.179", - "@swc/core-linux-x64-gnu": "1.2.179", - "@swc/core-linux-x64-musl": "1.2.179", - "@swc/core-win32-arm64-msvc": "1.2.179", - "@swc/core-win32-ia32-msvc": "1.2.179", - "@swc/core-win32-x64-msvc": "1.2.179" + "@swc/core-android-arm-eabi": "1.2.181", + "@swc/core-android-arm64": "1.2.181", + "@swc/core-darwin-arm64": "1.2.181", + "@swc/core-darwin-x64": "1.2.181", + "@swc/core-freebsd-x64": "1.2.181", + "@swc/core-linux-arm-gnueabihf": "1.2.181", + "@swc/core-linux-arm64-gnu": "1.2.181", + "@swc/core-linux-arm64-musl": "1.2.181", + "@swc/core-linux-x64-gnu": "1.2.181", + "@swc/core-linux-x64-musl": "1.2.181", + "@swc/core-win32-arm64-msvc": "1.2.181", + "@swc/core-win32-ia32-msvc": "1.2.181", + "@swc/core-win32-x64-msvc": "1.2.181" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.179.tgz", - "integrity": "sha512-86a0zDxgT+9xwakvAo14YmPF2H34i3nG/Vfq4WLXV5JRNQgylMIFMVWPMmCp4pRFeFnM+XunkepADoc9cxd7cg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.181.tgz", + "integrity": "sha512-H3HNf8j6M13uIbSruef8iMsCElJJDZOhp5qxwm/+P1jAG4eQ4vPfajIlTVdFJes8Adrbr4WQaVvl+m4BQw51JQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.179.tgz", - "integrity": "sha512-Se+b84pXxQ9t+w5gAs+U8htxc/ry7xfGGpalo7+KSzH96rsQPcuBL2MIeOxrL/E68eVsUk5RF457FoAkCobI2A==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.181.tgz", + "integrity": "sha512-b1apYKeosBaXl28xE/By4QVHYrXaR2+nOdcP6rsDXg6nyLBArtoiS5YUFikFN/VQbSAQqNeJQ+rovT5zITrgSQ==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.179.tgz", - "integrity": "sha512-Jj0ZoIXpgt+/9a6GD/L68uuoMG4Lnq4wAp/n9gQQPw5CwiLuhZELPBqsrjfKVz/I/Iz24IbAJcEEZ3iaODaxdA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.181.tgz", + "integrity": "sha512-M3/PPeO6NTN7GYa1mOWPNMaAPxEQH8xd+X6FHMa7OBCi+Qxkarafu4DZRfzR88TcS3XikqFLgmmzSP7Z/tye2w==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.179.tgz", - "integrity": "sha512-GBF4BPFn170l1oZDBsNaZpiyPdyIXQmDOXtg8LGVFHvFire4n2jgjw/i6Fh4sefi1B+lc1LP6KmfOuMhLaBukg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.181.tgz", + "integrity": "sha512-8Uc6gx7YN5+eSnk3h7aHqp1f3RFoBJPDPeH9cURm4mfE4BTgkVgkctUm0IE5sS5AotazVbrOwhEFrl7TONSfPA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.179.tgz", - "integrity": "sha512-2ooBzQ4iEyuXZLz6iTyu5YW4rKIOSxZbP6UbrFT8aX/FLypBktkeKyad+4WpXQNC5vRxks1VUKS9eNh2BvbWwA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.181.tgz", + "integrity": "sha512-SbnsbJHGFNY7VSTA5OhBh2PmLgQumIGerAxTCTYO1IgtbADCTL+gCjU0TK0viG/zpH4jnjaL965BI4JTo/bpRg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.179.tgz", - "integrity": "sha512-Pf0r7eUYViCWnlTOx8LjceA3r+XGa0GXXEUfwLjQ8wZQUEhNN02hsCz6F2d9Q3WYkzNJVYXu87I6BUY+L9GWAQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.181.tgz", + "integrity": "sha512-aWO6Lr9wea96Z7AEagzf4reKgDb3UWXZnClwJK7baScwF8KV+Mh99vVgkSe1nj2gKOZ31pBLp62RDJkc3gdlnA==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.179.tgz", - "integrity": "sha512-Dqx48DJvxI0r7yFCZkopOo8/AVNlep/05BYxXv7UzZSiJpiYS8pAGwuboeOJwF83aaW7hT4vx+HLUDvUTTfSWQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.181.tgz", + "integrity": "sha512-+7fzDwsvcbhPafKdminMQrU3Ej1NHltXy7k+zgjj8BDPZbfi8hRzQcONeBV7sfl4xvw3d3roNHu2UMmKzLNs0w==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.179.tgz", - "integrity": "sha512-wHYvSsP/qTQwVJKBBK1duUvbySHYL7BL8ge+IcAEjTy62K38z0mPg9j2nSqeSldBi7y1foudbKqUA9qwoAC9oQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.181.tgz", + "integrity": "sha512-U9k8pv2oCxYYfu9DdOO1ZZgqbmF97NgJzSaIu3PsTedF4RcGIiPcuGOFqrUECsGUW2i6uKejE8onbXPj9UmaZQ==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.179.tgz", - "integrity": "sha512-orVaK4BIa4qIW298uxvsKaeQLHqjZpxbaCATOnFibUBx2nX+P/MTHZm3WB1qgdmeKto8SEyFGkV8PAMcbFu5Rg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.181.tgz", + "integrity": "sha512-9AQXrvZ9BFQJeqYMpKQZRf9h/DEwhfHIR39krehO+g594i+mkkp+UNTToez6Ifn+NBYl58xyEcQGwsYIqtdYVw==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.179.tgz", - "integrity": "sha512-UG2zrpg5C0iq0BwSJpoxMgraM2jt9CItCRVaiZki7kg0wuIIdjwjXTOuf7XJ939WefLVrB0fu9uVKLfZAzuuxA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.181.tgz", + "integrity": "sha512-Pq/aBMj3F4CR4tXq85t7IW3piu76a677nIoo6QtBkAjrQ5QuJqpaez/5aewipG+kIXpiu/DNFIN+cISa1QeC8A==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.179.tgz", - "integrity": "sha512-am0P4A/7gDrU/HlGthf2Ozxfm8/zduOdigMD/ynTgEv11+gwWVnmr+sVR1l83BnXp3H765/LoC2eu8UiAbjGHA==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.181.tgz", + "integrity": "sha512-m24036tVFDE8ZJ3fBVBfsHw4tHd0BG6g3TvT2MLAiW2MezYeTdrGpmvPBz4Woz686I/06cWeSg7cZF1/ZcZMMA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.179.tgz", - "integrity": "sha512-Do7Y+nMhF3+0rFl6pmtQJ6DqCbliAHpSIKx/eC3NzspS4qPSddWwcLgajWl22ueouAj/79rx+FYUSRCNOHpjTg==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.181.tgz", + "integrity": "sha512-OPROzGapmr29qqwvB/aP9SA80r2eIukj+q7gghdQVptJrQU4GrTyzW1TpnGtpzj8rLZz4hEG6KtyPUh54bJZ/g==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.179", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.179.tgz", - "integrity": "sha512-xA/pd6ri0eJ1bqQRT8h0xVa1wclFvLddp5mUhTEfxhtajrPkdriEUCoFOo4ySJhz86cjpTIoa81iq3XLpGQsMQ==", + "version": "1.2.181", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.181.tgz", + "integrity": "sha512-YrIaS63XsGiQ9AgxUVZ7Irt4pwQc3c2TPN7PyQP7ok9zBZxY5pBTwRTdLctlF4LNsSavlHE5+rvdPzcYAG0ekQ==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index 48035d414..ac5ab5f96 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.179", + "@swc/core": "^1.2.181", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.1", From d0d1f9260d747c8fd32bd8f1eafe7d7dc53f6528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 12:40:25 +0000 Subject: [PATCH 311/411] chore(deps-dev): bump @types/node from 17.0.32 to 17.0.33 (#901) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.32 to 17.0.33. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e9783c4f..c41535485 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.32", + "@types/node": "^17.0.33", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", @@ -539,9 +539,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", - "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -2967,9 +2967,9 @@ } }, "@types/node": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", - "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" }, "@types/node-fetch": { "version": "2.5.12", diff --git a/package.json b/package.json index ac5ab5f96..e6ac78e1e 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@clytage-pkg/eslint-config": "^1.0.1", "@types/i18n": "^0.13.2", - "@types/node": "^17.0.32", + "@types/node": "^17.0.33", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.22.0", "eslint": "^8.14.0", From 42a13aea84f9bce3ce7ef30f779a5fb0979cfcde Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 12:42:20 +0000 Subject: [PATCH 312/411] chore(deps-dev): bump @typescript-eslint/parser from 5.22.0 to 5.23.0 (#895) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.23.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 278 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 44 insertions(+), 236 deletions(-) diff --git a/package-lock.json b/package-lock.json index c41535485..dd3a6ba33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.33", "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.22.0", + "@typescript-eslint/parser": "^5.23.0", "eslint": "^8.14.0", "typescript": "^4.6.4" }, @@ -614,62 +614,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", + "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "5.23.0", "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz", - "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/typescript-estree": "5.22.0", + "@typescript-eslint/typescript-estree": "5.23.0", "debug": "^4.3.2" }, "engines": { @@ -689,13 +642,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -732,9 +685,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -745,13 +698,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", - "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -795,64 +748,7 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "5.23.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", @@ -869,23 +765,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", - "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.22.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/acorn": { "version": "8.7.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", @@ -3023,56 +2902,28 @@ "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" - } - }, - "@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz", - "integrity": "sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", + "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.22.0", - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/typescript-estree": "5.22.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz", - "integrity": "sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0" + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" } }, "@typescript-eslint/type-utils": { @@ -3087,19 +2938,19 @@ } }, "@typescript-eslint/types": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz", - "integrity": "sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz", - "integrity": "sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.22.0", - "@typescript-eslint/visitor-keys": "5.22.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3119,58 +2970,15 @@ "@typescript-eslint/typescript-estree": "5.23.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" - } - }, - "@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz", - "integrity": "sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/types": "5.23.0", "eslint-visitor-keys": "^3.0.0" } }, diff --git a/package.json b/package.json index e6ac78e1e..f4d26f64a 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/i18n": "^0.13.2", "@types/node": "^17.0.33", "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.22.0", + "@typescript-eslint/parser": "^5.23.0", "eslint": "^8.14.0", "typescript": "^4.6.4" }, From 372f6b31f0548d112a07e1f1d144789fa7d187ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 12:44:23 +0000 Subject: [PATCH 313/411] chore(deps): bump @swc/core from 1.2.181 to 1.2.183 (#902) Bumps [@swc/core](https://github.com/swc-project/swc) from 1.2.181 to 1.2.183. - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/compare/v1.2.181...v1.2.183) --- updated-dependencies: - dependency-name: "@swc/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index dd3a6ba33..a6fd73181 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.181", + "@swc/core": "^1.2.183", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.1", @@ -267,9 +267,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.181.tgz", - "integrity": "sha512-evQX+Br/gC+FYLbUIF1dOQa7hUzBpowrcbgPkIRCEvi4HrCn7pGBZ2ZHBXmwEtBdLfOlyQvN/8USClApQKK4Rw==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.183.tgz", + "integrity": "sha512-RwAq9broU0YqoVJqPpTVxXFAj63+Fx1UWAtBsEqWyJQJc7RunuqNb2vMzp9X+5GeVr6yaa8qE7iKB99gp5enJg==", "bin": { "swcx": "run_swcx.js" }, @@ -281,25 +281,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.181", - "@swc/core-android-arm64": "1.2.181", - "@swc/core-darwin-arm64": "1.2.181", - "@swc/core-darwin-x64": "1.2.181", - "@swc/core-freebsd-x64": "1.2.181", - "@swc/core-linux-arm-gnueabihf": "1.2.181", - "@swc/core-linux-arm64-gnu": "1.2.181", - "@swc/core-linux-arm64-musl": "1.2.181", - "@swc/core-linux-x64-gnu": "1.2.181", - "@swc/core-linux-x64-musl": "1.2.181", - "@swc/core-win32-arm64-msvc": "1.2.181", - "@swc/core-win32-ia32-msvc": "1.2.181", - "@swc/core-win32-x64-msvc": "1.2.181" + "@swc/core-android-arm-eabi": "1.2.183", + "@swc/core-android-arm64": "1.2.183", + "@swc/core-darwin-arm64": "1.2.183", + "@swc/core-darwin-x64": "1.2.183", + "@swc/core-freebsd-x64": "1.2.183", + "@swc/core-linux-arm-gnueabihf": "1.2.183", + "@swc/core-linux-arm64-gnu": "1.2.183", + "@swc/core-linux-arm64-musl": "1.2.183", + "@swc/core-linux-x64-gnu": "1.2.183", + "@swc/core-linux-x64-musl": "1.2.183", + "@swc/core-win32-arm64-msvc": "1.2.183", + "@swc/core-win32-ia32-msvc": "1.2.183", + "@swc/core-win32-x64-msvc": "1.2.183" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.181.tgz", - "integrity": "sha512-H3HNf8j6M13uIbSruef8iMsCElJJDZOhp5qxwm/+P1jAG4eQ4vPfajIlTVdFJes8Adrbr4WQaVvl+m4BQw51JQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.183.tgz", + "integrity": "sha512-DzFR8sokjVESnSXWR/4hLDxPUuvFoTpAHbMEQjj6YrwiXeWQneFudATa0ysyGlszGrmlrT+yL5wrK+gp0M8+Kg==", "cpu": [ "arm" ], @@ -312,9 +312,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.181.tgz", - "integrity": "sha512-b1apYKeosBaXl28xE/By4QVHYrXaR2+nOdcP6rsDXg6nyLBArtoiS5YUFikFN/VQbSAQqNeJQ+rovT5zITrgSQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.183.tgz", + "integrity": "sha512-LHDSXrtRLYvSbPU0Canp6kcanGbu5IdApvY/2njyLLlhi9GNg+0VJosc14O5sSid5qdg/mMaq4y6u1X6j8CxUw==", "cpu": [ "arm64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.181.tgz", - "integrity": "sha512-M3/PPeO6NTN7GYa1mOWPNMaAPxEQH8xd+X6FHMa7OBCi+Qxkarafu4DZRfzR88TcS3XikqFLgmmzSP7Z/tye2w==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.183.tgz", + "integrity": "sha512-4UZhW/6DzcwFI5MQcGHEsjCDl32Ilfg09TOtr9IO9QK0nADE0Vy6K83ze8iXDIxVnu/jmc2rrX/FwmqRCS7F9w==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.181.tgz", - "integrity": "sha512-8Uc6gx7YN5+eSnk3h7aHqp1f3RFoBJPDPeH9cURm4mfE4BTgkVgkctUm0IE5sS5AotazVbrOwhEFrl7TONSfPA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.183.tgz", + "integrity": "sha512-3BYS/4jkZAZbmrxXYeDAljjAbE/TAiEXIDKeGiRZ+nRk0sLNqwO30aWZl34U1CbzuK3gPcGHTEVuChUCoTkWKw==", "cpu": [ "x64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.181.tgz", - "integrity": "sha512-SbnsbJHGFNY7VSTA5OhBh2PmLgQumIGerAxTCTYO1IgtbADCTL+gCjU0TK0viG/zpH4jnjaL965BI4JTo/bpRg==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.183.tgz", + "integrity": "sha512-9nJqmFZzo2sCcRRZzKxYjEHE9dL3xj0vkELIkfDi7p1C+GpiwZTIh6s39KusnhY89s8igdYWnRyg/3d2FHsuFA==", "cpu": [ "x64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.181.tgz", - "integrity": "sha512-aWO6Lr9wea96Z7AEagzf4reKgDb3UWXZnClwJK7baScwF8KV+Mh99vVgkSe1nj2gKOZ31pBLp62RDJkc3gdlnA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.183.tgz", + "integrity": "sha512-Bd0jwn715oqJTVICZiyWx6OYK7qAXZhJbpJLEekpkMfTyveLCnwyou+bwdldGPdqOHb+3q0Cg2eds1P0pXs9Xw==", "cpu": [ "arm" ], @@ -387,9 +387,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.181.tgz", - "integrity": "sha512-+7fzDwsvcbhPafKdminMQrU3Ej1NHltXy7k+zgjj8BDPZbfi8hRzQcONeBV7sfl4xvw3d3roNHu2UMmKzLNs0w==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.183.tgz", + "integrity": "sha512-QdQJyfL9nQPYMXdH2pdN6v0M0G8hdEY1g2Cao07CwNVGD0ZHURFY1GFPoyXLkVPVUqyvUPCRZSfC4fTUrKUFeA==", "cpu": [ "arm64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.181.tgz", - "integrity": "sha512-U9k8pv2oCxYYfu9DdOO1ZZgqbmF97NgJzSaIu3PsTedF4RcGIiPcuGOFqrUECsGUW2i6uKejE8onbXPj9UmaZQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.183.tgz", + "integrity": "sha512-hkDyhwgsK+MPZ47CSjk3VIrabX8xzuQHRAJoPseR/kTJ782ur19Dsun+7tVD8aSgmWjG7nBHYvsdF96jLLim6g==", "cpu": [ "arm64" ], @@ -417,9 +417,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.181.tgz", - "integrity": "sha512-9AQXrvZ9BFQJeqYMpKQZRf9h/DEwhfHIR39krehO+g594i+mkkp+UNTToez6Ifn+NBYl58xyEcQGwsYIqtdYVw==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.183.tgz", + "integrity": "sha512-jR6yjQWBm5q9wY4kXfT+3rKHoE9+ugGycaO/yuSeekxvs+dlEGcup0vu/VjfurnbfpAj7O2dnSKH7TE95wMkQg==", "cpu": [ "x64" ], @@ -432,9 +432,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.181.tgz", - "integrity": "sha512-Pq/aBMj3F4CR4tXq85t7IW3piu76a677nIoo6QtBkAjrQ5QuJqpaez/5aewipG+kIXpiu/DNFIN+cISa1QeC8A==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.183.tgz", + "integrity": "sha512-4YM3TWishQal3qFsNwWXd47em2zTOShgkxUBm2SOGKtPCMsrfi9MJdesyQH5rCrNWGy1lvo7XpvnN2GSEzYjBQ==", "cpu": [ "x64" ], @@ -447,9 +447,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.181.tgz", - "integrity": "sha512-m24036tVFDE8ZJ3fBVBfsHw4tHd0BG6g3TvT2MLAiW2MezYeTdrGpmvPBz4Woz686I/06cWeSg7cZF1/ZcZMMA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.183.tgz", + "integrity": "sha512-mIXR1hPkNL2/v3xEcfbgZJclwMuQxJNVIHUyu6+cb8vUp4rbYoJioEi0qh613c36o9MpHccKZftMMd0buNFWXg==", "cpu": [ "arm64" ], @@ -462,9 +462,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.181.tgz", - "integrity": "sha512-OPROzGapmr29qqwvB/aP9SA80r2eIukj+q7gghdQVptJrQU4GrTyzW1TpnGtpzj8rLZz4hEG6KtyPUh54bJZ/g==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.183.tgz", + "integrity": "sha512-NokriuUcwOBdj6k6fpNrFcprv2FoHfyV6ymBaZuk8UXdoRhDFguoTsFxKxKo1oGyqYreuPmaK7NBU/H9SNRxDA==", "cpu": [ "ia32" ], @@ -477,9 +477,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.181.tgz", - "integrity": "sha512-YrIaS63XsGiQ9AgxUVZ7Irt4pwQc3c2TPN7PyQP7ok9zBZxY5pBTwRTdLctlF4LNsSavlHE5+rvdPzcYAG0ekQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.183.tgz", + "integrity": "sha512-oWiEDrUb4aRRc7y558KonVoFqmGXGKFvOj8ceiz4UVwoQCcwNX3djvjIf3zwkj+DwjKiHPFVwhENaRgMphthrA==", "cpu": [ "x64" ], @@ -2704,101 +2704,101 @@ } }, "@swc/core": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.181.tgz", - "integrity": "sha512-evQX+Br/gC+FYLbUIF1dOQa7hUzBpowrcbgPkIRCEvi4HrCn7pGBZ2ZHBXmwEtBdLfOlyQvN/8USClApQKK4Rw==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.183.tgz", + "integrity": "sha512-RwAq9broU0YqoVJqPpTVxXFAj63+Fx1UWAtBsEqWyJQJc7RunuqNb2vMzp9X+5GeVr6yaa8qE7iKB99gp5enJg==", "requires": { - "@swc/core-android-arm-eabi": "1.2.181", - "@swc/core-android-arm64": "1.2.181", - "@swc/core-darwin-arm64": "1.2.181", - "@swc/core-darwin-x64": "1.2.181", - "@swc/core-freebsd-x64": "1.2.181", - "@swc/core-linux-arm-gnueabihf": "1.2.181", - "@swc/core-linux-arm64-gnu": "1.2.181", - "@swc/core-linux-arm64-musl": "1.2.181", - "@swc/core-linux-x64-gnu": "1.2.181", - "@swc/core-linux-x64-musl": "1.2.181", - "@swc/core-win32-arm64-msvc": "1.2.181", - "@swc/core-win32-ia32-msvc": "1.2.181", - "@swc/core-win32-x64-msvc": "1.2.181" + "@swc/core-android-arm-eabi": "1.2.183", + "@swc/core-android-arm64": "1.2.183", + "@swc/core-darwin-arm64": "1.2.183", + "@swc/core-darwin-x64": "1.2.183", + "@swc/core-freebsd-x64": "1.2.183", + "@swc/core-linux-arm-gnueabihf": "1.2.183", + "@swc/core-linux-arm64-gnu": "1.2.183", + "@swc/core-linux-arm64-musl": "1.2.183", + "@swc/core-linux-x64-gnu": "1.2.183", + "@swc/core-linux-x64-musl": "1.2.183", + "@swc/core-win32-arm64-msvc": "1.2.183", + "@swc/core-win32-ia32-msvc": "1.2.183", + "@swc/core-win32-x64-msvc": "1.2.183" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.181.tgz", - "integrity": "sha512-H3HNf8j6M13uIbSruef8iMsCElJJDZOhp5qxwm/+P1jAG4eQ4vPfajIlTVdFJes8Adrbr4WQaVvl+m4BQw51JQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.183.tgz", + "integrity": "sha512-DzFR8sokjVESnSXWR/4hLDxPUuvFoTpAHbMEQjj6YrwiXeWQneFudATa0ysyGlszGrmlrT+yL5wrK+gp0M8+Kg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.181.tgz", - "integrity": "sha512-b1apYKeosBaXl28xE/By4QVHYrXaR2+nOdcP6rsDXg6nyLBArtoiS5YUFikFN/VQbSAQqNeJQ+rovT5zITrgSQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.183.tgz", + "integrity": "sha512-LHDSXrtRLYvSbPU0Canp6kcanGbu5IdApvY/2njyLLlhi9GNg+0VJosc14O5sSid5qdg/mMaq4y6u1X6j8CxUw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.181.tgz", - "integrity": "sha512-M3/PPeO6NTN7GYa1mOWPNMaAPxEQH8xd+X6FHMa7OBCi+Qxkarafu4DZRfzR88TcS3XikqFLgmmzSP7Z/tye2w==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.183.tgz", + "integrity": "sha512-4UZhW/6DzcwFI5MQcGHEsjCDl32Ilfg09TOtr9IO9QK0nADE0Vy6K83ze8iXDIxVnu/jmc2rrX/FwmqRCS7F9w==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.181.tgz", - "integrity": "sha512-8Uc6gx7YN5+eSnk3h7aHqp1f3RFoBJPDPeH9cURm4mfE4BTgkVgkctUm0IE5sS5AotazVbrOwhEFrl7TONSfPA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.183.tgz", + "integrity": "sha512-3BYS/4jkZAZbmrxXYeDAljjAbE/TAiEXIDKeGiRZ+nRk0sLNqwO30aWZl34U1CbzuK3gPcGHTEVuChUCoTkWKw==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.181.tgz", - "integrity": "sha512-SbnsbJHGFNY7VSTA5OhBh2PmLgQumIGerAxTCTYO1IgtbADCTL+gCjU0TK0viG/zpH4jnjaL965BI4JTo/bpRg==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.183.tgz", + "integrity": "sha512-9nJqmFZzo2sCcRRZzKxYjEHE9dL3xj0vkELIkfDi7p1C+GpiwZTIh6s39KusnhY89s8igdYWnRyg/3d2FHsuFA==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.181.tgz", - "integrity": "sha512-aWO6Lr9wea96Z7AEagzf4reKgDb3UWXZnClwJK7baScwF8KV+Mh99vVgkSe1nj2gKOZ31pBLp62RDJkc3gdlnA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.183.tgz", + "integrity": "sha512-Bd0jwn715oqJTVICZiyWx6OYK7qAXZhJbpJLEekpkMfTyveLCnwyou+bwdldGPdqOHb+3q0Cg2eds1P0pXs9Xw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.181.tgz", - "integrity": "sha512-+7fzDwsvcbhPafKdminMQrU3Ej1NHltXy7k+zgjj8BDPZbfi8hRzQcONeBV7sfl4xvw3d3roNHu2UMmKzLNs0w==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.183.tgz", + "integrity": "sha512-QdQJyfL9nQPYMXdH2pdN6v0M0G8hdEY1g2Cao07CwNVGD0ZHURFY1GFPoyXLkVPVUqyvUPCRZSfC4fTUrKUFeA==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.181.tgz", - "integrity": "sha512-U9k8pv2oCxYYfu9DdOO1ZZgqbmF97NgJzSaIu3PsTedF4RcGIiPcuGOFqrUECsGUW2i6uKejE8onbXPj9UmaZQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.183.tgz", + "integrity": "sha512-hkDyhwgsK+MPZ47CSjk3VIrabX8xzuQHRAJoPseR/kTJ782ur19Dsun+7tVD8aSgmWjG7nBHYvsdF96jLLim6g==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.181.tgz", - "integrity": "sha512-9AQXrvZ9BFQJeqYMpKQZRf9h/DEwhfHIR39krehO+g594i+mkkp+UNTToez6Ifn+NBYl58xyEcQGwsYIqtdYVw==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.183.tgz", + "integrity": "sha512-jR6yjQWBm5q9wY4kXfT+3rKHoE9+ugGycaO/yuSeekxvs+dlEGcup0vu/VjfurnbfpAj7O2dnSKH7TE95wMkQg==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.181.tgz", - "integrity": "sha512-Pq/aBMj3F4CR4tXq85t7IW3piu76a677nIoo6QtBkAjrQ5QuJqpaez/5aewipG+kIXpiu/DNFIN+cISa1QeC8A==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.183.tgz", + "integrity": "sha512-4YM3TWishQal3qFsNwWXd47em2zTOShgkxUBm2SOGKtPCMsrfi9MJdesyQH5rCrNWGy1lvo7XpvnN2GSEzYjBQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.181.tgz", - "integrity": "sha512-m24036tVFDE8ZJ3fBVBfsHw4tHd0BG6g3TvT2MLAiW2MezYeTdrGpmvPBz4Woz686I/06cWeSg7cZF1/ZcZMMA==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.183.tgz", + "integrity": "sha512-mIXR1hPkNL2/v3xEcfbgZJclwMuQxJNVIHUyu6+cb8vUp4rbYoJioEi0qh613c36o9MpHccKZftMMd0buNFWXg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.181.tgz", - "integrity": "sha512-OPROzGapmr29qqwvB/aP9SA80r2eIukj+q7gghdQVptJrQU4GrTyzW1TpnGtpzj8rLZz4hEG6KtyPUh54bJZ/g==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.183.tgz", + "integrity": "sha512-NokriuUcwOBdj6k6fpNrFcprv2FoHfyV6ymBaZuk8UXdoRhDFguoTsFxKxKo1oGyqYreuPmaK7NBU/H9SNRxDA==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.181", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.181.tgz", - "integrity": "sha512-YrIaS63XsGiQ9AgxUVZ7Irt4pwQc3c2TPN7PyQP7ok9zBZxY5pBTwRTdLctlF4LNsSavlHE5+rvdPzcYAG0ekQ==", + "version": "1.2.183", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.183.tgz", + "integrity": "sha512-oWiEDrUb4aRRc7y558KonVoFqmGXGKFvOj8ceiz4UVwoQCcwNX3djvjIf3zwkj+DwjKiHPFVwhENaRgMphthrA==", "optional": true }, "@szmarczak/http-timer": { diff --git a/package.json b/package.json index f4d26f64a..ee9f15aed 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "^0.9.0", "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.181", + "@swc/core": "^1.2.183", "date-fns": "^2.28.0", "discord.js": "^13.6.0", "dotenv": "^16.0.1", From 14099387fcb22963065b6d60506abb9e2044216b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 20:19:22 +0700 Subject: [PATCH 314/411] chore(deps): add renovate.json (#904) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- renovate.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 000000000..f45d8f110 --- /dev/null +++ b/renovate.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "config:base" + ] +} From a0b629abcd6909eec7299dbf55b46c7bf24da8d7 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 13 May 2022 21:00:53 +0700 Subject: [PATCH 315/411] chore: remove dependabot and move added renovate configuration file into it --- .github/dependabot.yml | 29 -------------------------- renovate.json => .github/renovate.json | 0 2 files changed, 29 deletions(-) delete mode 100644 .github/dependabot.yml rename renovate.json => .github/renovate.json (100%) diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 8eb52aadb..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,29 +0,0 @@ -updates: - - package-ecosystem: npm - directory: / - labels: - - dependencies - open-pull-requests-limit: 99 - schedule: - interval: daily - time: "06:00" - timezone: Asia/Jakarta - target-branch: feat/3.0.0 - commit-message: - include: scope - prefix: chore - - package-ecosystem: github-actions - directory: / - labels: - - gh-actions - - dependencies - open-pull-requests-limit: 99 - schedule: - interval: daily - time: "06:00" - timezone: Asia/Jakarta - target-branch: feat/3.0.0 - commit-message: - include: scope - prefix: ci -version: 2 diff --git a/renovate.json b/.github/renovate.json similarity index 100% rename from renovate.json rename to .github/renovate.json From 3c37193f2bfa616965bf3827d2d2f7b0d3693e7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 21:03:17 +0700 Subject: [PATCH 316/411] chore(deps): pin dependencies (#926) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package-lock.json | 41 +++++++++++++++++++++-------------------- package.json | 40 ++++++++++++++++++++-------------------- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6fd73181..1136e726f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,32 +5,33 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { - "@discordjs/voice": "^0.9.0", - "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.183", - "date-fns": "^2.28.0", - "discord.js": "^13.6.0", - "dotenv": "^16.0.1", - "got": "^12.0.4", + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.183", + "date-fns": "2.28.0", + "discord.js": "13.6.0", + "dotenv": "16.0.1", + "got": "12.0.4", "i18n": "0.14.2", - "opusscript": "^0.0.8", - "prism-media": "^1.3.2", - "soundcloud.ts": "^0.4.5", - "tslib": "^2.4.0", - "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.35" + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.5", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "^1.0.1", - "@types/i18n": "^0.13.2", - "@types/node": "^17.0.33", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", - "eslint": "^8.14.0", - "typescript": "^4.6.4" + "@clytage-pkg/eslint-config": "1.0.1", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.23.0", + "@typescript-eslint/parser": "5.23.0", + "eslint": "8.15.0", + "typescript": "4.6.4" }, "engines": { "node": ">=16.6.0" diff --git a/package.json b/package.json index ee9f15aed..8bf9d69ce 100644 --- a/package.json +++ b/package.json @@ -26,29 +26,29 @@ } }, "dependencies": { - "@discordjs/voice": "^0.9.0", - "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.183", - "date-fns": "^2.28.0", - "discord.js": "^13.6.0", - "dotenv": "^16.0.1", - "got": "^12.0.4", + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.183", + "date-fns": "2.28.0", + "discord.js": "13.6.0", + "dotenv": "16.0.1", + "got": "12.0.4", "i18n": "0.14.2", - "opusscript": "^0.0.8", - "prism-media": "^1.3.2", - "soundcloud.ts": "^0.4.5", - "tslib": "^2.4.0", - "tweetnacl": "^1.0.3", - "youtubei": "^0.0.1-rc.35" + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.5", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "^1.0.1", - "@types/i18n": "^0.13.2", - "@types/node": "^17.0.33", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", - "eslint": "^8.14.0", - "typescript": "^4.6.4" + "@clytage-pkg/eslint-config": "1.0.1", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.23.0", + "@typescript-eslint/parser": "5.23.0", + "eslint": "8.15.0", + "typescript": "4.6.4" }, "engines": { "node": ">=16.6.0" From f2c059dfcb5ebed74605697755c114ffe0ff34b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 14:49:04 +0000 Subject: [PATCH 317/411] fix(deps): update dependency discord.js to v13.7.0 (#929) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package-lock.json | 202 +++++++++++++++------------- package.json | 2 +- src/commands/music/SearchCommand.ts | 2 +- src/structures/CommandContext.ts | 37 +---- 4 files changed, 114 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1136e726f..7101a836e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@swc/cli": "0.1.57", "@swc/core": "1.2.183", "date-fns": "2.28.0", - "discord.js": "13.6.0", + "discord.js": "13.7.0", "dotenv": "16.0.1", "got": "12.0.4", "i18n": "0.14.2", @@ -64,28 +64,32 @@ } }, "node_modules/@discordjs/builders": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", - "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", "dependencies": { - "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.26.0", - "ts-mixer": "^6.0.0", - "tslib": "^2.3.1", - "zod": "^3.11.6" + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=16.9.0" } }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + }, "node_modules/@discordjs/collection": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", - "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==", "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=16.9.0" } }, "node_modules/@discordjs/voice": { @@ -221,14 +225,23 @@ } }, "node_modules/@sapphire/async-queue": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", - "integrity": "sha512-O5ND5Ljpef86X5oy8zXorQ754TMjWALcPSAgPBu4+76HLtDTrNoDyzU2uGE2G4A8Wv51u0MXHzGQ0WZ4GMtpIw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", "engines": { "node": ">=v14.0.0", "npm": ">=7.0.0" } }, + "node_modules/@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==", + "engines": { + "node": ">=v15.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -545,9 +558,9 @@ "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" }, "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", "dependencies": { "@types/node": "*", "form-data": "^3.0.0" @@ -1112,27 +1125,24 @@ } }, "node_modules/discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", - "engines": { - "node": ">=12" - } + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" }, "node_modules/discord.js": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz", - "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", "dependencies": { - "@discordjs/builders": "^0.11.0", - "@discordjs/collection": "^0.4.0", - "@sapphire/async-queue": "^1.1.9", - "@types/node-fetch": "^2.5.12", - "@types/ws": "^8.2.2", - "discord-api-types": "^0.26.0", + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", "form-data": "^4.0.0", "node-fetch": "^2.6.1", - "ws": "^8.4.0" + "ws": "^8.6.0" }, "engines": { "node": ">=16.6.0", @@ -1379,8 +1389,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.11", @@ -2372,9 +2381,9 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/ts-mixer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", - "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" }, "node_modules/tslib": { "version": "2.4.0", @@ -2503,9 +2512,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", "engines": { "node": ">=10.0.0" }, @@ -2532,14 +2541,6 @@ "version": "0.0.1-rc.35", "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" - }, - "node_modules/zod": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz", - "integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } }, "dependencies": { @@ -2551,21 +2552,29 @@ "requires": {} }, "@discordjs/builders": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", - "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", "requires": { - "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.26.0", - "ts-mixer": "^6.0.0", - "tslib": "^2.3.1", - "zod": "^3.11.6" + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" + }, + "dependencies": { + "discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + } } }, "@discordjs/collection": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", - "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==" }, "@discordjs/voice": { "version": "0.9.0", @@ -2684,9 +2693,14 @@ } }, "@sapphire/async-queue": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.2.0.tgz", - "integrity": "sha512-O5ND5Ljpef86X5oy8zXorQ754TMjWALcPSAgPBu4+76HLtDTrNoDyzU2uGE2G4A8Wv51u0MXHzGQ0WZ4GMtpIw==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" + }, + "@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==" }, "@sindresorhus/is": { "version": "4.6.0", @@ -2852,9 +2866,9 @@ "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" }, "@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -3234,24 +3248,24 @@ } }, "discord-api-types": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", - "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" }, "discord.js": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz", - "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", "requires": { - "@discordjs/builders": "^0.11.0", - "@discordjs/collection": "^0.4.0", - "@sapphire/async-queue": "^1.1.9", - "@types/node-fetch": "^2.5.12", - "@types/ws": "^8.2.2", - "discord-api-types": "^0.26.0", + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", "form-data": "^4.0.0", "node-fetch": "^2.6.1", - "ws": "^8.4.0" + "ws": "^8.6.0" } }, "doctrine": { @@ -3436,8 +3450,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.11", @@ -4135,9 +4148,9 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "ts-mixer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", - "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" }, "tslib": { "version": "2.4.0", @@ -4237,9 +4250,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", "requires": {} }, "yallist": { @@ -4252,11 +4265,6 @@ "version": "0.0.1-rc.35", "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" - }, - "zod": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz", - "integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg==" } } } diff --git a/package.json b/package.json index 8bf9d69ce..b7b6de1c1 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@swc/cli": "0.1.57", "@swc/core": "1.2.183", "date-fns": "2.28.0", - "discord.js": "13.6.0", + "discord.js": "13.7.0", "dotenv": "16.0.1", "got": "12.0.4", "i18n": "0.14.2", diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index 101b47375..bde9473ac 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -79,7 +79,7 @@ export class SearchCommand extends BaseCommand { const query = ( ctx.args.join(" ") || ctx.options?.getString("query") ) ?? ( - ctx.options as CommandInteractionOptionResolver<"present"> | null + ctx.options as CommandInteractionOptionResolver<"cached"> | null )?.getMessage("message")?.content; if (!query) { diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index dfe07b8fb..79147fb9d 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition, no-nested-ternary */ -import { InteractionTypes, MessageComponentTypes } from "../typings/enum"; import { MessageInteractionAction } from "../typings"; -import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageMentions, MessageOptions, MessagePayload, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; +import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageComponentInteraction, MessageMentions, MessageOptions, MessagePayload, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; export class CommandContext { public additionalArgs: Collection<string, any> = new Collection(); @@ -91,49 +90,27 @@ export class CommandContext { } public isInteraction(): boolean { - return this.isCommand() || - this.isContextMenu() || - this.isMessageComponent() || - this.isButton() || - this.isSelectMenu(); + return this.context instanceof Interaction; } public isCommand(): boolean { - return InteractionTypes[ - (this.context as Interaction).type as Exclude<Interaction["type"], "APPLICATION_COMMAND_AUTOCOMPLETE"> - ] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; + return this.context instanceof CommandInteraction; } public isContextMenu(): boolean { - return InteractionTypes[ - (this.context as Interaction).type as Exclude<Interaction["type"], "APPLICATION_COMMAND_AUTOCOMPLETE"> - ] === InteractionTypes.APPLICATION_COMMAND && "targetId" in this.context; + return this.context instanceof ContextMenuInteraction; } public isMessageComponent(): boolean { - return InteractionTypes[ - (this.context as Interaction).type as Exclude<Interaction["type"], "APPLICATION_COMMAND_AUTOCOMPLETE"> - ] === InteractionTypes.MESSAGE_COMPONENT; + return this.context instanceof MessageComponentInteraction; } public isButton(): boolean { - return ( - InteractionTypes[ - (this.context as Interaction).type as Exclude<Interaction["type"], "APPLICATION_COMMAND_AUTOCOMPLETE"> - ] === InteractionTypes.MESSAGE_COMPONENT && MessageComponentTypes[ - (this.context as ButtonInteraction).componentType - ] === MessageComponentTypes.BUTTON - ); + return this.context instanceof ButtonInteraction; } public isSelectMenu(): boolean { - return ( - InteractionTypes[ - (this.context as Interaction).type as Exclude<Interaction["type"], "APPLICATION_COMMAND_AUTOCOMPLETE"> - ] === InteractionTypes.MESSAGE_COMPONENT && MessageComponentTypes[ - (this.context as SelectMenuInteraction).componentType - ] === MessageComponentTypes.SELECT_MENU - ); + return this.context instanceof SelectMenuInteraction; } public get mentions(): MessageMentions | null { From e3d93c4890c1cc6cd0db88cb8216f5a859a68562 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 13 May 2022 23:13:16 +0700 Subject: [PATCH 318/411] chore(renovate): update configuration --- .github/renovate.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index f45d8f110..6a78efbdf 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,5 +1,4 @@ { - "extends": [ - "config:base" - ] + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["github>clytage/project-template:clytage-renovate"] } From ac9acb8d12e38ed7ffaa53c55f089a1f979fa70d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 23:42:21 +0700 Subject: [PATCH 319/411] chore(deps): pin dependencies (#930) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d6414bc0..4c52db1c0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,10 +16,10 @@ jobs: node-version: [">=16.6.0 <17.x"] steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.1.1 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # tag=v3.1.1 with: node-version: ${{ matrix.node-version }} check-latest: true @@ -38,10 +38,10 @@ jobs: node-version: [">=16.6.0 <17.x"] steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.1.1 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # tag=v3.1.1 with: node-version: ${{ matrix.node-version }} check-latest: true From 810e08518006d91f60588384fab8c645ab71c656 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 18:56:55 +0900 Subject: [PATCH 320/411] types: add more property and set `modLog` to optional in `GuildData` interface --- src/typings/index.d.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 1db49a401..68ac0c7a5 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -174,14 +174,19 @@ export interface SpotifyArtist { } export interface GuildData { + dj?: { + enable: boolean; + role: string | null; + }; infractions: Record<string, { on: number; reason: string | null; }[]>; - modLog: { + modLog?: { enable: boolean; channel: string | null; }; + mute?: string | null; } export type NonAbstractConstructor<Result = unknown> = new (...args: any[]) => Result; From cecc9dc35c970b38c91eaa990f7f0c3597b75bde Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 18:57:56 +0900 Subject: [PATCH 321/411] fix(ModLogsCommand): fix linter error --- src/commands/moderation/ModLogsCommand.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts index 92204c16b..239ebdfcd 100644 --- a/src/commands/moderation/ModLogsCommand.ts +++ b/src/commands/moderation/ModLogsCommand.ts @@ -52,7 +52,7 @@ export class ModLogsCommand extends BaseCommand { let ch: string | null; try { - ch = this.client.data.data?.[ctx.guild?.id ?? ""]?.modLog.channel ?? null; + ch = this.client.data.data?.[ctx.guild?.id ?? ""]?.modLog?.channel ?? null; if (!ch) throw new Error(""); } catch { ch = null; @@ -87,7 +87,7 @@ export class ModLogsCommand extends BaseCommand { infractions: guildData?.infractions ?? {}, modLog: { channel: newCh, - enable: guildData?.modLog.enable ?? false + enable: guildData?.modLog?.enable ?? false } } }; @@ -119,7 +119,7 @@ export class ModLogsCommand extends BaseCommand { ...(guildData ?? {}), infractions: guildData?.infractions ?? {}, modLog: { - channel: guildData?.modLog.channel ?? null, + channel: guildData?.modLog?.channel ?? null, enable: false } } @@ -143,7 +143,7 @@ export class ModLogsCommand extends BaseCommand { ...(guildData ?? {}), infractions: guildData?.infractions ?? {}, modLog: { - channel: guildData?.modLog.channel ?? null, + channel: guildData?.modLog?.channel ?? null, enable: true } } From 49eafe9e44811456520c35c336adbf99e85b64b2 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 18:58:26 +0900 Subject: [PATCH 322/411] feat(commands/music): add DJ command --- src/commands/music/DJCommand.ts | 164 ++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 src/commands/music/DJCommand.ts diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts new file mode 100644 index 000000000..ba23e4783 --- /dev/null +++ b/src/commands/music/DJCommand.ts @@ -0,0 +1,164 @@ +import { memberReqPerms } from "../../utils/decorators/CommonUtil"; +import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; +import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; +import i18n from "../../config"; + +@Command<typeof DJCommand>({ + description: i18n.__("commands.music.dj.description"), + name: "dj", + slash: { + options: [ + { + description: i18n.__("commands.music.dj.slashRoleDescription"), + name: "role", + options: [ + { + description: i18n.__("commands.music.dj.slashRoleNewRoleOption"), + name: "newrole", + required: false, + type: "ROLE" + } + ], + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.music.dj.slashEnableDescription"), + name: "enable", + type: "SUB_COMMAND" + }, + { + description: i18n.__("commands.music.dj.slashDisableDescription"), + name: "disable", + type: "SUB_COMMAND" + } + ] + }, + usage: "{prefix}dj" +}) +export class DJCommand extends BaseCommand { + private readonly options: Record<string, BaseCommand["execute"]> = { + default: ctx => ctx.reply({ + embeds: [ + createEmbed("info") + .setTitle(i18n.__("commands.music.dj.embedTitle")) + .addField(`${this.client.config.mainPrefix}dj enable`, i18n.__("commands.music.dj.slashEnableDescription")) + .addField(`${this.client.config.mainPrefix}dj disable`, i18n.__("commands.music.dj.slashDisableDescription")) + .addField(`${this.client.config.mainPrefix}dj role [${i18n.__("commands.music.dj.newRoleText")}]`, i18n.__("commands.music.dj.slashRoleDescription")) + ] + }), + disable: async ctx => { + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + dj: { + enable: false, + role: guildData?.dj?.role ?? null + }, + infractions: guildData?.infractions ?? {} + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__("commands.music.dj.disable")) + ] + }); + }, + enable: async ctx => { + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + dj: { + enable: true, + role: guildData?.dj?.role ?? null + }, + infractions: guildData?.infractions ?? {} + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__("commands.music.dj.enable")) + ] + }); + }, + role: async ctx => { + const newRole = ctx.options?.getRole("newrole")?.id ?? + ctx.args.shift()?.replace(/[^0-9]/g, ""); + + if (!newRole) { + let role: string | null; + + try { + role = this.client.data.data?.[ctx.guild?.id ?? ""]?.modLog?.channel ?? null; + if (!role) throw new Error(""); + } catch { + role = null; + } + + return ctx.reply({ + embeds: [ + createEmbed("info", role + ? i18n.__mf("commands.music.dj.role.current", { role }) + : i18n.__("commands.music.dj.role.noRole")) + ] + }); + } + + const role = await ctx.guild?.roles.fetch(newRole).catch(() => undefined); + if (!role) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.music.dj.role.invalid")) + ] + }); + } + + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + dj: { + enable: guildData?.dj?.enable ?? false, + role: role.id + }, + infractions: guildData?.infractions ?? {} + } + }; + }); + + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__mf("commands.music.dj.role.success", { role: newRole })) + ] + }); + } + }; + + @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) + public execute(ctx: CommandContext): void { + const subname = ctx.options?.getSubcommand() ?? ctx.args.shift(); + let sub = this.options[subname!] as BaseCommand["execute"] | undefined; + + if (!sub) sub = this.options.default; + sub(ctx); + } +} From bba5a1c8106e9afe95f7dfb6480df964d75fc6bb Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:00:56 +0900 Subject: [PATCH 323/411] feat(ClientUtils): change how dj role is fetched --- src/utils/structures/ClientUtils.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/utils/structures/ClientUtils.ts b/src/utils/structures/ClientUtils.ts index 9042f5866..715f15575 100644 --- a/src/utils/structures/ClientUtils.ts +++ b/src/utils/structures/ClientUtils.ts @@ -19,14 +19,11 @@ export class ClientUtils { }); } - public async fetchDJRole(guild: Guild): Promise<Role> { - return guild.roles.cache.find(x => x.name === this.client.config.djRoleName) ?? - guild.roles.create({ - mentionable: false, - name: this.client.config.djRoleName, - permissions: ["SEND_MESSAGES", "CONNECT"], - reason: "Create DJ role" - }); + public async fetchDJRole(guild: Guild): Promise<Role | null> { + const data = this.client.data.data?.[guild.id]?.dj; + if (data?.enable && data.role) return guild.roles.fetch(data.role); + + return null; } public requiredVoters(memberAmount: number): number { From 21f255ec6f9a6398e3cb3c4d739106d8ffcd7e5a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:01:35 +0900 Subject: [PATCH 324/411] feat(config/env): remove `djRoleName` --- src/config/env.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/config/env.ts b/src/config/env.ts index 01e55c9b8..824d00bec 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -30,7 +30,6 @@ export const streamStrategy = process.env.STREAM_STRATEGY! || "yt-dlp"; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; -export const djRoleName = process.env.DJ_ROLE_NAME! || "DJ"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; From 85f67ad652139ebada755d25f84fdde660971f51 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:02:22 +0900 Subject: [PATCH 325/411] chore(lang/en): add EN localization for DJ command --- lang/en.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lang/en.json b/lang/en.json index 02d946c38..51f141f81 100644 --- a/lang/en.json +++ b/lang/en.json @@ -168,6 +168,23 @@ }, "music": { "categoryName": "MUSIC", + "dj": { + "description": "Change DJ feature settings", + "slashRoleDescription": "View or change the DJ role", + "slashRoleNewRoleOption": "New role for the DJ", + "slashEnableDescription": "Enable the DJ feature", + "slashDisableDescription": "Disable the DJ feature", + "role": { + "current": "Current DJ role: <@&{role}>", + "noRole": "DJ role hasn't been set", + "invalid": "Invalid role.", + "success": "DJ role has been set to <@&{role}>" + }, + "embedTitle": "DJ", + "newRoleText": "new role", + "disable": "DJ feature has been **`DISABLED`**", + "enable": "DJ feature has been **`ENABLED`**" + }, "lyrics": { "description": "Show the lyrics from the song", "slashDescription": "Song to search", From 8a192a1464547bf3fac4ebe4176381bc9534cdd4 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:33:29 +0900 Subject: [PATCH 326/411] fix(ModerationLogs): fix linter error --- src/utils/structures/ModerationLogs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index 0018fe0cf..0d7fd4f7c 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -67,7 +67,7 @@ export class ModerationLogs { try { // Temporary solution for mod-logs checking. const modlog = this.client.data.data![guild.id]!.modLog; - if (!modlog.enable) throw new Error(); + if (!modlog?.enable) throw new Error(); const id = modlog.channel; const channel = await guild.channels.fetch(id!).catch(() => undefined); From 318025fc1dc3c85cebe3cb9ffac3c1654e4c1875 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:34:35 +0900 Subject: [PATCH 327/411] feat(SkipToCommand): only give no perms message when dj feature is enabled --- src/commands/music/SkipToCommand.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index 51c7c710f..db94de6fd 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -48,7 +48,11 @@ export class SkipToCommand extends BaseCommand { @sameVC public async execute(ctx: CommandContext): Promise<Message | undefined> { const djRole = await this.client.utils.fetchDJRole(ctx.guild!); - if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { + if ( + this.client.data.data?.[ctx.guild!.id]?.dj?.enable && + !ctx.member?.roles.cache.has(djRole?.id ?? "") && + !ctx.member?.permissions.has("MANAGE_GUILD") + ) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noPermission"), true)] }); From f32f4e58261df90de3ef7a8567692fe4f65d6fe0 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:34:55 +0900 Subject: [PATCH 328/411] feat(RemoveCommand): only give no perms message when dj feature is enabled --- src/commands/music/RemoveCommand.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 1a525e124..3038cbad6 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -32,7 +32,11 @@ export class RemoveCommand extends BaseCommand { @sameVC public async execute(ctx: CommandContext): Promise<void> { const djRole = await this.client.utils.fetchDJRole(ctx.guild!); - if (!ctx.member?.roles.cache.has(djRole.id) && !ctx.member?.permissions.has("MANAGE_GUILD")) { + if ( + this.client.data.data?.[ctx.guild!.id]?.dj?.enable && + !ctx.member?.roles.cache.has(djRole?.id ?? "") && + !ctx.member?.permissions.has("MANAGE_GUILD") + ) { void ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.remove.noPermission"), true)] }); From 8bed1d2baa815b75a4d31e0230bc48795c84aa0a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:35:37 +0900 Subject: [PATCH 329/411] chore(env_example): remove DJ_ROLE_NAME --- .env_example | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.env_example b/.env_example index f08141c40..32b6c1f51 100644 --- a/.env_example +++ b/.env_example @@ -89,12 +89,6 @@ ENABLE_24_7_COMMAND="" # Default: no STAY_IN_VC_AFTER_FINISHED="" -#============================================================================== -# OPTIONAL - What is your server's DJ role name? -# Example: DJ_ROLE_NAME="DJ" -# Default: DJ -DJ_ROLE_NAME="" - #============================================================================== # OPTIONAL - What is your server's Muted role name? # Example: MUTE_ROLE_NAME="Muted" From 55c01518684de540f3af3c224e1632b24a56f15b Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:45:00 +0900 Subject: [PATCH 330/411] chore(app.json): synchronize with env_example --- app.json | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/app.json b/app.json index 5d3d7a492..c9a82b71c 100644 --- a/app.json +++ b/app.json @@ -13,9 +13,9 @@ "value": "!" }, "ALT_PREFIX": { - "description": "What should be the alternative prefixes of your bot? | Example: [\"?\", \"{mention}\"] | Formats: {mention} = bot mention", + "description": "What should be the alternative prefixes of your bot? | Example: \"?, {mention}\" | Formats: {mention} = @bot mention", "required": false, - "value": "[\"{mention}\"]" + "value": "{mention}" }, "EMBED_COLOR": { "description": "What should be your bot's embed color code? (hex) | Example: 3CAAFF", @@ -28,32 +28,21 @@ "value": "en" }, "ACTIVITIES": { - "description": "Activity list, what text should be appear on your bot's status? | Example: [\"Hello!\"]", + "description": "Activity list, what text should be appear on your bot's status? | Example: \"Hello world!, My prefix is {prefix}\" | Formats: {prefix} = bot prefix, {userCount} = user amount, {textChannelsCount} = text channel amount, {serverCount} = server amount, {playingCount} = amount of server playing music using the bot, {username} = bot username", "required": false, - "value": "[\"My default prefix is {prefix}\", \"music with {userCount} users\", \"{textChannelsCount} text channels in {serverCount} guilds\", \"Hello there, my name is {username}\"]" + "value": "My default prefix is {prefix}, music with {userCount} users, {textChannelsCount} text channels in {serverCount} guilds, 'Hello there, my name is {username}'" }, "ACTIVITY_TYPES": { - "description": "Activity type list. The order of this value is the same as ACTIVITIES. For example, first value of ACTIVITIES will use first value of this. | Example: [\"PLAYING\", \"COMPETING\"]", + "description": "Activity type list. The order of this value is the same as ACTIVITIES. For example, first value of ACTIVITIES will use first value of this. | Example: \"PLAYING, COMPETING\" | Available: PLAYING, WATCHING, LISTENING, COMPETING", "required": false, - "value": "[\"PLAYING\", \"LISTENING\", \"WATCHING\", \"PLAYING\", \"COMPETING\"]" + "value": "PLAYING, LISTENING, WATCHING, PLAYING, COMPETING" }, - "OWNERS": { - "description": "What is the owner's ID of the bot? | Example: [\"390045370240991234\", \"366169273485361153\"]", - "required": false, - "value": "[\"\"]" - }, - "DEV_GUILD": { - "description": "What is your server's ID? | Example: [\"521178509033340968\"]", - "required": false, - "value": "[\"\"]" - }, - "NODE_ENV": { - "description": "In which mode do you want to activate your bot? | Example: production | Available: production, development", - "required": false, - "value": "production" + "MAIN_GUILD": { + "description": "What is your server's ID? | Example: \"521178509033340968, 521178509033340968\"", + "required": false }, "STREAM_STRATEGY": { - "description": "Which youtube downloader do you want to use? But if you use play-dl, it will support a few sites. | Example: \"play-dl\" | Available: \"play-dl\", \"yt-dlp\"", + "description": "Which youtube downloader do you want to use? But if you use play-dl, it will support a few sites. | Example: play-dl | Available: play-dl, yt-dlp", "required": false, "value": "yt-dlp" }, @@ -77,11 +66,6 @@ "required": false, "value": "no" }, - "DJ_ROLE_NAME": { - "description": "What is your server's DJ role name? | Example: DJ", - "required": false, - "value": "DJ" - }, "MUTE_ROLE_NAME": { "description": "What is your server's Muted role name? | Example: Muted", "required": false, @@ -96,16 +80,6 @@ "description": "What should be your bot's emoji for every failed sentence? | Example: ❌", "required": false, "value": "❌" - }, - "DEBUG_MODE": { - "description": "Do you want to enable Debug Mode? This mode will print all information (such as raw event data, queue changes, etc) on the console. | Example: no", - "required": false, - "value": "no" - }, - "REPL": { - "description": "Do you want to enable REPL feature? You can evaluate code from the console using this feature. REPL included with \"shardManager\" variable containing the ShardManager of the bot. | Example: no", - "required": false, - "value": "no" } }, "repository": "https://github.com/Clytage/rawon", From d297a9dd6d0e4375ce0b6df09535ebe66c35b3b6 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 14 May 2022 19:48:27 +0900 Subject: [PATCH 331/411] chore(deps): update lockfile --- package-lock.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 7101a836e..13f4d62b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From a73737492c6ef5cee16ca129dcd6fe8d10975b26 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sun, 15 May 2022 22:10:24 +0700 Subject: [PATCH 332/411] chore(deps): update lockfile --- package-lock.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package-lock.json b/package-lock.json index 13f4d62b2..7101a836e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "rawon", "version": "3.0.0-dev", "license": "BSD-3-Clause", "dependencies": { From d7c79f68e32228b47bdfa02d7deb914fabd0af9a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 17 May 2022 13:49:11 +0000 Subject: [PATCH 333/411] chore(deps): update all non-major dependencies (#933) * chore(deps): update all non-major dependencies * chore(deps): don't bump soundcloud.ts Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: mzrtamp <mozartrafikt@gmail.com> --- .github/workflows/test.yml | 4 +- package-lock.json | 456 ++++++++++++++++++------------------- package.json | 8 +- 3 files changed, 234 insertions(+), 234 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4c52db1c0..7aa059499 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # tag=v3.1.1 + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # tag=v3.2.0 with: node-version: ${{ matrix.node-version }} check-latest: true @@ -41,7 +41,7 @@ jobs: uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # tag=v3.1.1 + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # tag=v3.2.0 with: node-version: ${{ matrix.node-version }} check-latest: true diff --git a/package-lock.json b/package-lock.json index 7101a836e..f39ddd96d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.183", + "@swc/core": "1.2.186", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -25,11 +25,11 @@ "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.1", + "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.23.0", - "@typescript-eslint/parser": "5.23.0", + "@typescript-eslint/eslint-plugin": "5.24.0", + "@typescript-eslint/parser": "5.24.0", "eslint": "8.15.0", "typescript": "4.6.4" }, @@ -41,9 +41,9 @@ } }, "node_modules/@clytage-pkg/eslint-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.1.tgz", - "integrity": "sha512-kRD4Lxwm3OkASKkUJsKk1Iz/aOkK4uaSDfRmkdzQfHjBz8xn0HgidnfvbwDxummQHhkLKxHEt+SVUw8p4F2k9g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", + "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", "dev": true, "peerDependencies": { "@typescript-eslint/eslint-plugin": ">=5.18.0", @@ -281,9 +281,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.183.tgz", - "integrity": "sha512-RwAq9broU0YqoVJqPpTVxXFAj63+Fx1UWAtBsEqWyJQJc7RunuqNb2vMzp9X+5GeVr6yaa8qE7iKB99gp5enJg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", + "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", "bin": { "swcx": "run_swcx.js" }, @@ -295,25 +295,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.183", - "@swc/core-android-arm64": "1.2.183", - "@swc/core-darwin-arm64": "1.2.183", - "@swc/core-darwin-x64": "1.2.183", - "@swc/core-freebsd-x64": "1.2.183", - "@swc/core-linux-arm-gnueabihf": "1.2.183", - "@swc/core-linux-arm64-gnu": "1.2.183", - "@swc/core-linux-arm64-musl": "1.2.183", - "@swc/core-linux-x64-gnu": "1.2.183", - "@swc/core-linux-x64-musl": "1.2.183", - "@swc/core-win32-arm64-msvc": "1.2.183", - "@swc/core-win32-ia32-msvc": "1.2.183", - "@swc/core-win32-x64-msvc": "1.2.183" + "@swc/core-android-arm-eabi": "1.2.186", + "@swc/core-android-arm64": "1.2.186", + "@swc/core-darwin-arm64": "1.2.186", + "@swc/core-darwin-x64": "1.2.186", + "@swc/core-freebsd-x64": "1.2.186", + "@swc/core-linux-arm-gnueabihf": "1.2.186", + "@swc/core-linux-arm64-gnu": "1.2.186", + "@swc/core-linux-arm64-musl": "1.2.186", + "@swc/core-linux-x64-gnu": "1.2.186", + "@swc/core-linux-x64-musl": "1.2.186", + "@swc/core-win32-arm64-msvc": "1.2.186", + "@swc/core-win32-ia32-msvc": "1.2.186", + "@swc/core-win32-x64-msvc": "1.2.186" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.183.tgz", - "integrity": "sha512-DzFR8sokjVESnSXWR/4hLDxPUuvFoTpAHbMEQjj6YrwiXeWQneFudATa0ysyGlszGrmlrT+yL5wrK+gp0M8+Kg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", + "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", "cpu": [ "arm" ], @@ -326,9 +326,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.183.tgz", - "integrity": "sha512-LHDSXrtRLYvSbPU0Canp6kcanGbu5IdApvY/2njyLLlhi9GNg+0VJosc14O5sSid5qdg/mMaq4y6u1X6j8CxUw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", + "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", "cpu": [ "arm64" ], @@ -341,9 +341,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.183.tgz", - "integrity": "sha512-4UZhW/6DzcwFI5MQcGHEsjCDl32Ilfg09TOtr9IO9QK0nADE0Vy6K83ze8iXDIxVnu/jmc2rrX/FwmqRCS7F9w==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", + "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", "cpu": [ "arm64" ], @@ -356,9 +356,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.183.tgz", - "integrity": "sha512-3BYS/4jkZAZbmrxXYeDAljjAbE/TAiEXIDKeGiRZ+nRk0sLNqwO30aWZl34U1CbzuK3gPcGHTEVuChUCoTkWKw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", + "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", "cpu": [ "x64" ], @@ -371,9 +371,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.183.tgz", - "integrity": "sha512-9nJqmFZzo2sCcRRZzKxYjEHE9dL3xj0vkELIkfDi7p1C+GpiwZTIh6s39KusnhY89s8igdYWnRyg/3d2FHsuFA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", + "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", "cpu": [ "x64" ], @@ -386,9 +386,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.183.tgz", - "integrity": "sha512-Bd0jwn715oqJTVICZiyWx6OYK7qAXZhJbpJLEekpkMfTyveLCnwyou+bwdldGPdqOHb+3q0Cg2eds1P0pXs9Xw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", + "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", "cpu": [ "arm" ], @@ -401,9 +401,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.183.tgz", - "integrity": "sha512-QdQJyfL9nQPYMXdH2pdN6v0M0G8hdEY1g2Cao07CwNVGD0ZHURFY1GFPoyXLkVPVUqyvUPCRZSfC4fTUrKUFeA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", + "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", "cpu": [ "arm64" ], @@ -416,9 +416,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.183.tgz", - "integrity": "sha512-hkDyhwgsK+MPZ47CSjk3VIrabX8xzuQHRAJoPseR/kTJ782ur19Dsun+7tVD8aSgmWjG7nBHYvsdF96jLLim6g==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", + "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", "cpu": [ "arm64" ], @@ -431,9 +431,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.183.tgz", - "integrity": "sha512-jR6yjQWBm5q9wY4kXfT+3rKHoE9+ugGycaO/yuSeekxvs+dlEGcup0vu/VjfurnbfpAj7O2dnSKH7TE95wMkQg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", + "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", "cpu": [ "x64" ], @@ -446,9 +446,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.183.tgz", - "integrity": "sha512-4YM3TWishQal3qFsNwWXd47em2zTOShgkxUBm2SOGKtPCMsrfi9MJdesyQH5rCrNWGy1lvo7XpvnN2GSEzYjBQ==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", + "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", "cpu": [ "x64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.183.tgz", - "integrity": "sha512-mIXR1hPkNL2/v3xEcfbgZJclwMuQxJNVIHUyu6+cb8vUp4rbYoJioEi0qh613c36o9MpHccKZftMMd0buNFWXg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", + "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", "cpu": [ "arm64" ], @@ -476,9 +476,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.183.tgz", - "integrity": "sha512-NokriuUcwOBdj6k6fpNrFcprv2FoHfyV6ymBaZuk8UXdoRhDFguoTsFxKxKo1oGyqYreuPmaK7NBU/H9SNRxDA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", + "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", "cpu": [ "ia32" ], @@ -491,9 +491,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.183.tgz", - "integrity": "sha512-oWiEDrUb4aRRc7y558KonVoFqmGXGKFvOj8ceiz4UVwoQCcwNX3djvjIf3zwkj+DwjKiHPFVwhENaRgMphthrA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", + "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", "cpu": [ "x64" ], @@ -596,19 +596,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", - "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", + "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/type-utils": "5.23.0", - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/type-utils": "5.24.0", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -629,15 +629,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", - "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", + "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "debug": "^4.3.4" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -656,13 +656,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", + "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -673,13 +673,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", - "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", + "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" }, "engines": { @@ -699,9 +699,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", + "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -712,17 +712,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", + "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -739,15 +739,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", - "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", + "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -763,13 +763,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", + "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.24.0", + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1050,9 +1050,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -2258,9 +2258,9 @@ "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2545,9 +2545,9 @@ }, "dependencies": { "@clytage-pkg/eslint-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.1.tgz", - "integrity": "sha512-kRD4Lxwm3OkASKkUJsKk1Iz/aOkK4uaSDfRmkdzQfHjBz8xn0HgidnfvbwDxummQHhkLKxHEt+SVUw8p4F2k9g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", + "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", "dev": true, "requires": {} }, @@ -2719,101 +2719,101 @@ } }, "@swc/core": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.183.tgz", - "integrity": "sha512-RwAq9broU0YqoVJqPpTVxXFAj63+Fx1UWAtBsEqWyJQJc7RunuqNb2vMzp9X+5GeVr6yaa8qE7iKB99gp5enJg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", + "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", "requires": { - "@swc/core-android-arm-eabi": "1.2.183", - "@swc/core-android-arm64": "1.2.183", - "@swc/core-darwin-arm64": "1.2.183", - "@swc/core-darwin-x64": "1.2.183", - "@swc/core-freebsd-x64": "1.2.183", - "@swc/core-linux-arm-gnueabihf": "1.2.183", - "@swc/core-linux-arm64-gnu": "1.2.183", - "@swc/core-linux-arm64-musl": "1.2.183", - "@swc/core-linux-x64-gnu": "1.2.183", - "@swc/core-linux-x64-musl": "1.2.183", - "@swc/core-win32-arm64-msvc": "1.2.183", - "@swc/core-win32-ia32-msvc": "1.2.183", - "@swc/core-win32-x64-msvc": "1.2.183" + "@swc/core-android-arm-eabi": "1.2.186", + "@swc/core-android-arm64": "1.2.186", + "@swc/core-darwin-arm64": "1.2.186", + "@swc/core-darwin-x64": "1.2.186", + "@swc/core-freebsd-x64": "1.2.186", + "@swc/core-linux-arm-gnueabihf": "1.2.186", + "@swc/core-linux-arm64-gnu": "1.2.186", + "@swc/core-linux-arm64-musl": "1.2.186", + "@swc/core-linux-x64-gnu": "1.2.186", + "@swc/core-linux-x64-musl": "1.2.186", + "@swc/core-win32-arm64-msvc": "1.2.186", + "@swc/core-win32-ia32-msvc": "1.2.186", + "@swc/core-win32-x64-msvc": "1.2.186" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.183.tgz", - "integrity": "sha512-DzFR8sokjVESnSXWR/4hLDxPUuvFoTpAHbMEQjj6YrwiXeWQneFudATa0ysyGlszGrmlrT+yL5wrK+gp0M8+Kg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", + "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.183.tgz", - "integrity": "sha512-LHDSXrtRLYvSbPU0Canp6kcanGbu5IdApvY/2njyLLlhi9GNg+0VJosc14O5sSid5qdg/mMaq4y6u1X6j8CxUw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", + "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.183.tgz", - "integrity": "sha512-4UZhW/6DzcwFI5MQcGHEsjCDl32Ilfg09TOtr9IO9QK0nADE0Vy6K83ze8iXDIxVnu/jmc2rrX/FwmqRCS7F9w==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", + "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.183.tgz", - "integrity": "sha512-3BYS/4jkZAZbmrxXYeDAljjAbE/TAiEXIDKeGiRZ+nRk0sLNqwO30aWZl34U1CbzuK3gPcGHTEVuChUCoTkWKw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", + "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.183.tgz", - "integrity": "sha512-9nJqmFZzo2sCcRRZzKxYjEHE9dL3xj0vkELIkfDi7p1C+GpiwZTIh6s39KusnhY89s8igdYWnRyg/3d2FHsuFA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", + "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.183.tgz", - "integrity": "sha512-Bd0jwn715oqJTVICZiyWx6OYK7qAXZhJbpJLEekpkMfTyveLCnwyou+bwdldGPdqOHb+3q0Cg2eds1P0pXs9Xw==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", + "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.183.tgz", - "integrity": "sha512-QdQJyfL9nQPYMXdH2pdN6v0M0G8hdEY1g2Cao07CwNVGD0ZHURFY1GFPoyXLkVPVUqyvUPCRZSfC4fTUrKUFeA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", + "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.183.tgz", - "integrity": "sha512-hkDyhwgsK+MPZ47CSjk3VIrabX8xzuQHRAJoPseR/kTJ782ur19Dsun+7tVD8aSgmWjG7nBHYvsdF96jLLim6g==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", + "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.183.tgz", - "integrity": "sha512-jR6yjQWBm5q9wY4kXfT+3rKHoE9+ugGycaO/yuSeekxvs+dlEGcup0vu/VjfurnbfpAj7O2dnSKH7TE95wMkQg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", + "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.183.tgz", - "integrity": "sha512-4YM3TWishQal3qFsNwWXd47em2zTOShgkxUBm2SOGKtPCMsrfi9MJdesyQH5rCrNWGy1lvo7XpvnN2GSEzYjBQ==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", + "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.183.tgz", - "integrity": "sha512-mIXR1hPkNL2/v3xEcfbgZJclwMuQxJNVIHUyu6+cb8vUp4rbYoJioEi0qh613c36o9MpHccKZftMMd0buNFWXg==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", + "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.183.tgz", - "integrity": "sha512-NokriuUcwOBdj6k6fpNrFcprv2FoHfyV6ymBaZuk8UXdoRhDFguoTsFxKxKo1oGyqYreuPmaK7NBU/H9SNRxDA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", + "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.183", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.183.tgz", - "integrity": "sha512-oWiEDrUb4aRRc7y558KonVoFqmGXGKFvOj8ceiz4UVwoQCcwNX3djvjIf3zwkj+DwjKiHPFVwhENaRgMphthrA==", + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", + "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", "optional": true }, "@szmarczak/http-timer": { @@ -2903,98 +2903,98 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", - "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", + "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/type-utils": "5.23.0", - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/type-utils": "5.24.0", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", - "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", + "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", + "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0" } }, "@typescript-eslint/type-utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", - "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", + "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", + "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", + "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", - "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", + "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", + "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.24.0", + "eslint-visitor-keys": "^3.3.0" } }, "acorn": { @@ -3200,9 +3200,9 @@ "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -4058,9 +4058,9 @@ "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" diff --git a/package.json b/package.json index b7b6de1c1..0c5cda0b4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.183", + "@swc/core": "1.2.186", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -42,11 +42,11 @@ "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.1", + "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.23.0", - "@typescript-eslint/parser": "5.23.0", + "@typescript-eslint/eslint-plugin": "5.24.0", + "@typescript-eslint/parser": "5.24.0", "eslint": "8.15.0", "typescript": "4.6.4" }, From f974e6f9d65f411660c640eedd2ecd01f0e2e6d9 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 17 May 2022 21:35:09 +0700 Subject: [PATCH 334/411] chore(*): beautify --- lang/en.json | 696 ++++++++++++++++----------------- lang/es.json | 658 +++++++++++++++---------------- lang/id.json | 584 +++++++++++++-------------- src/config/env.ts | 2 +- src/utils/handlers/YTDLUtil.ts | 2 +- yt-dlp-utils/index.js | 26 +- 6 files changed, 984 insertions(+), 984 deletions(-) diff --git a/lang/en.json b/lang/en.json index 51f141f81..15d9fbb74 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1,350 +1,350 @@ { - "commands": { - "developers": { - "categoryName": "DEVELOPER", - "eval": { - "description": "Evaluate to the bot", - "usage": "{prefix}eval <some code>", - "noCode": "No code was provided.", - "outputString": "Output", - "errorString": "Error" - } - }, - "general": { - "categoryName": "GENERAL", - "about": { - "description": "Show the bot's information", - "osUptimeString": "OS Uptime", - "processUptimeString": "Process Uptime", - "botUptimeString": "Bot Uptime", - "nodeVersionString": "Node.js version", - "discordJSVersionString": "Discord.js version", - "ffmpegVersionString": "FFmpeg version", - "botVersionString": "Bot version", - "sourceCodeString": "Source code", - "aboutFooter": "{botname} - Bot Information" - }, - "help": { - "description": "Shows the command list or information for a specific command", - "slashDescription": "Command name to view a specific information about the command", - "usage": "{prefix}help [command]", - "authorString": "{username} - Command List", - "footerString": "{prefix}help <command> to get more information on a specific command", - "noCommand": "Couldn't find any matching command name", - "commandSelectionString": "Please select the command", - "noCommanSuggest": "Couldn't find matching command name. Did you mean this?", - "commandDetailTitle": "{username} - Information about {command} command", - "nameString": "Name", - "descriptionString": "Description", - "aliasesString": "Aliases", - "usageString": "Usage", - "commandUsageFooter": "<> = required | [] = optional {devOnly}" - }, - "invite": { - "description": "Get the invite link for the bot", - "inviteTitle": "{bot} - Invite Link", - "clickURL": "**[Click here]({url})** to invite this bot to your server." - }, - "ping": { - "description": "Shows the current ping of the bot", - "footerString": "Latency of: {user}" - } - }, - "moderation": { - "categoryName": "MODERATION", - "common": { - "noUserSpecified": "Please specify someone.", - "noReasonString": "[Not specified]", - "reasonString": "**Reason**" - }, - "ban": { - "description": "Ban someone from the server", - "slashMemberIDDescription": "Who do you like to ban?", - "slashReasonDescription": "Ban reason", - "usage": "{prefix}ban <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`BAN MEMBERS`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`BAN MEMBERS`** permission.", - "userNoBannable": "Sorry, but I can't **`BAN`** that member.", - "userBanned": "You have been **`BANNED`** from **{guildName}**", - "bannedByString": "Banned by: {author}", - "banFail": "Unable to **`BAN`** member, because: `{message}`", - "banSuccess": "**{user}** has been **`BANNED`** from the server." - }, - "infractions": { - "description": "Show the infractions of a user", - "slashMemberDescription": "Who do you like to see the infractions of?", - "usage": "{prefix}infractions [@mention | id]", - "embedAuthorText": "{user} - Infractions", - "noInfractions": "No infractions." - }, - "kick": { - "description": "Kick someone from the server", - "slashMemberDescription": "Who do you like to kick?", - "slashReasonDescription": "Kick reason", - "usage": "{prefix}kick <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`KICK MEMBERS`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`KICK MEMBERS`** permission.", - "userNoKickable": "Sorry, but I can't **`KICK`** that member.", - "userKicked": "You have been **`KICKED`** from **{guildName}**", - "kickedByString": "Kicked by: {author}", - "kickFail": "Unable to **`KICK`** member, because: `{message}`", - "kickSuccess": "**{user}** has been **`KICKED`** from the server." - }, - "modlogs": { - "description": "Change moderation logs feature settings", - "slashChannelDescription": "View or change the moderation logs channel", - "slashChannelNewChannelOption": "New channel for the moderation logs", - "slashEnableDescription": "Enable the moderation logs feature", - "slashDisableDescription": "Disable the moderation logs feature", - "usage": "modlogs", - "channel": { - "current": "Current moderation logs channel: <#{channel}>", - "noChannel": "Moderation logs channel hasn't been set", - "invalid": "Invalid channel. Channel must be a text channel.", - "success": "Moderation logs channel has been set to <#{channel}>" - }, - "embedTitle": "Moderation Logs", - "newChannelText": "new channel", - "disable": "Moderation logs feature has been **`DISABLED`**", - "enable": "Moderation logs feature has been **`ENABLED`**" - }, - "mute": { - "description": "Mute someone on the server", - "slashMemberDescription": "Who do you like to mute?", - "slashReasonDescription": "Mute reason", - "usage": "{prefix}mute <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", - "cantMuteOwner": "You can't mute the server owner!", - "unableToCreateMuteRole": "Unable to create mute role", - "alreadyMuted": "That member is already **`MUTED`**", - "userMuted": "You have been **`MUTED`** on **{guildName}**", - "mutedByString": "Muted by: {author}", - "muteFail": "Unable to **`MUTE`** member, because: `{message}`", - "muteSuccess": "**{user}** has been **`MUTED`** on the server." - }, - "purge": { - "description": "Delete messages", - "slashAmountDescription": "Number of messages to delete", - "usage": "{prefix}purge <amount>", - "userNoPermission": "Sorry, but you don't have **`MANAGE MESSAGES`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", - "invalidAmount": "Please specify a valid number of messages to delete.", - "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", - "purgeSuccess": "{amount, plural, one {**1** message} other {**#** messages}} have been **`PURGED`**" - }, - "unban": { - "description": "Un-ban someone from the server", - "slashMemberDescription": "Who do you like to un-ban?", - "slashReasonDescription": "Un-ban reason", - "usage": "{prefix}unban <id> [reason]", - "alreadyUnban": "That user is not **`BANNED`**", - "unbanFail": "Unable to **`UN-BAN`** member, because: `{message}`", - "ubanSuccess": "**{user}** has been **`UN-BANNED`** from the server." - }, - "unmute": { - "description": "Unmute someone on the server", - "slashMemberDescription": "Who do you like to unmute?", - "slashReasonDescription": "Unmute reason", - "usage": "{prefix}unmute <@mention | id> [reason]", - "unableToCreateMuteRole": "Unable to create mute role", - "noMuted": "That member is not **`MUTED`**", - "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**", - "unmutedByString": "Un-muted by: {author}", - "unmuteFail": "Unable to **`UN-MUTE`** member, because: `{message}`", - "unmuteSuccess": "**{user}** has been **`UN-MUTED`** on the server." - }, - "warn": { - "description": "Warn member on the server", - "slashMemberDescription": "Who do you like to warn?", - "slashReasonDescription": "Warn reason", - "usage": "{prefix}warn <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`MANAGE SERVER`** permission to use this command.", - "noDM": "Unable to create a DM with that user, but I'll keep warn 'em.", - "userWarned": "You have been **`WARNED`** on **{guildName}**", - "warnedByString": "Warned by: {author}", - "warnSuccess": "**{user}** has been **`WARNED`** on the server." - } - }, - "music": { - "categoryName": "MUSIC", - "dj": { - "description": "Change DJ feature settings", - "slashRoleDescription": "View or change the DJ role", - "slashRoleNewRoleOption": "New role for the DJ", - "slashEnableDescription": "Enable the DJ feature", - "slashDisableDescription": "Disable the DJ feature", - "role": { - "current": "Current DJ role: <@&{role}>", - "noRole": "DJ role hasn't been set", - "invalid": "Invalid role.", - "success": "DJ role has been set to <@&{role}>" - }, - "embedTitle": "DJ", - "newRoleText": "new role", - "disable": "DJ feature has been **`DISABLED`**", - "enable": "DJ feature has been **`ENABLED`**" - }, - "lyrics": { - "description": "Show the lyrics from the song", - "slashDescription": "Song to search", - "usage": "{prefix}lyrics [song]", - "noQuery": "There is nothing playing, or no arguments are provided.", - "apiError": "The API could not find the song **{song}**, because: `{message}`" - }, - "nowplaying": { - "description": "Show the media player status", - "emptyQueue": "Queue is empty", - "disableButton": "This button is no longer active and removed." - }, - "pause": { - "description": "Pause the music player", - "alreadyPause": "The music player is already paused.", - "pauseMessage": "The music player has been paused." - }, - "play": { - "description": "Play some music", - "slashQueryDescription": "Query to search", - "usage": "{prefix}play <query | url>", - "alreadyPlaying": "The music player is already playing to **`{voiceChannel}`** voice channel.", - "noSongData": "That URL doesn't have any song data." - }, - "queue": { - "description": "Show the queue list" - }, - "remove": { - "description": "Remove song(s) from the queue", - "slashPositionsDescription": "Position of the songs to remove separated by comma or space", - "usage": "{prefix}remove <positions>", - "noPermission": "You don't have permission to use this command.", - "noPositions": "Please specify the song positions to remove.", - "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue. ", - "songSkip": "The current song was removed, song skipped." - }, - "repeat": { - "description": "Repeat current music or the queue", - "slashQueue": "Set repeat mode to **`QUEUE`**", - "slashSong": "Set repeat mode to **`SONG`**", - "slashDisable": "Disable repeat mode", - "usage": "{prefix}repeat <{options}>", - "actualMode": "Current repeat mode is **`{mode}`**", - "footer": "To change mode, see {prefix}help repeat", - "newMode": "The repeat mode has been set to **`{mode}`**" - }, - "resume": { - "description": "Resume the music player", - "alreadyResume": "The music player is not paused.", - "resumeMessage": "The music player has been resumed." - }, - "search": { - "description": "Play some music using provided query", - "slashDescription": "Search the specified music", - "slashQueryDescription": "Query to search", - "slashSourceDescription": "Where the music should be taken?", - "usage": "{prefix}search <query> [source]", - "noQuery": "Please provide some query to search.", - "noTracks": "I can't obtain any search results.", - "queueEmbed": "Please select some music, you can choose more than one using blank space or {separator}.\n", - "trackSelectionMessage": "Music Selection", - "cancelMessage": "Type {cancel} or c to cancel music selection.", - "noSelection": "No or invalid value entered, music selection canceled.", - "canceledMessage": "Music selection canceled.", - "interactionContent": "Please select some music", - "interactionPlaceholder": "Please select some music" - }, - "shuffle": { - "description": "Set mode for shuffle feature", - "actualState": "Shuffle mode is **`{state}`**", - "newState": "Shuffle mode is now set to **`{state}`**" - }, - "skip": { - "description": "Skip the music", - "voteResultMessage": "{length}/{required} voted to skip the current song", - "skipMessage": "Skipped **{song}**" - }, - "skipTo": { - "description": "Skip to specific position in the queue", - "slashFirstDescription": "Rewind to the first song in the queue", - "slashLastDescription": "Skip to the last song in the queue", - "slashSpecificDescription": "Skip to a specific position in the queue", - "slashPositionDescription": "Song position in the queue", - "usage": "{prefix}skipto <{options} | number>", - "noPermission": "You don't have permission to use this command.", - "noSongPosition": "Unable to find song in that position.", - "cantPlay": "You can't skip to current music.", - "skipMessage": "Skipped to **{song}**" - }, - "stayInQueue": { - "description": "Makes the bot stay in the voice channel when the queue has ended", - "slashDescription": "Turns mode for stay-in-voice feature", - "247Disabled": "Stay-in-voice command is disabled.", - "actualState": "Stay-in-voice is **`{state}`**", - "newState": "Stay-in-voice is now set to **`{state}`**" - }, - "stop": { - "description": "Stop the music player", - "stoppedMessage": "The music player has been stopped." - }, - "volume": { - "description": "Change the media player volume", - "slashDescription": "New volume", - "usage": "{prefix}volume [new volume]", - "currentVolume": "The current volume is **`{volume}`**", - "changeVolume": "To change the volume, provide volume number when using this command.", - "plsPause": "Please pause the music instead of setting the volume to **`{volume}`**", - "volumeLimit": "I can't set the volume above **`{maxVol}`**", - "newVolume": "Volume has been set to **`{volume}`**" - } - } - }, - "utils": { - "musicDecorator": { - "noQueue": "There is nothing playing.", - "noInVC": "Sorry, but you need to be in a voice channel to do that.", - "validVCJoinable": "Sorry, but I can't **`CONNECT`** to your voice channel, make sure I have the proper permissions.", - "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel, make sure I have the proper permissions.", - "sameVC": "You need to be in the same voice channel as mine." - }, - "generalHandler": { - "handleVideoInitial": "Added {length} songs to the queue\n\n", - "errorJoining": "Error while joining the voice channel, because: `{message}`", - "queueEnded": "Queue has ended, use **`{usage}`** to play more music.", - "leftVC": "Left from the voice channel because I've been inactive for too long.", - "startPlaying": "Started playing **{song}**", - "stopPlaying": "Stopped playing **{song}**", - "errorPlaying": "An error occurred while trying to play music, because: `{message}`" - }, - "cooldownMessage": "{author}, please wait **`{timeleft}`** of cooldown time." - }, - "events": { - "channelUpdate": { - "reconfigureConnection": "Voice channel region changed. Re-configuring connection...", - "connectionReconfigured": "Connection successfully re-configured.", - "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted." - }, - "createInteraction": { - "message1": "Sorry, but that interaction is only for <@{user}> and the server staff.", - "message2": "Sorry, but that interaction is only for <@{user}>" - }, - "createMessage": "Hi {author}, my prefix is **`{prefix}`**", - "voiceStateUpdate": { - "disconnectFromVCMessage": "Disconnected from the voice channel, the queue has been deleted.", - "reconfigureConnection": "Moved to a voice channel with a different region. Re-configuring connection...", - "connectionReconfigured": "Connection successfully re-configured.", - "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted.", - "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", - "unableJoinStageMessage": "Unable to join as Speaker, the queue has been deleted.", - "joinStageMessage": "Successfully joined to the stage channel as Speaker.", - "deleteQueue": "**`{duration}`** has been passed and there's no one who joined the voice channel, the queue has been deleted.", - "deleteQueueFooter": "Queue Deleted", - "pauseQueue": "Everyone has left from the voice channel. To save resources, the queue has been paused.\nIf no one joins the voice channel in the next **`{duration}`**, the queue will be deleted.", - "pauseQueueFooter": "Queue Paused", - "resumeQueue": "Someone has joined the voice channel.\nResuming **{song}**", - "resumeQueueFooter": "Queue Resumed" - } - }, - "reusable": { - "pageFooter": "Page {actual} of {total}", - "invalidUsage": "Invalid usage, please use **`{prefix} {name}`** for more information." - } + "commands": { + "developers": { + "categoryName": "DEVELOPER", + "eval": { + "description": "Evaluate to the bot", + "usage": "{prefix}eval <some code>", + "noCode": "No code was provided.", + "outputString": "Output", + "errorString": "Error" + } + }, + "general": { + "categoryName": "GENERAL", + "about": { + "description": "Show the bot's information", + "osUptimeString": "OS Uptime", + "processUptimeString": "Process Uptime", + "botUptimeString": "Bot Uptime", + "nodeVersionString": "Node.js version", + "discordJSVersionString": "Discord.js version", + "ffmpegVersionString": "FFmpeg version", + "botVersionString": "Bot version", + "sourceCodeString": "Source code", + "aboutFooter": "{botname} - Bot Information" + }, + "help": { + "description": "Shows the command list or information for a specific command", + "slashDescription": "Command name to view a specific information about the command", + "usage": "{prefix}help [command]", + "authorString": "{username} - Command List", + "footerString": "{prefix}help <command> to get more information on a specific command", + "noCommand": "Couldn't find any matching command name", + "commandSelectionString": "Please select the command", + "noCommanSuggest": "Couldn't find matching command name. Did you mean this?", + "commandDetailTitle": "{username} - Information about {command} command", + "nameString": "Name", + "descriptionString": "Description", + "aliasesString": "Aliases", + "usageString": "Usage", + "commandUsageFooter": "<> = required | [] = optional {devOnly}" + }, + "invite": { + "description": "Get the invite link for the bot", + "inviteTitle": "{bot} - Invite Link", + "clickURL": "**[Click here]({url})** to invite this bot to your server." + }, + "ping": { + "description": "Shows the current ping of the bot", + "footerString": "Latency of: {user}" + } + }, + "moderation": { + "categoryName": "MODERATION", + "common": { + "noUserSpecified": "Please specify someone.", + "noReasonString": "[Not specified]", + "reasonString": "**Reason**" + }, + "ban": { + "description": "Ban someone from the server", + "slashMemberIDDescription": "Who do you like to ban?", + "slashReasonDescription": "Ban reason", + "usage": "{prefix}ban <@mention | id> [reason]", + "userNoPermission": "Sorry, but you don't have **`BAN MEMBERS`** permission to use this command.", + "botNoPermission": "Sorry, but I don't have **`BAN MEMBERS`** permission.", + "userNoBannable": "Sorry, but I can't **`BAN`** that member.", + "userBanned": "You have been **`BANNED`** from **{guildName}**", + "bannedByString": "Banned by: {author}", + "banFail": "Unable to **`BAN`** member, because: `{message}`", + "banSuccess": "**{user}** has been **`BANNED`** from the server." + }, + "infractions": { + "description": "Show the infractions of a user", + "slashMemberDescription": "Who do you like to see the infractions of?", + "usage": "{prefix}infractions [@mention | id]", + "embedAuthorText": "{user} - Infractions", + "noInfractions": "No infractions." + }, + "kick": { + "description": "Kick someone from the server", + "slashMemberDescription": "Who do you like to kick?", + "slashReasonDescription": "Kick reason", + "usage": "{prefix}kick <@mention | id> [reason]", + "userNoPermission": "Sorry, but you don't have **`KICK MEMBERS`** permission to use this command.", + "botNoPermission": "Sorry, but I don't have **`KICK MEMBERS`** permission.", + "userNoKickable": "Sorry, but I can't **`KICK`** that member.", + "userKicked": "You have been **`KICKED`** from **{guildName}**", + "kickedByString": "Kicked by: {author}", + "kickFail": "Unable to **`KICK`** member, because: `{message}`", + "kickSuccess": "**{user}** has been **`KICKED`** from the server." + }, + "modlogs": { + "description": "Change moderation logs feature settings", + "slashChannelDescription": "View or change the moderation logs channel", + "slashChannelNewChannelOption": "New channel for the moderation logs", + "slashEnableDescription": "Enable the moderation logs feature", + "slashDisableDescription": "Disable the moderation logs feature", + "usage": "modlogs", + "channel": { + "current": "Current moderation logs channel: <#{channel}>", + "noChannel": "Moderation logs channel hasn't been set", + "invalid": "Invalid channel. Channel must be a text channel.", + "success": "Moderation logs channel has been set to <#{channel}>" + }, + "embedTitle": "Moderation Logs", + "newChannelText": "new channel", + "disable": "Moderation logs feature has been **`DISABLED`**", + "enable": "Moderation logs feature has been **`ENABLED`**" + }, + "mute": { + "description": "Mute someone on the server", + "slashMemberDescription": "Who do you like to mute?", + "slashReasonDescription": "Mute reason", + "usage": "{prefix}mute <@mention | id> [reason]", + "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", + "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", + "cantMuteOwner": "You can't mute the server owner!", + "unableToCreateMuteRole": "Unable to create mute role", + "alreadyMuted": "That member is already **`MUTED`**", + "userMuted": "You have been **`MUTED`** on **{guildName}**", + "mutedByString": "Muted by: {author}", + "muteFail": "Unable to **`MUTE`** member, because: `{message}`", + "muteSuccess": "**{user}** has been **`MUTED`** on the server." + }, + "purge": { + "description": "Delete messages", + "slashAmountDescription": "Number of messages to delete", + "usage": "{prefix}purge <amount>", + "userNoPermission": "Sorry, but you don't have **`MANAGE MESSAGES`** permission to use this command.", + "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", + "invalidAmount": "Please specify a valid number of messages to delete.", + "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", + "purgeSuccess": "{amount, plural, one {**1** message} other {**#** messages}} have been **`PURGED`**" + }, + "unban": { + "description": "Un-ban someone from the server", + "slashMemberDescription": "Who do you like to un-ban?", + "slashReasonDescription": "Un-ban reason", + "usage": "{prefix}unban <id> [reason]", + "alreadyUnban": "That user is not **`BANNED`**", + "unbanFail": "Unable to **`UN-BAN`** member, because: `{message}`", + "ubanSuccess": "**{user}** has been **`UN-BANNED`** from the server." + }, + "unmute": { + "description": "Unmute someone on the server", + "slashMemberDescription": "Who do you like to unmute?", + "slashReasonDescription": "Unmute reason", + "usage": "{prefix}unmute <@mention | id> [reason]", + "unableToCreateMuteRole": "Unable to create mute role", + "noMuted": "That member is not **`MUTED`**", + "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**", + "unmutedByString": "Un-muted by: {author}", + "unmuteFail": "Unable to **`UN-MUTE`** member, because: `{message}`", + "unmuteSuccess": "**{user}** has been **`UN-MUTED`** on the server." + }, + "warn": { + "description": "Warn member on the server", + "slashMemberDescription": "Who do you like to warn?", + "slashReasonDescription": "Warn reason", + "usage": "{prefix}warn <@mention | id> [reason]", + "userNoPermission": "Sorry, but you don't have **`MANAGE SERVER`** permission to use this command.", + "noDM": "Unable to create a DM with that user, but I'll keep warn 'em.", + "userWarned": "You have been **`WARNED`** on **{guildName}**", + "warnedByString": "Warned by: {author}", + "warnSuccess": "**{user}** has been **`WARNED`** on the server." + } + }, + "music": { + "categoryName": "MUSIC", + "dj": { + "description": "Change DJ feature settings", + "slashRoleDescription": "View or change the DJ role", + "slashRoleNewRoleOption": "New role for the DJ", + "slashEnableDescription": "Enable the DJ feature", + "slashDisableDescription": "Disable the DJ feature", + "role": { + "current": "Current DJ role: <@&{role}>", + "noRole": "DJ role hasn't been set", + "invalid": "Invalid role.", + "success": "DJ role has been set to <@&{role}>" + }, + "embedTitle": "DJ", + "newRoleText": "new role", + "disable": "DJ feature has been **`DISABLED`**", + "enable": "DJ feature has been **`ENABLED`**" + }, + "lyrics": { + "description": "Show the lyrics from the song", + "slashDescription": "Song to search", + "usage": "{prefix}lyrics [song]", + "noQuery": "There is nothing playing, or no arguments are provided.", + "apiError": "The API could not find the song **{song}**, because: `{message}`" + }, + "nowplaying": { + "description": "Show the media player status", + "emptyQueue": "Queue is empty", + "disableButton": "This button is no longer active and removed." + }, + "pause": { + "description": "Pause the music player", + "alreadyPause": "The music player is already paused.", + "pauseMessage": "The music player has been paused." + }, + "play": { + "description": "Play some music", + "slashQueryDescription": "Query to search", + "usage": "{prefix}play <query | url>", + "alreadyPlaying": "The music player is already playing to **`{voiceChannel}`** voice channel.", + "noSongData": "That URL doesn't have any song data." + }, + "queue": { + "description": "Show the queue list" + }, + "remove": { + "description": "Remove song(s) from the queue", + "slashPositionsDescription": "Position of the songs to remove separated by comma or space", + "usage": "{prefix}remove <positions>", + "noPermission": "You don't have permission to use this command.", + "noPositions": "Please specify the song positions to remove.", + "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue. ", + "songSkip": "The current song was removed, song skipped." + }, + "repeat": { + "description": "Repeat current music or the queue", + "slashQueue": "Set repeat mode to **`QUEUE`**", + "slashSong": "Set repeat mode to **`SONG`**", + "slashDisable": "Disable repeat mode", + "usage": "{prefix}repeat <{options}>", + "actualMode": "Current repeat mode is **`{mode}`**", + "footer": "To change mode, see {prefix}help repeat", + "newMode": "The repeat mode has been set to **`{mode}`**" + }, + "resume": { + "description": "Resume the music player", + "alreadyResume": "The music player is not paused.", + "resumeMessage": "The music player has been resumed." + }, + "search": { + "description": "Play some music using provided query", + "slashDescription": "Search the specified music", + "slashQueryDescription": "Query to search", + "slashSourceDescription": "Where the music should be taken?", + "usage": "{prefix}search <query> [source]", + "noQuery": "Please provide some query to search.", + "noTracks": "I can't obtain any search results.", + "queueEmbed": "Please select some music, you can choose more than one using blank space or {separator}.\n", + "trackSelectionMessage": "Music Selection", + "cancelMessage": "Type {cancel} or c to cancel music selection.", + "noSelection": "No or invalid value entered, music selection canceled.", + "canceledMessage": "Music selection canceled.", + "interactionContent": "Please select some music", + "interactionPlaceholder": "Please select some music" + }, + "shuffle": { + "description": "Set mode for shuffle feature", + "actualState": "Shuffle mode is **`{state}`**", + "newState": "Shuffle mode is now set to **`{state}`**" + }, + "skip": { + "description": "Skip the music", + "voteResultMessage": "{length}/{required} voted to skip the current song", + "skipMessage": "Skipped **{song}**" + }, + "skipTo": { + "description": "Skip to specific position in the queue", + "slashFirstDescription": "Rewind to the first song in the queue", + "slashLastDescription": "Skip to the last song in the queue", + "slashSpecificDescription": "Skip to a specific position in the queue", + "slashPositionDescription": "Song position in the queue", + "usage": "{prefix}skipto <{options} | number>", + "noPermission": "You don't have permission to use this command.", + "noSongPosition": "Unable to find song in that position.", + "cantPlay": "You can't skip to current music.", + "skipMessage": "Skipped to **{song}**" + }, + "stayInQueue": { + "description": "Makes the bot stay in the voice channel when the queue has ended", + "slashDescription": "Turns mode for stay-in-voice feature", + "247Disabled": "Stay-in-voice command is disabled.", + "actualState": "Stay-in-voice is **`{state}`**", + "newState": "Stay-in-voice is now set to **`{state}`**" + }, + "stop": { + "description": "Stop the music player", + "stoppedMessage": "The music player has been stopped." + }, + "volume": { + "description": "Change the media player volume", + "slashDescription": "New volume", + "usage": "{prefix}volume [new volume]", + "currentVolume": "The current volume is **`{volume}`**", + "changeVolume": "To change the volume, provide volume number when using this command.", + "plsPause": "Please pause the music instead of setting the volume to **`{volume}`**", + "volumeLimit": "I can't set the volume above **`{maxVol}`**", + "newVolume": "Volume has been set to **`{volume}`**" + } + } + }, + "utils": { + "musicDecorator": { + "noQueue": "There is nothing playing.", + "noInVC": "Sorry, but you need to be in a voice channel to do that.", + "validVCJoinable": "Sorry, but I can't **`CONNECT`** to your voice channel, make sure I have the proper permissions.", + "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel, make sure I have the proper permissions.", + "sameVC": "You need to be in the same voice channel as mine." + }, + "generalHandler": { + "handleVideoInitial": "Added {length} songs to the queue\n\n", + "errorJoining": "Error while joining the voice channel, because: `{message}`", + "queueEnded": "Queue has ended, use **`{usage}`** to play more music.", + "leftVC": "Left from the voice channel because I've been inactive for too long.", + "startPlaying": "Started playing **{song}**", + "stopPlaying": "Stopped playing **{song}**", + "errorPlaying": "An error occurred while trying to play music, because: `{message}`" + }, + "cooldownMessage": "{author}, please wait **`{timeleft}`** of cooldown time." + }, + "events": { + "channelUpdate": { + "reconfigureConnection": "Voice channel region changed. Re-configuring connection...", + "connectionReconfigured": "Connection successfully re-configured.", + "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted." + }, + "createInteraction": { + "message1": "Sorry, but that interaction is only for <@{user}> and the server staff.", + "message2": "Sorry, but that interaction is only for <@{user}>" + }, + "createMessage": "Hi {author}, my prefix is **`{prefix}`**", + "voiceStateUpdate": { + "disconnectFromVCMessage": "Disconnected from the voice channel, the queue has been deleted.", + "reconfigureConnection": "Moved to a voice channel with a different region. Re-configuring connection...", + "connectionReconfigured": "Connection successfully re-configured.", + "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted.", + "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", + "unableJoinStageMessage": "Unable to join as Speaker, the queue has been deleted.", + "joinStageMessage": "Successfully joined to the stage channel as Speaker.", + "deleteQueue": "**`{duration}`** has been passed and there's no one who joined the voice channel, the queue has been deleted.", + "deleteQueueFooter": "Queue Deleted", + "pauseQueue": "Everyone has left from the voice channel. To save resources, the queue has been paused.\nIf no one joins the voice channel in the next **`{duration}`**, the queue will be deleted.", + "pauseQueueFooter": "Queue Paused", + "resumeQueue": "Someone has joined the voice channel.\nResuming **{song}**", + "resumeQueueFooter": "Queue Resumed" + } + }, + "reusable": { + "pageFooter": "Page {actual} of {total}", + "invalidUsage": "Invalid usage, please use **`{prefix} {name}`** for more information." + } } diff --git a/lang/es.json b/lang/es.json index 714075051..2ee1b9981 100644 --- a/lang/es.json +++ b/lang/es.json @@ -1,331 +1,331 @@ { - "commands": { - "developers": { - "categoryName": "DESARROLLADOR", - "eval": { - "description": "Evaluar al bot", - "usage": "{prefix}eval <código>", - "noCode": "No se ingresó código.", - "outputString": "Salida", - "errorString": "Error" - } - }, - "general": { - "categoryName": "GENERAL", - "about": { - "description": "Muestra la información del bot", - "osUptimeString": "Tiempo de actividad del SO", - "processUptimeString": "Tiempo de actividad del proceso", - "botUptimeString": "Tiempo de actividad del bot", - "nodeVersionString": "Versión de Node.js", - "discordJSVersionString": "Versión de Discord.js", - "ffmpegVersionString": "Versión de FFmpeg", - "botVersionString": "Versión del bot", - "sourceCodeString": "Código Fuente", - "aboutFooter": "Información del bot {botname}" - }, - "help": { - "description": "Muestra la lista de comandos o la información de un comando específico", - "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", - "usage": "{prefix}help [comando]", - "authorString": "Lista de comandos de {username}", - "footerString": "{prefix}help <comando> para obtener más información de un comando específico", - "noCommand": "No se puede encontrar el comando", - "commandSelectionString": "Por favor selecciona un comando", - "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", - "commandDetailTitle": "{username} - Información del comando {command}", - "nameString": "Nombre", - "descriptionString": "Descripción", - "aliasesString": "Alias", - "usageString": "Uso", - "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" - }, - "invite": { - "description": "Obtén el enlace de invitación para el bot", - "inviteTitle": "{bot} - Enlace De Invitación", - "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." - }, - "ping": { - "description": "Muestra el ping actual del bot", - "footerString": "Latencia de: {user}" - } - }, - "moderation": { - "common": { - "categoryName": "MODERACIÓN", - "noUserSpecified": "Por favor especifica un usuario.", - "noReasonString": "[No especificado]", - "reasonString": "**Razón**" - }, - "ban": { - "description": "Banea a alguien en el servidor", - "slashMemberIDDescription": "A quién quisieras banear?", - "slashReasonDescription": "Razón del ban", - "usage": "{prefix}ban <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", - "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", - "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", - "bannedByString": "Baneado por: {author}", - "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", - "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." - }, - "infractions": { - "description": "Muestra las infracciones de un usuario", - "slashMemberDescription": "¿De quién quisieras ver las infracciones?", - "usage": "{prefix}infractions [@mención | id]", - "embedAuthorText": "{user} - Infracciones", - "noInfractions": "No hay infracciones." - }, - "kick": { - "description": "Expulsa a alguien del servidor", - "slashMemberDescription": "¿A quién te quisieras expulsar?", - "slashReasonDescription": "Razón de expulsión", - "usage": "{prefix}kick <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", - "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", - "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", - "kickedByString": "Expulsado por: {author}", - "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", - "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." - }, - "modlogs": { - "description": "Cambia los ajustes del registro de moderación", - "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", - "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", - "slashEnableDescription": "Activa el registro de moderación", - "slashDisableDescription": "Desactiva el registro de moderación", - "usage": "modlogs", - "channel": { - "current": "Canal de registro de moderación actual: <#{channel}>", - "noChannel": "El canal de registro de moderación aún no ha sido establecido.", - "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", - "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" - }, - "embedTitle": "Registro de Moderación", - "newChannelText": "Nuevo canal", - "disable": "Registro de moderación está **`DESACTIVO`**", - "enable": "Registro de moderación está **`ACTIVO`**" - }, - "mute": { - "description": "Silencia a alguien en el servidor", - "slashMemberDescription": "¿A quién quisieras silenciar?", - "slashReasonDescription": "Razón de silencio", - "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", - "usage": "{prefix}mute <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", - "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", - "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", - "mutedByString": "Silenciado por: {author}", - "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." - }, - "purge": { - "description": "Eliminar mensajes", - "slashAmountDescription": "Cantidad de mensajes a eliminar", - "usage": "{prefix}purge <monto>", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", - "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", - "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", - "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" - }, - "unban": { - "description": "Desbanea a alguien del servidor", - "slashMemberDescription": "A quién quisieras desbanear?", - "slashReasonDescription": "Razón de desbaneo", - "usage": "{prefix}unban <id> [razón]", - "alreadyUnban": "Este usuario no está **`BANEADO`**", - "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", - "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." - }, - "unmute": { - "description": "Desilenciar a alguien del servidor", - "slashMemberDescription": "A quién quisieras desilenciar?", - "slashReasonDescription": "Razón del desilencio", - "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", - "usage": "{prefix}unmute <@mención | id> [razón]", - "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", - "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", - "unmutedByString": "Desilenciado por: {author}", - "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", - "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." - }, - "warn": { - "description": "Advierte a un miembro en el servidor", - "slashMemberDescription": "¿A quién quisieras advertir?", - "slashReasonDescription": "Razón de advertencia", - "usage": "{prefix}warn <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", - "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", - "warnedByString": "Advertido por: {author}", - "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." - }, - "categoryName": "commands.moderation.categoryName" - }, - "music": { - "lyrics": { - "categoryName": "MÚSICA", - "description": "Muestra la letra de una canción", - "slashDescription": "Canción a buscar", - "usage": "{prefix}lyrics [canción]", - "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", - "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" - }, - "nowplaying": { - "description": "Muestra la canción que se está reproduciendo", - "emptyQueue": "La cola está vacía", - "disableButton": "Este botón ya no está activo y eliminado." - }, - "pause": { - "description": "Pausa la reproducción de música", - "alreadyPause": "El reproductor de música ya está en pausa.", - "pauseMessage": "Se ha pausado el reproductor de música." - }, - "play": { - "description": "Reproduce algo de música", - "slashQueryDescription": "Canción a reproducir", - "usage": "{prefix}play <consulta / url>", - "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", - "noSongData": "Este URL no tiene datos de canciones." - }, - "queue": { - "description": "Muestra la cola de reproducción" - }, - "repeat": { - "description": "Repite la canción actual o la cola completa", - "slashQueue": "Establece el mode repetición a **`QUEUE`**", - "slashSong": "Establece el mode repetición a **`ONE`**", - "footer": "Para cambiar el modo, mira '{prefix}help repeat'", - "slashDisable": "Desactiva el modo repetición", - "usage": "{prefix}repeat <{options}>", - "actualMode": "El modo de repetición actual es **`{mode}`**", - "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" - }, - "resume": { - "description": "Reanuda el reproductor de música", - "alreadyResume": "El reproductor de música no está en pausa.", - "resumeMessage": "El reproductor de música ha sido reanudado." - }, - "search": { - "description": "Reproduce alguna canción usando una fuente específica", - "slashDescription": "Busca una canción específica", - "slashQueryDescription": "Canción a buscar", - "slashSourceDescription": "¿De dónde debería tomar la canción?", - "usage": "{prefix}search <canción> [fuente]", - "noQuery": "Por favor ingresa alguna canción para buscar.", - "noTracks": "No pude obtener resultados.", - "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", - "trackSelectionMessage": "Selección de canciones", - "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", - "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", - "canceledMessage": "Selección de canciones cancelada.", - "interactionContent": "Por favor selecciona una canción", - "interactionPlaceholder": "Por favor selecciona una canción" - }, - "shuffle": { - "description": "Aleatoriza la cola", - "actualState": "El modo aleatorio está **`{state}`**", - "newState": "El modo aleatorio se estableció ahora a **`{state}`**" - }, - "skip": { - "description": "Salta la canción actual", - "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", - "voteResultMessage": "{length}/{required} han votado para saltar la canción", - "skipMessage": "Se ha saltado **{song}**" - }, - "skipTo": { - "description": "Salta a una posición específica de la cola", - "slashFirstDescription": "Regresa a la primera canción de la cola", - "slashLastDescription": "Salta a la última canción de la cola", - "slashSpecificDescription": "Salta a una posición específica en la cola", - "slashPositionDescription": "Posición de la canción en la cola", - "usage": "{prefix}skipto <{options} | número>", - "noPermission": "No tienes permiso para usar este comando.", - "noSongPosition": "No se pudo encontrar la canción en esta posición.", - "cantPlay": "No puedes saltar la canción actual.", - "skipMessage": "Se ha saltado a **{song}**" - }, - "stayInQueue": { - "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", - "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", - "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", - "actualState": "`Permanecer-Conectado` está **`{state}`**", - "newState": "`Permanecer-Conectado` se estableció **`{state}`**" - }, - "stop": { - "description": "Para el reproductor de música", - "stoppedMessage": "El reproductor de música se ha detenido." - }, - "volume": { - "description": "Cambia el volúmen del reproductor de música", - "slashDescription": "Nuevo volúmen", - "usage": "{prefix}volume [volumen]", - "currentVolume": "El volúmen actual es **`{volume}`**", - "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", - "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", - "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", - "newVolume": "Volúmen establecido en **`{volume}`**" - }, - "categoryName": "commands.music.categoryName", - "remove": { - "description": "commands.music.remove.description", - "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", - "usage": "commands.music.remove.usage" - } - } - }, - "utils": { - "musicDecorator": { - "noQueue": "No se está reproduciendo nada.", - "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", - "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", - "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", - "sameVC": "Necesitas estar en el mismo canal de voz que yo." - }, - "generalHandler": { - "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", - "errorJoining": "Error al unirse al canal de voz, razón: {message}", - "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", - "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", - "startPlaying": "Se empezó a reproducir **{song}**", - "stopPlaying": "Se detuvo la reproducción **{song}**", - "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" - }, - "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." - }, - "events": { - "channelUpdate": { - "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - }, - "createInteraction": { - "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", - "message2": "Lo siento, pero esta interacción es solo para <@{user}>" - }, - "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", - "voiceStateUpdate": { - "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", - "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", - "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", - "joinStageMessage": "Me uní al canal escenario con éxito como orador.", - "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", - "deleteQueueFooter": "Cola eliminada", - "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", - "pauseQueueFooter": "Cola pausada", - "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", - "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", - "resumeQueueFooter": "Cola reanudada", - "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." - } - }, - "reusable": { - "pageFooter": "Página {actual} de {total}", - "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." - } + "commands": { + "developers": { + "categoryName": "DESARROLLADOR", + "eval": { + "description": "Evaluar al bot", + "usage": "{prefix}eval <código>", + "noCode": "No se ingresó código.", + "outputString": "Salida", + "errorString": "Error" + } + }, + "general": { + "categoryName": "GENERAL", + "about": { + "description": "Muestra la información del bot", + "osUptimeString": "Tiempo de actividad del SO", + "processUptimeString": "Tiempo de actividad del proceso", + "botUptimeString": "Tiempo de actividad del bot", + "nodeVersionString": "Versión de Node.js", + "discordJSVersionString": "Versión de Discord.js", + "ffmpegVersionString": "Versión de FFmpeg", + "botVersionString": "Versión del bot", + "sourceCodeString": "Código Fuente", + "aboutFooter": "Información del bot {botname}" + }, + "help": { + "description": "Muestra la lista de comandos o la información de un comando específico", + "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", + "usage": "{prefix}help [comando]", + "authorString": "Lista de comandos de {username}", + "footerString": "{prefix}help <comando> para obtener más información de un comando específico", + "noCommand": "No se puede encontrar el comando", + "commandSelectionString": "Por favor selecciona un comando", + "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", + "commandDetailTitle": "{username} - Información del comando {command}", + "nameString": "Nombre", + "descriptionString": "Descripción", + "aliasesString": "Alias", + "usageString": "Uso", + "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" + }, + "invite": { + "description": "Obtén el enlace de invitación para el bot", + "inviteTitle": "{bot} - Enlace De Invitación", + "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." + }, + "ping": { + "description": "Muestra el ping actual del bot", + "footerString": "Latencia de: {user}" + } + }, + "moderation": { + "common": { + "categoryName": "MODERACIÓN", + "noUserSpecified": "Por favor especifica un usuario.", + "noReasonString": "[No especificado]", + "reasonString": "**Razón**" + }, + "ban": { + "description": "Banea a alguien en el servidor", + "slashMemberIDDescription": "A quién quisieras banear?", + "slashReasonDescription": "Razón del ban", + "usage": "{prefix}ban <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", + "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", + "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", + "bannedByString": "Baneado por: {author}", + "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", + "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." + }, + "infractions": { + "description": "Muestra las infracciones de un usuario", + "slashMemberDescription": "¿De quién quisieras ver las infracciones?", + "usage": "{prefix}infractions [@mención | id]", + "embedAuthorText": "{user} - Infracciones", + "noInfractions": "No hay infracciones." + }, + "kick": { + "description": "Expulsa a alguien del servidor", + "slashMemberDescription": "¿A quién te quisieras expulsar?", + "slashReasonDescription": "Razón de expulsión", + "usage": "{prefix}kick <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", + "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", + "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", + "kickedByString": "Expulsado por: {author}", + "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", + "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." + }, + "modlogs": { + "description": "Cambia los ajustes del registro de moderación", + "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", + "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", + "slashEnableDescription": "Activa el registro de moderación", + "slashDisableDescription": "Desactiva el registro de moderación", + "usage": "modlogs", + "channel": { + "current": "Canal de registro de moderación actual: <#{channel}>", + "noChannel": "El canal de registro de moderación aún no ha sido establecido.", + "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", + "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" + }, + "embedTitle": "Registro de Moderación", + "newChannelText": "Nuevo canal", + "disable": "Registro de moderación está **`DESACTIVO`**", + "enable": "Registro de moderación está **`ACTIVO`**" + }, + "mute": { + "description": "Silencia a alguien en el servidor", + "slashMemberDescription": "¿A quién quisieras silenciar?", + "slashReasonDescription": "Razón de silencio", + "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", + "usage": "{prefix}mute <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", + "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", + "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", + "mutedByString": "Silenciado por: {author}", + "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." + }, + "purge": { + "description": "Eliminar mensajes", + "slashAmountDescription": "Cantidad de mensajes a eliminar", + "usage": "{prefix}purge <monto>", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", + "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", + "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", + "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" + }, + "unban": { + "description": "Desbanea a alguien del servidor", + "slashMemberDescription": "A quién quisieras desbanear?", + "slashReasonDescription": "Razón de desbaneo", + "usage": "{prefix}unban <id> [razón]", + "alreadyUnban": "Este usuario no está **`BANEADO`**", + "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", + "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." + }, + "unmute": { + "description": "Desilenciar a alguien del servidor", + "slashMemberDescription": "A quién quisieras desilenciar?", + "slashReasonDescription": "Razón del desilencio", + "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", + "usage": "{prefix}unmute <@mención | id> [razón]", + "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", + "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", + "unmutedByString": "Desilenciado por: {author}", + "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", + "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." + }, + "warn": { + "description": "Advierte a un miembro en el servidor", + "slashMemberDescription": "¿A quién quisieras advertir?", + "slashReasonDescription": "Razón de advertencia", + "usage": "{prefix}warn <@mención | id> [razón]", + "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", + "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", + "warnedByString": "Advertido por: {author}", + "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." + }, + "categoryName": "commands.moderation.categoryName" + }, + "music": { + "lyrics": { + "categoryName": "MÚSICA", + "description": "Muestra la letra de una canción", + "slashDescription": "Canción a buscar", + "usage": "{prefix}lyrics [canción]", + "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", + "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" + }, + "nowplaying": { + "description": "Muestra la canción que se está reproduciendo", + "emptyQueue": "La cola está vacía", + "disableButton": "Este botón ya no está activo y eliminado." + }, + "pause": { + "description": "Pausa la reproducción de música", + "alreadyPause": "El reproductor de música ya está en pausa.", + "pauseMessage": "Se ha pausado el reproductor de música." + }, + "play": { + "description": "Reproduce algo de música", + "slashQueryDescription": "Canción a reproducir", + "usage": "{prefix}play <consulta / url>", + "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", + "noSongData": "Este URL no tiene datos de canciones." + }, + "queue": { + "description": "Muestra la cola de reproducción" + }, + "repeat": { + "description": "Repite la canción actual o la cola completa", + "slashQueue": "Establece el mode repetición a **`QUEUE`**", + "slashSong": "Establece el mode repetición a **`ONE`**", + "footer": "Para cambiar el modo, mira '{prefix}help repeat'", + "slashDisable": "Desactiva el modo repetición", + "usage": "{prefix}repeat <{options}>", + "actualMode": "El modo de repetición actual es **`{mode}`**", + "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" + }, + "resume": { + "description": "Reanuda el reproductor de música", + "alreadyResume": "El reproductor de música no está en pausa.", + "resumeMessage": "El reproductor de música ha sido reanudado." + }, + "search": { + "description": "Reproduce alguna canción usando una fuente específica", + "slashDescription": "Busca una canción específica", + "slashQueryDescription": "Canción a buscar", + "slashSourceDescription": "¿De dónde debería tomar la canción?", + "usage": "{prefix}search <canción> [fuente]", + "noQuery": "Por favor ingresa alguna canción para buscar.", + "noTracks": "No pude obtener resultados.", + "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", + "trackSelectionMessage": "Selección de canciones", + "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", + "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", + "canceledMessage": "Selección de canciones cancelada.", + "interactionContent": "Por favor selecciona una canción", + "interactionPlaceholder": "Por favor selecciona una canción" + }, + "shuffle": { + "description": "Aleatoriza la cola", + "actualState": "El modo aleatorio está **`{state}`**", + "newState": "El modo aleatorio se estableció ahora a **`{state}`**" + }, + "skip": { + "description": "Salta la canción actual", + "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", + "voteResultMessage": "{length}/{required} han votado para saltar la canción", + "skipMessage": "Se ha saltado **{song}**" + }, + "skipTo": { + "description": "Salta a una posición específica de la cola", + "slashFirstDescription": "Regresa a la primera canción de la cola", + "slashLastDescription": "Salta a la última canción de la cola", + "slashSpecificDescription": "Salta a una posición específica en la cola", + "slashPositionDescription": "Posición de la canción en la cola", + "usage": "{prefix}skipto <{options} | número>", + "noPermission": "No tienes permiso para usar este comando.", + "noSongPosition": "No se pudo encontrar la canción en esta posición.", + "cantPlay": "No puedes saltar la canción actual.", + "skipMessage": "Se ha saltado a **{song}**" + }, + "stayInQueue": { + "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", + "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", + "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", + "actualState": "`Permanecer-Conectado` está **`{state}`**", + "newState": "`Permanecer-Conectado` se estableció **`{state}`**" + }, + "stop": { + "description": "Para el reproductor de música", + "stoppedMessage": "El reproductor de música se ha detenido." + }, + "volume": { + "description": "Cambia el volúmen del reproductor de música", + "slashDescription": "Nuevo volúmen", + "usage": "{prefix}volume [volumen]", + "currentVolume": "El volúmen actual es **`{volume}`**", + "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", + "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", + "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", + "newVolume": "Volúmen establecido en **`{volume}`**" + }, + "categoryName": "commands.music.categoryName", + "remove": { + "description": "commands.music.remove.description", + "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", + "usage": "commands.music.remove.usage" + } + } + }, + "utils": { + "musicDecorator": { + "noQueue": "No se está reproduciendo nada.", + "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", + "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", + "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", + "sameVC": "Necesitas estar en el mismo canal de voz que yo." + }, + "generalHandler": { + "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", + "errorJoining": "Error al unirse al canal de voz, razón: {message}", + "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", + "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", + "startPlaying": "Se empezó a reproducir **{song}**", + "stopPlaying": "Se detuvo la reproducción **{song}**", + "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" + }, + "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." + }, + "events": { + "channelUpdate": { + "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + }, + "createInteraction": { + "message1": "Lo siento, pero esta interacción es solo para <@{user}> y el staff del servidor.", + "message2": "Lo siento, pero esta interacción es solo para <@{user}>" + }, + "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", + "voiceStateUpdate": { + "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", + "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", + "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", + "joinStageMessage": "Me uní al canal escenario con éxito como orador.", + "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", + "deleteQueueFooter": "Cola eliminada", + "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", + "pauseQueueFooter": "Cola pausada", + "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", + "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", + "resumeQueueFooter": "Cola reanudada", + "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." + } + }, + "reusable": { + "pageFooter": "Página {actual} de {total}", + "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." + } } diff --git a/lang/id.json b/lang/id.json index 119456633..10be9cf9f 100644 --- a/lang/id.json +++ b/lang/id.json @@ -1,294 +1,294 @@ { - "commands": { - "developers": { - "categoryName": "PENGEMBANG", - "eval": { - "description": "Evaluasi kode", - "usage": "{prefix}eval <kode>", - "noCode": "Tidak ada kode yang diberikan.", - "outputString": "Output", - "errorString": "Error" - } - }, - "general": { - "categoryName": "UMUM", - "about": { - "description": "Menampilkan informasi bot", - "osUptimeString": "Uptime OS", - "processUptimeString": "Uptime Process", - "botUptimeString": "Uptime Bot", - "nodeVersionString": "Versi Node.js", - "discordJSVersionString": "Versi Discord.js", - "ffmpegVersionString": "Versi FFmpeg", - "botVersionString": "Versi Bot", - "sourceCodeString": "Kode sumber", - "aboutFooter": "{botname} - Informasi Bot" - }, - "help": { - "description": "Menampilkan daftar perintah atau informasi tentang perintah tertentu", - "slashDescription": "Nama perintah untuk melihat informasi tentang perintah tertentu", - "usage": "{prefix}help [nama perintah]", - "authorString": "{username} - Daftar Perintah", - "footerString": "{prefix}help <perintah> untuk mendapatkan informasi tentang perintah tertentu", - "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut", - "commandSelectionString": "Silahkan pilih perintah yang kamu tuju", - "noCommanSuggest": "Tidak dapat menemukan perintah dengan nama tersebut. Mungkin maksudmu ini?", - "commandDetailTitle": "{username} - Informasi tentang perintah {command}", - "nameString": "Nama", - "descriptionString": "Deskripsi", - "aliasesString": "Alias", - "usageString": "Penggunaan", - "commandUsageFooter": "<> = dibutuhkan | [] = opsional {devOnly}" - }, - "invite": { - "description": "Dapatkan link invite untuk bot", - "inviteTitle": "{bot} - Link invite", - "clickURL": "**[Klik disini]({url})** untung meng-invite bot ini ke server anda." - }, - "ping": { - "description": "Menunjukkan ping bot", - "footerString": "Latensi dari: {user}" - } - }, - "moderation": { - "categoryName": "MODERASI", - "common": { - "noUserSpecified": "Mohon mention seseorang.", - "noReasonString": "[Tidak disebutkan]", - "reasonString": "**Alasan**" - }, - "ban": { - "description": "Ban seseorang dari server", - "slashMemberIDDescription": "Siapa yang ingin anda ban?", - "slashReasonDescription": "Alasan ban", - "usage": "{prefix}ban <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`BAN MEMBERS`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`BAN MEMBERS`**.", - "userNoBannable": "Mohon maaf, tetapi saya tidak dapat **`BAN`** kepada member tersebut.", - "userBanned": "Anda telah di **`BAN`** dari **{guildName}**", - "bannedByString": "Di ban oleh: {author}", - "banFail": "Tidak dapat **`BAN`** member, dikarenakan: `{message}`", - "banSuccess": "**{user}** telah di **`BAN`** dari server ini." - }, - "kick": { - "description": "Kick seseorang dari server", - "slashMemberDescription": "Siapa yang ingin anda kick?", - "slashReasonDescription": "Alasan kick", - "usage": "{prefix}kick <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`KICK MEMBERS`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`KICK MEMBERS`**.", - "userNoKickable": "Mohon maaf, tetapi saya tidak dapat **`KICK`** kepada member tersebut.", - "userKicked": "Anda telah di **`KICK`** dari **{guildName}**", - "kickedByString": "Di kick oleh: {author}", - "kickFail": "Tidak dapat **`KICK`** member, dikarenakan: `{message}`", - "kickSuccess": "**{user}** telah di **`KICK`** dari server ini." - }, - "mute": { - "description": "Mute seseorang di server", - "slashMemberDescription": "Siapa yang ingin anda mute?", - "slashReasonDescription": "Alasan mute", - "usage": "{prefix}mute <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", - "cantMuteOwner": "Anda tidak bisa mute owner server!", - "unableToCreateMuteRole": "Tidak dapat membuat mute role", - "alreadyMuted": "Member tersebut sedang di **`MUTE`**", - "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", - "mutedByString": "Di mute oleh: {author}", - "muteFail": "Tidak dapat **`MUTE`** member, dikarenakan: `{message}`", - "muteSuccess": "**{user}** telah di **`MUTE`** di server ini." - }, - "purge": { - "description": "Hapus pesan", - "slashAmountDescription": "Jumlah pesan yang ingin dihapus", - "usage": "{prefix}purge <jumlah>", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE MESSAGES`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE MESSAGES`**.", - "invalidAmount": "Mohon berikan jumlah yang benar.", - "purgeFail": "Tidak dapat **`PURGE`** pesan, dikarenakan: `{message}`", - "purgeSuccess": "**{amount}** pesan telah di **`PURGED`**" - }, - "unban": { - "description": "Unban seseorang dari server", - "slashMemberDescription": "Siapa yang ingin anda un-ban?", - "slashReasonDescription": "Alasan un-ban", - "usage": "{prefix}unban <id> [alasan]", - "alreadyUnban": "Orang itu sedang tidak di **`BAN`**", - "unbanFail": "Tidak dapat **`UN-BAN`** member, dikarenakan: `{message}`", - "ubanSuccess": "**{user}** telah di **`UN-BAN`** dari server ini." - }, - "unmute": { - "description": "Unmute seseorang di server", - "slashMemberDescription": "Siapa yang ingin anda un-mute?", - "slashReasonDescription": "Alasan un-mute", - "usage": "{prefix}unmute <@mention | id> [alasan]", - "noMuted": "Member tersebut sedang tidak di **`MUTE`**", - "userUnmuted": "Anda telah di **`UN-MUTE`** di **{guildName}**", - "unmutedByString": "Di unmute oleh: {author}", - "unmuteFail": "Tidak dapat **`UN-MUTE`** member, dikarenakan: `{message}`", - "unmuteSuccess": "**{user}** telah di **`UN-MUTE`** di server ini." - }, - "warn": { - "description": "Warn seseorang di server", - "slashMemberDescription": "Siapa yang ingin anda warn?", - "slashReasonDescription": "Alasan warn", - "usage": "{prefix}warn <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE SERVER`** untuk menggunakan perintah ini.", - "noDM": "Tidak dapat membuka DM dengan pengguna tersebut, tetapi akan tetap saya warn.", - "userWarned": "Kamu telah di **`WARN`** di **{guildName}**", - "warnedByString": "Di warn oleh: {author}", - "warnSuccess": "**{user}** telah di **`WARN`** di server ini." - } - }, - "music": { - "categoryName": "MUSIK", - "lyrics": { - "description": "Menampilkan lirik lagu", - "slashDescription": "Judul lagu untuk dicari", - "usage": "{prefix}lyrics [song]", - "noQuery": "Tidak ada yang sedang dimainkan atau tidak ada argumen yang diberikan.", - "apiError": "Tidak dapat menemukan lagu **{song}**, dikarenakan: `{message}`" - }, - "nowplaying": { - "description": "Menunjukkan status media player", - "emptyQueue": "Antrian telah kosong", - "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus." - }, - "pause": { - "description": "Menjeda media player", - "alreadyPause": "Media player sedang dijeda.", - "pauseMessage": "Media player telah dijeda." - }, - "play": { - "description": "Memainkan beberapa lagu", - "slashQueryDescription": "Kata pencarian", - "usage": "{prefix}play <kata pencarian / link>", - "alreadyPlaying": "Media player sedang memainkan lagu di channel **`{voiceChannel}`**.", - "noSongData": "Link tersebut tidak memiliki data lagu." - }, - "queue": { - "description": "Menunjukkan daftar antrian" - }, - "repeat": { - "description": "Mengulang lagu yang sedang dimainkan atau setelahnya", - "slashQueue": "Mengatur mode pengulangan ke **`QUEUE`**", - "slashSong": "Mengatur mode pengulangan ke **`SONG`**", - "slashDisable": "Mematikan mode pengulangan", - "actualMode": "Mode pengulangan: **`{mode}`**", - "newMode": "Mode pengulangan telah diatur ke **`{mode}`**" - }, - "resume": { - "description": "Melanjutkan media player", - "alreadyResume": "Media player sedang tidak dijeda.", - "resumeMessage": "Media player telah dilanjutkan." - }, - "search": { - "description": "Memainkan beberapa lagu dengan kata pencarian yang diberikan", - "slashDescription": "Mencari lagu yang diberikan", - "slashQueryDescription": "Kata pencarian", - "slashSourceDescription": "Dari mana lagu harus di ambil?", - "usage": "{prefix}search <kata pencarian> [sumber]", - "noQuery": "Mohon berikan kata pencarian untuk dicari.", - "noTracks": "Saya tidak dapat menemukan hasil pencarian.", - "queueEmbed": "Silahkan pilih beberapa lagu, kamu bisa memilih lebih dari satu menggunakan spasi atau {separator}.\n", - "trackSelectionMessage": "Pemilihan lagu", - "cancelMessage": "Ketik {cancel} atau c untuk membatalkan pemilihan lagu.", - "noSelection": "Angka yang diberikan tidak valid, pemilihan lagu dibatalkan.", - "canceledMessage": "Pemilihan lagu dibatalkan.", - "interactionContent": "Silahkan pilih beberapa lagu", - "interactionPlaceholder": "Silahkan pilih beberapa lagu" - }, - "shuffle": { - "description": "Acak antrian", - "actualState": "Mode acak: **`{state}`**", - "newState": "Mode acak telah diatur ke **`{state}`**" - }, - "skip": { - "description": "Lewatkan lagu", - "voteMessage": "{actual}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", - "voteResultMessage": "{length}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", - "skipMessage": "**{song}** dilewatkan" - }, - "skipTo": { - "description": "Lompat ke posisi tertentu pada antrian", - "slashFirstDescription": "Mundur ke lagu pertama pada antrian", - "slashLastDescription": "Lompat ke lagu terakhir pada antrian", - "slashSpecificDescription": "Lompat ke posisi tertentu pada antrian", - "slashPositionDescription": "Posisi lagu pada antrian", - "usage": "{prefix}skipto <{options} | angka>", - "noPermission": "Kamu tidak dapat menggunakan perintah ini.", - "noSongPosition": "Tidak dapat mencari lagu pada posisi tersebut.", - "cantPlay": "Tidak dapat melompat ke lagu yang sedang dimainkan.", - "skipMessage": "Melompat ke lagu **{song}**" - }, - "stayInQueue": { - "description": "Membuat bot menetap di voice channel saat antrian lagu sudah berakhir", - "slashDescription": "Mengganti mode fitur Stay-in-voice", - "247Disabled": "Perintah Stay-in-voice dimatikan.", - "actualState": "Stay-in-voice: **{state}**", - "newState": "Stay-in-voice telah diatur ke **{state}**" - }, - "stop": { - "description": "Menghentikan media player", - "stoppedMessage": "Media player telah dihentikan." - }, - "volume": { - "description": "Mengganti volume media player", - "slashDescription": "Volume baru", - "usage": "{prefix}volume [volume baru]", - "currentVolume": "Volume saat ini adalah **`{volume}`**", - "changeVolume": "Untuk mengganti volume, berikan angka volume baru saat menggunakan perintah ini.", - "plsPause": "Mohon menjeda media player nya saja daripada mengatur volume ke **`{volume}`**", - "volumeLimit": "Saya tidak dapat mengatur volume di atas **`{maxVol}`**", - "newVolume": "Volume diatur ke **`{volume}`**" - } - } - }, - "utils": { - "musicDecorator": { - "noQueue": "Antrian media player sedang kosong.", - "noInVC": "Mohon maaf, tetapi anda harus berada di sebuah voice channel untuk melakukannya.", - "validVCJoinable": "Mohon maaf, tetapi saya tidak dapat **`CONNECT`** ke voice channel anda, pastikan saya memiliki izin yang tepat.", - "validVCPermission": "Mohon maaf, tetapi saya tidak dapat **`SPEAK`** di voice channel, pastikan saya memiliki izin yang tepat.", - "sameVC": "Anda harus berada di voice channel yang sama dengan saya." - }, - "generalHandler": { - "handleVideoInitial": "{length} lagu telah ditambahkan ke antrian\n\n", - "errorJoining": "Error saat memasuki voice channel, dikarenakan: `{message}`", - "queueEnded": "Antrian sudah berakhir, gunakan **{usage}** untuk memainkan lagu lagi.", - "leftVC": "Keluar dari voice channel karena tidak ada lagi aktivitas.", - "startPlaying": "Mulai memainkan **{song}**", - "stopPlaying": "Selesai memainkan **{song}**", - "errorPlaying": "Sebuah error terjadi saat mencoba memainkan lagu, dikarenakan: `{message}`" - }, - "cooldownMessage": "{author}, mohon tunggu selama **`{timeleft}`** detik." - }, - "events": { - "channelUpdate": { - "reconfigureConnection": "Region voice channel telah diganti. Melakukan konfigurasi koneksi...", - "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", - "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus." - }, - "createInteraction": { - "message1": "Mohon maaf, tetapi interaction tersebut hanya untuk <@{user}> dan staff server.", - "message2": "Mohon maaf, tetapi interaction tersebut hanya untuk <@{user}>" - }, - "createMessage": "Hai {author}, prefix-ku adalah **`{prefix}`**", - "voiceStateUpdate": { - "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", - "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", - "unableJoinStageMessage": "Tidak dapat bergabung sebagai Speaker, antrian telah dihapus.", - "joinStageMessage": "Berhasil bergabung ke stage channel sebagai Speaker.", - "deleteQueue": "**`{duration}`** telah berlalu dan belum ada yang memasuki voice channel, antrian telah dihapus.", - "deleteQueueFooter": "Antrian dihapus", - "pauseQueue": "Semua orang telah keluar dari voice channel. Untuk menyimpan penggunaan, antrian telah dijeda.\nJika masih tidak ada yang memasuki voice channel dalam **`{duration}`**, antrian akan dihapus.", - "pauseQueueFooter": "Antrian dijeda", - "resumeQueue": "Seseorang telah memasuki voice channel.\nMelanjutkan **{song}**", - "resumeQueueFooter": "Antrian dilanjutkan" - } - }, - "reusable": { - "pageFooter": "Halaman {actual} dari {total}", - "invalidUsage": "Penggunaan tidak valid, gunakan **`{prefix} {name}`** untuk informasi lebih lanjut." - } + "commands": { + "developers": { + "categoryName": "PENGEMBANG", + "eval": { + "description": "Evaluasi kode", + "usage": "{prefix}eval <kode>", + "noCode": "Tidak ada kode yang diberikan.", + "outputString": "Output", + "errorString": "Error" + } + }, + "general": { + "categoryName": "UMUM", + "about": { + "description": "Menampilkan informasi bot", + "osUptimeString": "Uptime OS", + "processUptimeString": "Uptime Process", + "botUptimeString": "Uptime Bot", + "nodeVersionString": "Versi Node.js", + "discordJSVersionString": "Versi Discord.js", + "ffmpegVersionString": "Versi FFmpeg", + "botVersionString": "Versi Bot", + "sourceCodeString": "Kode sumber", + "aboutFooter": "{botname} - Informasi Bot" + }, + "help": { + "description": "Menampilkan daftar perintah atau informasi tentang perintah tertentu", + "slashDescription": "Nama perintah untuk melihat informasi tentang perintah tertentu", + "usage": "{prefix}help [nama perintah]", + "authorString": "{username} - Daftar Perintah", + "footerString": "{prefix}help <perintah> untuk mendapatkan informasi tentang perintah tertentu", + "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut", + "commandSelectionString": "Silahkan pilih perintah yang kamu tuju", + "noCommanSuggest": "Tidak dapat menemukan perintah dengan nama tersebut. Mungkin maksudmu ini?", + "commandDetailTitle": "{username} - Informasi tentang perintah {command}", + "nameString": "Nama", + "descriptionString": "Deskripsi", + "aliasesString": "Alias", + "usageString": "Penggunaan", + "commandUsageFooter": "<> = dibutuhkan | [] = opsional {devOnly}" + }, + "invite": { + "description": "Dapatkan link invite untuk bot", + "inviteTitle": "{bot} - Link invite", + "clickURL": "**[Klik disini]({url})** untung meng-invite bot ini ke server anda." + }, + "ping": { + "description": "Menunjukkan ping bot", + "footerString": "Latensi dari: {user}" + } + }, + "moderation": { + "categoryName": "MODERASI", + "common": { + "noUserSpecified": "Mohon mention seseorang.", + "noReasonString": "[Tidak disebutkan]", + "reasonString": "**Alasan**" + }, + "ban": { + "description": "Ban seseorang dari server", + "slashMemberIDDescription": "Siapa yang ingin anda ban?", + "slashReasonDescription": "Alasan ban", + "usage": "{prefix}ban <@mention | id> [alasan]", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`BAN MEMBERS`** untuk menggunakan perintah ini.", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`BAN MEMBERS`**.", + "userNoBannable": "Mohon maaf, tetapi saya tidak dapat **`BAN`** kepada member tersebut.", + "userBanned": "Anda telah di **`BAN`** dari **{guildName}**", + "bannedByString": "Di ban oleh: {author}", + "banFail": "Tidak dapat **`BAN`** member, dikarenakan: `{message}`", + "banSuccess": "**{user}** telah di **`BAN`** dari server ini." + }, + "kick": { + "description": "Kick seseorang dari server", + "slashMemberDescription": "Siapa yang ingin anda kick?", + "slashReasonDescription": "Alasan kick", + "usage": "{prefix}kick <@mention | id> [alasan]", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`KICK MEMBERS`** untuk menggunakan perintah ini.", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`KICK MEMBERS`**.", + "userNoKickable": "Mohon maaf, tetapi saya tidak dapat **`KICK`** kepada member tersebut.", + "userKicked": "Anda telah di **`KICK`** dari **{guildName}**", + "kickedByString": "Di kick oleh: {author}", + "kickFail": "Tidak dapat **`KICK`** member, dikarenakan: `{message}`", + "kickSuccess": "**{user}** telah di **`KICK`** dari server ini." + }, + "mute": { + "description": "Mute seseorang di server", + "slashMemberDescription": "Siapa yang ingin anda mute?", + "slashReasonDescription": "Alasan mute", + "usage": "{prefix}mute <@mention | id> [alasan]", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", + "cantMuteOwner": "Anda tidak bisa mute owner server!", + "unableToCreateMuteRole": "Tidak dapat membuat mute role", + "alreadyMuted": "Member tersebut sedang di **`MUTE`**", + "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", + "mutedByString": "Di mute oleh: {author}", + "muteFail": "Tidak dapat **`MUTE`** member, dikarenakan: `{message}`", + "muteSuccess": "**{user}** telah di **`MUTE`** di server ini." + }, + "purge": { + "description": "Hapus pesan", + "slashAmountDescription": "Jumlah pesan yang ingin dihapus", + "usage": "{prefix}purge <jumlah>", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE MESSAGES`** untuk menggunakan perintah ini.", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE MESSAGES`**.", + "invalidAmount": "Mohon berikan jumlah yang benar.", + "purgeFail": "Tidak dapat **`PURGE`** pesan, dikarenakan: `{message}`", + "purgeSuccess": "**{amount}** pesan telah di **`PURGED`**" + }, + "unban": { + "description": "Unban seseorang dari server", + "slashMemberDescription": "Siapa yang ingin anda un-ban?", + "slashReasonDescription": "Alasan un-ban", + "usage": "{prefix}unban <id> [alasan]", + "alreadyUnban": "Orang itu sedang tidak di **`BAN`**", + "unbanFail": "Tidak dapat **`UN-BAN`** member, dikarenakan: `{message}`", + "ubanSuccess": "**{user}** telah di **`UN-BAN`** dari server ini." + }, + "unmute": { + "description": "Unmute seseorang di server", + "slashMemberDescription": "Siapa yang ingin anda un-mute?", + "slashReasonDescription": "Alasan un-mute", + "usage": "{prefix}unmute <@mention | id> [alasan]", + "noMuted": "Member tersebut sedang tidak di **`MUTE`**", + "userUnmuted": "Anda telah di **`UN-MUTE`** di **{guildName}**", + "unmutedByString": "Di unmute oleh: {author}", + "unmuteFail": "Tidak dapat **`UN-MUTE`** member, dikarenakan: `{message}`", + "unmuteSuccess": "**{user}** telah di **`UN-MUTE`** di server ini." + }, + "warn": { + "description": "Warn seseorang di server", + "slashMemberDescription": "Siapa yang ingin anda warn?", + "slashReasonDescription": "Alasan warn", + "usage": "{prefix}warn <@mention | id> [alasan]", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE SERVER`** untuk menggunakan perintah ini.", + "noDM": "Tidak dapat membuka DM dengan pengguna tersebut, tetapi akan tetap saya warn.", + "userWarned": "Kamu telah di **`WARN`** di **{guildName}**", + "warnedByString": "Di warn oleh: {author}", + "warnSuccess": "**{user}** telah di **`WARN`** di server ini." + } + }, + "music": { + "categoryName": "MUSIK", + "lyrics": { + "description": "Menampilkan lirik lagu", + "slashDescription": "Judul lagu untuk dicari", + "usage": "{prefix}lyrics [song]", + "noQuery": "Tidak ada yang sedang dimainkan atau tidak ada argumen yang diberikan.", + "apiError": "Tidak dapat menemukan lagu **{song}**, dikarenakan: `{message}`" + }, + "nowplaying": { + "description": "Menunjukkan status media player", + "emptyQueue": "Antrian telah kosong", + "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus." + }, + "pause": { + "description": "Menjeda media player", + "alreadyPause": "Media player sedang dijeda.", + "pauseMessage": "Media player telah dijeda." + }, + "play": { + "description": "Memainkan beberapa lagu", + "slashQueryDescription": "Kata pencarian", + "usage": "{prefix}play <kata pencarian / link>", + "alreadyPlaying": "Media player sedang memainkan lagu di channel **`{voiceChannel}`**.", + "noSongData": "Link tersebut tidak memiliki data lagu." + }, + "queue": { + "description": "Menunjukkan daftar antrian" + }, + "repeat": { + "description": "Mengulang lagu yang sedang dimainkan atau setelahnya", + "slashQueue": "Mengatur mode pengulangan ke **`QUEUE`**", + "slashSong": "Mengatur mode pengulangan ke **`SONG`**", + "slashDisable": "Mematikan mode pengulangan", + "actualMode": "Mode pengulangan: **`{mode}`**", + "newMode": "Mode pengulangan telah diatur ke **`{mode}`**" + }, + "resume": { + "description": "Melanjutkan media player", + "alreadyResume": "Media player sedang tidak dijeda.", + "resumeMessage": "Media player telah dilanjutkan." + }, + "search": { + "description": "Memainkan beberapa lagu dengan kata pencarian yang diberikan", + "slashDescription": "Mencari lagu yang diberikan", + "slashQueryDescription": "Kata pencarian", + "slashSourceDescription": "Dari mana lagu harus di ambil?", + "usage": "{prefix}search <kata pencarian> [sumber]", + "noQuery": "Mohon berikan kata pencarian untuk dicari.", + "noTracks": "Saya tidak dapat menemukan hasil pencarian.", + "queueEmbed": "Silahkan pilih beberapa lagu, kamu bisa memilih lebih dari satu menggunakan spasi atau {separator}.\n", + "trackSelectionMessage": "Pemilihan lagu", + "cancelMessage": "Ketik {cancel} atau c untuk membatalkan pemilihan lagu.", + "noSelection": "Angka yang diberikan tidak valid, pemilihan lagu dibatalkan.", + "canceledMessage": "Pemilihan lagu dibatalkan.", + "interactionContent": "Silahkan pilih beberapa lagu", + "interactionPlaceholder": "Silahkan pilih beberapa lagu" + }, + "shuffle": { + "description": "Acak antrian", + "actualState": "Mode acak: **`{state}`**", + "newState": "Mode acak telah diatur ke **`{state}`**" + }, + "skip": { + "description": "Lewatkan lagu", + "voteMessage": "{actual}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", + "voteResultMessage": "{length}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", + "skipMessage": "**{song}** dilewatkan" + }, + "skipTo": { + "description": "Lompat ke posisi tertentu pada antrian", + "slashFirstDescription": "Mundur ke lagu pertama pada antrian", + "slashLastDescription": "Lompat ke lagu terakhir pada antrian", + "slashSpecificDescription": "Lompat ke posisi tertentu pada antrian", + "slashPositionDescription": "Posisi lagu pada antrian", + "usage": "{prefix}skipto <{options} | angka>", + "noPermission": "Kamu tidak dapat menggunakan perintah ini.", + "noSongPosition": "Tidak dapat mencari lagu pada posisi tersebut.", + "cantPlay": "Tidak dapat melompat ke lagu yang sedang dimainkan.", + "skipMessage": "Melompat ke lagu **{song}**" + }, + "stayInQueue": { + "description": "Membuat bot menetap di voice channel saat antrian lagu sudah berakhir", + "slashDescription": "Mengganti mode fitur Stay-in-voice", + "247Disabled": "Perintah Stay-in-voice dimatikan.", + "actualState": "Stay-in-voice: **{state}**", + "newState": "Stay-in-voice telah diatur ke **{state}**" + }, + "stop": { + "description": "Menghentikan media player", + "stoppedMessage": "Media player telah dihentikan." + }, + "volume": { + "description": "Mengganti volume media player", + "slashDescription": "Volume baru", + "usage": "{prefix}volume [volume baru]", + "currentVolume": "Volume saat ini adalah **`{volume}`**", + "changeVolume": "Untuk mengganti volume, berikan angka volume baru saat menggunakan perintah ini.", + "plsPause": "Mohon menjeda media player nya saja daripada mengatur volume ke **`{volume}`**", + "volumeLimit": "Saya tidak dapat mengatur volume di atas **`{maxVol}`**", + "newVolume": "Volume diatur ke **`{volume}`**" + } + } + }, + "utils": { + "musicDecorator": { + "noQueue": "Antrian media player sedang kosong.", + "noInVC": "Mohon maaf, tetapi anda harus berada di sebuah voice channel untuk melakukannya.", + "validVCJoinable": "Mohon maaf, tetapi saya tidak dapat **`CONNECT`** ke voice channel anda, pastikan saya memiliki izin yang tepat.", + "validVCPermission": "Mohon maaf, tetapi saya tidak dapat **`SPEAK`** di voice channel, pastikan saya memiliki izin yang tepat.", + "sameVC": "Anda harus berada di voice channel yang sama dengan saya." + }, + "generalHandler": { + "handleVideoInitial": "{length} lagu telah ditambahkan ke antrian\n\n", + "errorJoining": "Error saat memasuki voice channel, dikarenakan: `{message}`", + "queueEnded": "Antrian sudah berakhir, gunakan **{usage}** untuk memainkan lagu lagi.", + "leftVC": "Keluar dari voice channel karena tidak ada lagi aktivitas.", + "startPlaying": "Mulai memainkan **{song}**", + "stopPlaying": "Selesai memainkan **{song}**", + "errorPlaying": "Sebuah error terjadi saat mencoba memainkan lagu, dikarenakan: `{message}`" + }, + "cooldownMessage": "{author}, mohon tunggu selama **`{timeleft}`** detik." + }, + "events": { + "channelUpdate": { + "reconfigureConnection": "Region voice channel telah diganti. Melakukan konfigurasi koneksi...", + "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", + "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus." + }, + "createInteraction": { + "message1": "Mohon maaf, tetapi interaction tersebut hanya untuk <@{user}> dan staff server.", + "message2": "Mohon maaf, tetapi interaction tersebut hanya untuk <@{user}>" + }, + "createMessage": "Hai {author}, prefix-ku adalah **`{prefix}`**", + "voiceStateUpdate": { + "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", + "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", + "unableJoinStageMessage": "Tidak dapat bergabung sebagai Speaker, antrian telah dihapus.", + "joinStageMessage": "Berhasil bergabung ke stage channel sebagai Speaker.", + "deleteQueue": "**`{duration}`** telah berlalu dan belum ada yang memasuki voice channel, antrian telah dihapus.", + "deleteQueueFooter": "Antrian dihapus", + "pauseQueue": "Semua orang telah keluar dari voice channel. Untuk menyimpan penggunaan, antrian telah dijeda.\nJika masih tidak ada yang memasuki voice channel dalam **`{duration}`**, antrian akan dihapus.", + "pauseQueueFooter": "Antrian dijeda", + "resumeQueue": "Seseorang telah memasuki voice channel.\nMelanjutkan **{song}**", + "resumeQueueFooter": "Antrian dilanjutkan" + } + }, + "reusable": { + "pageFooter": "Halaman {actual} dari {total}", + "invalidUsage": "Penggunaan tidak valid, gunakan **`{prefix} {name}`** untuk informasi lebih lanjut." + } } diff --git a/src/config/env.ts b/src/config/env.ts index 824d00bec..7638736a5 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -2,8 +2,8 @@ import { parseEnvValue } from "../utils/functions/parseEnvValue"; import { PresenceData } from "../typings"; import { ActivityType, ClientPresenceStatus } from "discord.js"; import { existsSync, readFileSync } from "fs"; -import { parse } from "dotenv"; import { resolve } from "path"; +import { parse } from "dotenv"; // Parse the dev.env file const devEnvPath = resolve(process.cwd(), "dev.env"); diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index d75b11ecb..b2affa079 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -2,8 +2,8 @@ import { BasicYoutubeVideoInfo } from "../../typings"; import { soundcloud } from "./SoundCloudUtil"; import { streamStrategy } from "../../config"; import { checkQuery } from "./GeneralUtil"; -import { stream as pldlStream, video_basic_info } from "play-dl"; import ytdl, { exec } from "../../../yt-dlp-utils"; +import { stream as pldlStream, video_basic_info } from "play-dl"; import { Readable } from "stream"; export async function getStream(url: string): Promise<Readable> { diff --git a/yt-dlp-utils/index.js b/yt-dlp-utils/index.js index febf2476e..32d64aa91 100644 --- a/yt-dlp-utils/index.js +++ b/yt-dlp-utils/index.js @@ -34,19 +34,19 @@ function json(str) { } export async function downloadExecutable() { - if (!existsSync(exePath)) { - console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); - const releases = await got.get("https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1").json(); - const release = releases[0]; - const asset = release.assets.find((asset) => asset.name === filename); - await new Promise((resolve, reject) => { - got.get(asset.browser_download_url).buffer().then(x => { - mkdirSync(scriptsPath, { recursive: true }); - writeFileSync(exePath, x, { mode: 0o777 }); - }).then(resolve).catch(reject); - }); - console.info("[INFO] Yt-dlp has been downloaded."); - } + if (!existsSync(exePath)) { + console.info("[INFO] Yt-dlp couldn't be found, trying to download..."); + const releases = await got.get("https://api.github.com/repos/yt-dlp/yt-dlp/releases?per_page=1").json(); + const release = releases[0]; + const asset = release.assets.find((asset) => asset.name === filename); + await new Promise((resolve, reject) => { + got.get(asset.browser_download_url).buffer().then(x => { + mkdirSync(scriptsPath, { recursive: true }); + writeFileSync(exePath, x, { mode: 0o777 }); + }).then(resolve).catch(reject); + }); + console.info("[INFO] Yt-dlp has been downloaded."); + } } export const exec = (url, options = {}, spawnOptions = {}) => spawn(exePath, args(url, options), { From 0f61abeb06d7e0ba383c49c2473cc4453b8c1788 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 17 May 2022 21:35:38 +0700 Subject: [PATCH 335/411] feat: sync with 'https://github.com/Clytage/project-template' --- .eslintignore | 8 - .github/workflows/test.yml | 10 +- .gitignore | 5 +- .nvmrc | 1 + .vscode/settings.json | 5 +- package-lock.json | 8505 ++++++++++++++++++------------------ package.json | 115 +- tsconfig.json | 41 +- 8 files changed, 4342 insertions(+), 4348 deletions(-) delete mode 100644 .eslintignore create mode 100644 .nvmrc diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index ff0d98a0a..000000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -# TypeScript build output -dist/ - -# Start file -index.js - -# YT-DLP utils folder -yt-dlp-utils/ diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7aa059499..ddeed3e97 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Lint code & compile test +name: Lint code and compile setup script on: push: @@ -17,13 +17,13 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # tag=v3.2.0 with: node-version: ${{ matrix.node-version }} check-latest: true - + - name: Install dependencies run: npm ci @@ -49,5 +49,5 @@ jobs: - name: Install dependencies run: npm ci - - name: Test compile - run: npm run tscompile && rm -rf dist + - name: Compile test + run: npm run compile && rm -rf dist diff --git a/.gitignore b/.gitignore index 98cca99b3..e40fc1d89 100644 --- a/.gitignore +++ b/.gitignore @@ -43,9 +43,6 @@ jspm_packages/ # TypeScript cache *.tsbuildinfo -# TypeScript build output -dist/ - # Optional npm cache directory .npm @@ -69,8 +66,8 @@ dist/ # dotenv environment variables file .env +.env.test dev.env -.prod.env # parcel-bundler cache (https://parceljs.org/) .cache diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..2fa6f28c5 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +./.node-version diff --git a/.vscode/settings.json b/.vscode/settings.json index cee7bbae9..a6b031e4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,8 @@ { + "files.eol": "\n", "typescript.tsdk": "node_modules/typescript/lib", + "typescript.preferences.importModuleSpecifierEnding": "js", "eslint.packageManager": "npm", "npm.packageManager": "npm", - "files.eol": "\n", "liveshare.languages.allowGuestCommandControl": true -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index f39ddd96d..cc6bfcfe8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4270 +1,4271 @@ { - "name": "rawon", - "version": "3.0.0-dev", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "rawon", - "version": "3.0.0-dev", - "license": "BSD-3-Clause", - "dependencies": { - "@discordjs/voice": "0.9.0", - "@swc/cli": "0.1.57", - "@swc/core": "1.2.186", - "date-fns": "2.28.0", - "discord.js": "13.7.0", - "dotenv": "16.0.1", - "got": "12.0.4", - "i18n": "0.14.2", - "opusscript": "0.0.8", - "prism-media": "1.3.2", - "soundcloud.ts": "0.4.5", - "tslib": "2.4.0", - "tweetnacl": "1.0.3", - "youtubei": "0.0.1-rc.35" - }, - "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.2", - "@types/i18n": "0.13.2", - "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.24.0", - "@typescript-eslint/parser": "5.24.0", - "eslint": "8.15.0", - "typescript": "4.6.4" - }, - "engines": { - "node": ">=16.6.0" - }, - "optionalDependencies": { - "play-dl": "^1.9.4" - } - }, - "node_modules/@clytage-pkg/eslint-config": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", - "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", - "dev": true, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5.18.0", - "@typescript-eslint/parser": ">=5.18.0", - "eslint": ">=8.15.0", - "typescript": ">=3.3.1 <4.7.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true + "name": "rawon", + "version": "3.0.0-dev", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "rawon", + "version": "3.0.0-dev", + "license": "BSD-3-Clause", + "dependencies": { + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.186", + "date-fns": "2.28.0", + "discord.js": "13.7.0", + "dotenv": "16.0.1", + "got": "12.0.4", + "i18n": "0.14.2", + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.5", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" + }, + "devDependencies": { + "@clytage-pkg/eslint-config": "1.0.2", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.24.0", + "@typescript-eslint/parser": "5.24.0", + "eslint": "8.15.0", + "typescript": "4.6.4" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + }, + "optionalDependencies": { + "play-dl": "^1.9.4" + } }, - "@typescript-eslint/parser": { - "optional": true + "node_modules/@clytage-pkg/eslint-config": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", + "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", + "dev": true, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">=5.18.0", + "@typescript-eslint/parser": ">=5.18.0", + "eslint": ">=8.15.0", + "typescript": ">=3.3.1 <4.7.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "typescript": { + "optional": true + } + } }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@discordjs/builders": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", - "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", - "dependencies": { - "@sapphire/shapeshift": "^2.0.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.31.1", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", - "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" - }, - "node_modules/@discordjs/collection": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", - "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==", - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/voice": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", - "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", - "dependencies": { - "@types/ws": "^8.5.3", - "discord-api-types": "^0.29.0", - "prism-media": "^1.3.2", - "tiny-typed-emitter": "^2.1.0", - "tslib": "^2.3.1", - "ws": "^8.5.0" - }, - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/voice/node_modules/discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - }, - "node_modules/@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.9.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" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@messageformat/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", - "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", - "dependencies": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", - "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" - }, - "node_modules/@messageformat/number-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", - "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" - }, - "node_modules/@messageformat/parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", - "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", - "dependencies": { - "moo": "^0.5.1" - } - }, - "node_modules/@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "dependencies": { - "make-plural": "^7.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/shapeshift": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", - "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==", - "engines": { - "node": ">=v15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@swc/cli": { - "version": "0.1.57", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", - "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", - "dependencies": { - "commander": "^7.1.0", - "fast-glob": "^3.2.5", - "slash": "3.0.0", - "source-map": "^0.7.3" - }, - "bin": { - "spack": "bin/spack.js", - "swc": "bin/swc.js" - }, - "engines": { - "node": ">= 12.13" - }, - "peerDependencies": { - "@swc/core": "^1.2.66", - "chokidar": "^3.5.1" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@swc/core": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", - "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", - "bin": { - "swcx": "run_swcx.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.186", - "@swc/core-android-arm64": "1.2.186", - "@swc/core-darwin-arm64": "1.2.186", - "@swc/core-darwin-x64": "1.2.186", - "@swc/core-freebsd-x64": "1.2.186", - "@swc/core-linux-arm-gnueabihf": "1.2.186", - "@swc/core-linux-arm64-gnu": "1.2.186", - "@swc/core-linux-arm64-musl": "1.2.186", - "@swc/core-linux-x64-gnu": "1.2.186", - "@swc/core-linux-x64-musl": "1.2.186", - "@swc/core-win32-arm64-msvc": "1.2.186", - "@swc/core-win32-ia32-msvc": "1.2.186", - "@swc/core-win32-x64-msvc": "1.2.186" - } - }, - "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", - "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-android-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", - "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", - "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", - "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", - "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", - "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", - "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", - "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", - "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", - "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", - "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", - "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", - "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "node_modules/@types/i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", - "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", - "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/type-utils": "5.24.0", - "@typescript-eslint/utils": "5.24.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", - "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", - "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", - "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.24.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", - "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", - "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", - "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", - "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.24.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/boolean": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", - "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-lookup": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", - "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "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", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" - }, - "node_modules/discord.js": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", - "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", - "dependencies": { - "@discordjs/builders": "^0.13.0", - "@discordjs/collection": "^0.6.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", - "@types/ws": "^8.5.3", - "discord-api-types": "^0.30.0", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.6.0" - }, - "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.2.3", - "@humanwhocodes/config-array": "^0.9.2", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "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": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-printf": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", - "dependencies": { - "boolean": "^3.1.4" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", - "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http2-wrapper": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", - "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/i18n": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", - "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", - "dependencies": { - "@messageformat/core": "^3.0.0", - "debug": "^4.3.3", - "fast-printf": "^1.6.9", - "make-plural": "^7.0.0", - "math-interval-parser": "^2.0.1", - "mustache": "^4.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/mashpie" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/keyv": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", - "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "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", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-plural": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", - "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" - }, - "node_modules/math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/opusscript": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", - "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/play-audio": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", - "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", - "optional": true - }, - "node_modules/play-dl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", - "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", - "optional": true, - "dependencies": { - "play-audio": "^0.5.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prism-media": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", - "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", - "peerDependencies": { - "@discordjs/opus": "^0.5.0", - "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", - "node-opus": "^0.3.3", - "opusscript": "^0.0.8" - }, - "peerDependenciesMeta": { - "@discordjs/opus": { - "optional": true - }, - "ffmpeg-static": { - "optional": true - }, - "node-opus": { - "optional": true + "node_modules/@discordjs/builders": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", + "dependencies": { + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + }, + "node_modules/@discordjs/collection": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/voice": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", + "dependencies": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", + "prism-media": "^1.3.2", + "tiny-typed-emitter": "^2.1.0", + "tslib": "^2.3.1", + "ws": "^8.5.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/voice/node_modules/discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.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" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@messageformat/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", + "dependencies": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" + } + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "node_modules/@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "node_modules/@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "dependencies": { + "make-plural": "^7.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==", + "engines": { + "node": ">=v15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@swc/cli": { + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", + "dependencies": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js" + }, + "engines": { + "node": ">= 12.13" + }, + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^3.5.1" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@swc/core": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", + "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", + "bin": { + "swcx": "run_swcx.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-android-arm-eabi": "1.2.186", + "@swc/core-android-arm64": "1.2.186", + "@swc/core-darwin-arm64": "1.2.186", + "@swc/core-darwin-x64": "1.2.186", + "@swc/core-freebsd-x64": "1.2.186", + "@swc/core-linux-arm-gnueabihf": "1.2.186", + "@swc/core-linux-arm64-gnu": "1.2.186", + "@swc/core-linux-arm64-musl": "1.2.186", + "@swc/core-linux-x64-gnu": "1.2.186", + "@swc/core-linux-x64-musl": "1.2.186", + "@swc/core-win32-arm64-msvc": "1.2.186", + "@swc/core-win32-ia32-msvc": "1.2.186", + "@swc/core-win32-x64-msvc": "1.2.186" + } + }, + "node_modules/@swc/core-android-arm-eabi": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", + "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-android-arm64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", + "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", + "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", + "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-freebsd-x64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", + "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", + "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", + "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", + "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", + "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", + "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", + "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", + "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", + "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/i18n": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", + "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/type-utils": "5.24.0", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", + "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", + "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", + "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", + "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", + "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", + "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", + "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.24.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-lookup": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "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", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + }, + "node_modules/discord.js": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", + "dependencies": { + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.1", + "ws": "^8.6.0" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "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": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "dependencies": { + "boolean": "^3.1.4" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", + "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http2-wrapper": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/i18n": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", + "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", + "dependencies": { + "@messageformat/core": "^3.0.0", + "debug": "^4.3.3", + "fast-printf": "^1.6.9", + "make-plural": "^7.0.0", + "math-interval-parser": "^2.0.1", + "mustache": "^4.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/mashpie" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/keyv": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", + "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "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", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-plural": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" + }, + "node_modules/math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/opusscript": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", + "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/play-audio": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", + "optional": true + }, + "node_modules/play-dl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", + "optional": true, + "dependencies": { + "play-audio": "^0.5.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prism-media": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "peerDependencies": { + "@discordjs/opus": "^0.5.0", + "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.8" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/soundcloud.ts": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", + "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", + "dependencies": { + "axios": "^0.21.1" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "opusscript": { - "optional": true - } - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/soundcloud.ts": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", - "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", - "dependencies": { - "axios": "^0.21.1" - } - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/ts-mixer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", - "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/youtubei": { - "version": "0.0.1-rc.35", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", - "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" - } - }, - "dependencies": { - "@clytage-pkg/eslint-config": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", - "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", - "dev": true, - "requires": {} - }, - "@discordjs/builders": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", - "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", - "requires": { - "@sapphire/shapeshift": "^2.0.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.31.1", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.3.1" - }, - "dependencies": { - "discord-api-types": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", - "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/ts-mixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/youtubei": { + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" } - } - }, - "@discordjs/collection": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", - "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==" }, - "@discordjs/voice": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", - "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", - "requires": { - "@types/ws": "^8.5.3", - "discord-api-types": "^0.29.0", - "prism-media": "^1.3.2", - "tiny-typed-emitter": "^2.1.0", - "tslib": "^2.3.1", - "ws": "^8.5.0" - }, - "dependencies": { + "dependencies": { + "@clytage-pkg/eslint-config": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", + "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", + "dev": true, + "requires": {} + }, + "@discordjs/builders": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", + "requires": { + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" + }, + "dependencies": { + "discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + } + } + }, + "@discordjs/collection": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==" + }, + "@discordjs/voice": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", + "requires": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", + "prism-media": "^1.3.2", + "tiny-typed-emitter": "^2.1.0", + "tslib": "^2.3.1", + "ws": "^8.5.0" + }, + "dependencies": { + "discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + } + } + }, + "@eslint/eslintrc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.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" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@messageformat/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", + "requires": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" + } + }, + "@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "requires": { + "moo": "^0.5.1" + } + }, + "@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "requires": { + "make-plural": "^7.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sapphire/async-queue": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" + }, + "@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@swc/cli": { + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", + "requires": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + } + }, + "@swc/core": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", + "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", + "requires": { + "@swc/core-android-arm-eabi": "1.2.186", + "@swc/core-android-arm64": "1.2.186", + "@swc/core-darwin-arm64": "1.2.186", + "@swc/core-darwin-x64": "1.2.186", + "@swc/core-freebsd-x64": "1.2.186", + "@swc/core-linux-arm-gnueabihf": "1.2.186", + "@swc/core-linux-arm64-gnu": "1.2.186", + "@swc/core-linux-arm64-musl": "1.2.186", + "@swc/core-linux-x64-gnu": "1.2.186", + "@swc/core-linux-x64-musl": "1.2.186", + "@swc/core-win32-arm64-msvc": "1.2.186", + "@swc/core-win32-ia32-msvc": "1.2.186", + "@swc/core-win32-x64-msvc": "1.2.186" + } + }, + "@swc/core-android-arm-eabi": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", + "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", + "optional": true + }, + "@swc/core-android-arm64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", + "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", + "optional": true + }, + "@swc/core-darwin-arm64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", + "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", + "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", + "optional": true + }, + "@swc/core-freebsd-x64": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", + "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", + "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", + "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", + "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", + "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", + "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", + "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", + "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.2.186", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", + "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", + "optional": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/i18n": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" + }, + "@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", + "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/type-utils": "5.24.0", + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", + "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", + "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", + "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.24.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", + "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", + "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/visitor-keys": "5.24.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", + "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.24.0", + "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/typescript-estree": "5.24.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", + "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.24.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-lookup": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - } - } - }, - "@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.9.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" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@messageformat/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", - "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", - "requires": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "@messageformat/date-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", - "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" - }, - "@messageformat/number-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", - "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" - }, - "@messageformat/parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", - "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", - "requires": { - "moo": "^0.5.1" - } - }, - "@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "requires": { - "make-plural": "^7.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" - }, - "@sapphire/shapeshift": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", - "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==" - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" - }, - "@swc/cli": { - "version": "0.1.57", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", - "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", - "requires": { - "commander": "^7.1.0", - "fast-glob": "^3.2.5", - "slash": "3.0.0", - "source-map": "^0.7.3" - } - }, - "@swc/core": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", - "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", - "requires": { - "@swc/core-android-arm-eabi": "1.2.186", - "@swc/core-android-arm64": "1.2.186", - "@swc/core-darwin-arm64": "1.2.186", - "@swc/core-darwin-x64": "1.2.186", - "@swc/core-freebsd-x64": "1.2.186", - "@swc/core-linux-arm-gnueabihf": "1.2.186", - "@swc/core-linux-arm64-gnu": "1.2.186", - "@swc/core-linux-arm64-musl": "1.2.186", - "@swc/core-linux-x64-gnu": "1.2.186", - "@swc/core-linux-x64-musl": "1.2.186", - "@swc/core-win32-arm64-msvc": "1.2.186", - "@swc/core-win32-ia32-msvc": "1.2.186", - "@swc/core-win32-x64-msvc": "1.2.186" - } - }, - "@swc/core-android-arm-eabi": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", - "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", - "optional": true - }, - "@swc/core-android-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", - "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", - "optional": true - }, - "@swc/core-darwin-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", - "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", - "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", - "optional": true - }, - "@swc/core-freebsd-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", - "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", - "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", - "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", - "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", - "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", - "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", - "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", - "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", - "optional": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", - "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", - "optional": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", - "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" - }, - "@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", - "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/type-utils": "5.24.0", - "@typescript-eslint/utils": "5.24.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", - "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", - "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", - "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.24.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", - "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", - "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", - "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", - "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.24.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "boolean": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", - "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "cacheable-lookup": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", - "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + }, + "discord.js": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", + "requires": { + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.1", + "ws": "^8.6.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" - }, - "discord.js": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", - "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", - "requires": { - "@discordjs/builders": "^0.13.0", - "@discordjs/collection": "^0.6.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", - "@types/ws": "^8.5.3", - "discord-api-types": "^0.30.0", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.6.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.2.3", - "@humanwhocodes/config-array": "^0.9.2", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "requires": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "requires": { + "boolean": "^3.1.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-printf": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", - "requires": { - "boolean": "^3.1.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "got": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", - "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http2-wrapper": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", - "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "i18n": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", - "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", - "requires": { - "@messageformat/core": "^3.0.0", - "debug": "^4.3.3", - "fast-printf": "^1.6.9", - "make-plural": "^7.0.0", - "math-interval-parser": "^2.0.1", - "mustache": "^4.2.0" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "keyv": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", - "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-plural": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", - "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" - }, - "math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "opusscript": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", - "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "play-audio": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", - "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", - "optional": true - }, - "play-dl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", - "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", - "optional": true, - "requires": { - "play-audio": "^0.5.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prism-media": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", - "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", - "requires": {} - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "got": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", + "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", + "requires": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http2-wrapper": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "i18n": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", + "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", + "requires": { + "@messageformat/core": "^3.0.0", + "debug": "^4.3.3", + "fast-printf": "^1.6.9", + "make-plural": "^7.0.0", + "math-interval-parser": "^2.0.1", + "mustache": "^4.2.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "keyv": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", + "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "soundcloud.ts": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", - "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", - "requires": { - "axios": "^0.21.1" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "ts-mixer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", - "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-plural": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" + }, + "math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "opusscript": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", + "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "play-audio": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", + "optional": true + }, + "play-dl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", + "optional": true, + "requires": { + "play-audio": "^0.5.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prism-media": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "requires": {} + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "soundcloud.ts": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", + "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", + "requires": { + "axios": "^0.21.1" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "ts-mixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" + }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "requires": {} + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "youtubei": { + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" } - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "requires": {} - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "youtubei": { - "version": "0.0.1-rc.35", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", - "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" } - } } diff --git a/package.json b/package.json index 0c5cda0b4..5761ee9b1 100644 --- a/package.json +++ b/package.json @@ -1,59 +1,64 @@ { - "name": "rawon", - "version": "3.0.0-dev", - "private": true, - "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "repository": "https://github.com/Clytage/rawon", - "license": "BSD-3-Clause", - "author": "Clytage <admin@clytage.org>", - "type": "module", - "main": "index.js", - "scripts": { - "build": "npm run lint && npm run compile", - "compile": "npx swc src -d dist", - "tscompile": "tsc --build tsconfig.json", - "lint": "eslint . --ext .ts", - "lint:fix": "eslint . --ext .ts --fix", - "start": "node --es-module-specifier-resolution=node -r dotenv/config ." - }, - "eslintConfig": { - "parserOptions": { - "project": "./tsconfig.json" + "name": "rawon", + "version": "3.0.0-dev", + "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", + "main": "index.js", + "scripts": { + "build": "npm run lint && npm run compile", + "compile": "npx swc src -d dist", + "tscompile": "tsc --build tsconfig.json", + "lint": "eslint . --ignore-path .gitignore --ext .ts", + "lint:fix": "eslint . --ignore-path .gitignore --ext .ts --fix", + "start": "node --es-module-specifier-resolution=node -r dotenv/config .", + "start:dev": "rimraf ./dist && npm run compile && npm start" }, - "extends": "@clytage-pkg/eslint-config/typescript", - "rules": { - "@typescript-eslint/no-extra-parens": "off" + "repository": { + "type": "git", + "url": "git+https://github.com/Clytage/rawon.git" + }, + "author": "Clytage <support@clytage.org>", + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/Clytage/rawon/issues" + }, + "homepage": "https://github.com/Clytage/rawon#readme", + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + }, + "eslintConfig": { + "extends": "@clytage-pkg/eslint-config/typescript", + "ignorePatterns": ["dist/*", "index.js", "yt-dlp-utils/"], + "rules": { + "@typescript-eslint/no-extra-parens": "off" + } + }, + "dependencies": { + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.186", + "date-fns": "2.28.0", + "discord.js": "13.7.0", + "dotenv": "16.0.1", + "got": "12.0.4", + "i18n": "0.14.2", + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.5", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" + }, + "devDependencies": { + "@clytage-pkg/eslint-config": "1.0.2", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.24.0", + "@typescript-eslint/parser": "5.24.0", + "eslint": "8.15.0", + "typescript": "4.6.4" + }, + "optionalDependencies": { + "play-dl": "^1.9.4" } - }, - "dependencies": { - "@discordjs/voice": "0.9.0", - "@swc/cli": "0.1.57", - "@swc/core": "1.2.186", - "date-fns": "2.28.0", - "discord.js": "13.7.0", - "dotenv": "16.0.1", - "got": "12.0.4", - "i18n": "0.14.2", - "opusscript": "0.0.8", - "prism-media": "1.3.2", - "soundcloud.ts": "0.4.5", - "tslib": "2.4.0", - "tweetnacl": "1.0.3", - "youtubei": "0.0.1-rc.35" - }, - "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.2", - "@types/i18n": "0.13.2", - "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.24.0", - "@typescript-eslint/parser": "5.24.0", - "eslint": "8.15.0", - "typescript": "4.6.4" - }, - "engines": { - "node": ">=16.6.0" - }, - "optionalDependencies": { - "play-dl": "^1.9.4" - } } diff --git a/tsconfig.json b/tsconfig.json index 3e409e9d9..7788550be 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,21 @@ { - "compilerOptions": { - "target": "ES2021", - "module": "ES2020", - "moduleResolution": "node", - "lib": ["ES2021", "ESNext.Array"], - "strict": true, - "outDir": "dist", - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": false, - "noEmitHelpers": true, - "importHelpers": true, - "resolveJsonModule": true, - "typeRoots": [ - "node_modules/@types", - "src/typings" - ] - }, - "exclude": [], - "include": ["src/**/*.ts", "src/**/*.json"] + "compilerOptions": { + "target": "ES2021", + "module": "ESNext", + "moduleResolution": "Node", + "lib": ["ES2021"], + "strict": true, + "outDir": "dist", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "skipLibCheck": true, + "noEmitHelpers": true, + "importHelpers": true, + "resolveJsonModule": true, + "typeRoots": ["node_modules/@types", "src/typings"] + }, + "exclude": [], + "include": ["src/**/*"] } From 9322fff30efa32bcbc380c0d9ab0b87b42222f94 Mon Sep 17 00:00:00 2001 From: noxzym <67855694+noxzym@users.noreply.github.com> Date: Tue, 17 May 2022 22:20:10 +0700 Subject: [PATCH 336/411] chore: restore type config value --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 5761ee9b1..d4cee759a 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "3.0.0-dev", "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", "main": "index.js", + "type": "module", "scripts": { "build": "npm run lint && npm run compile", "compile": "npx swc src -d dist", From 93d334c9ddc91e6fd7c9cd89fb892e93707231fd Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 17 May 2022 22:35:07 +0700 Subject: [PATCH 337/411] chore(deps-dev): add rimraf --- package-lock.json | 1 + package.json | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index cc6bfcfe8..fe5a21e25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "@typescript-eslint/eslint-plugin": "5.24.0", "@typescript-eslint/parser": "5.24.0", "eslint": "8.15.0", + "rimraf": "^3.0.2", "typescript": "4.6.4" }, "engines": { diff --git a/package.json b/package.json index d4cee759a..c450716e7 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,11 @@ }, "eslintConfig": { "extends": "@clytage-pkg/eslint-config/typescript", - "ignorePatterns": ["dist/*", "index.js", "yt-dlp-utils/"], + "ignorePatterns": [ + "dist/*", + "index.js", + "yt-dlp-utils/" + ], "rules": { "@typescript-eslint/no-extra-parens": "off" } @@ -57,6 +61,7 @@ "@typescript-eslint/eslint-plugin": "5.24.0", "@typescript-eslint/parser": "5.24.0", "eslint": "8.15.0", + "rimraf": "^3.0.2", "typescript": "4.6.4" }, "optionalDependencies": { From fcc0c579af8a302bee1e8c4b6cf9689d2fb3ae40 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Thu, 19 May 2022 16:25:17 +0700 Subject: [PATCH 338/411] chore: remove unnecessary file --- start.sh | 1 - 1 file changed, 1 deletion(-) delete mode 100644 start.sh diff --git a/start.sh b/start.sh deleted file mode 100644 index 0f785c418..000000000 --- a/start.sh +++ /dev/null @@ -1 +0,0 @@ -npm run build && npm run start From ae85e871e5f992b35b55b480b05ac3acad3dffa5 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Thu, 19 May 2022 16:28:01 +0700 Subject: [PATCH 339/411] ci: forget to rename this file too when doing a sync --- .github/workflows/{test.yml => setup.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{test.yml => setup.yml} (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/setup.yml similarity index 100% rename from .github/workflows/test.yml rename to .github/workflows/setup.yml From 72f99b169fc6e51ea93aea0119a205b61c48ac2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 11:32:48 +0700 Subject: [PATCH 340/411] chore(deps): update all non-major dependencies (#937) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package-lock.json | 272 +++++++++++++++++++++++++++++----------------- package.json | 8 +- 2 files changed, 174 insertions(+), 106 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe5a21e25..e90d83180 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,10 +16,10 @@ "discord.js": "13.7.0", "dotenv": "16.0.1", "got": "12.0.4", - "i18n": "0.14.2", + "i18n": "0.15.0", "opusscript": "0.0.8", "prism-media": "1.3.2", - "soundcloud.ts": "0.4.5", + "soundcloud.ts": "0.4.6", "tslib": "2.4.0", "tweetnacl": "1.0.3", "youtubei": "0.0.1-rc.35" @@ -28,8 +28,8 @@ "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.24.0", - "@typescript-eslint/parser": "5.24.0", + "@typescript-eslint/eslint-plugin": "5.25.0", + "@typescript-eslint/parser": "5.25.0", "eslint": "8.15.0", "rimraf": "^3.0.2", "typescript": "4.6.4" @@ -598,14 +598,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", - "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz", + "integrity": "sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/type-utils": "5.24.0", - "@typescript-eslint/utils": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/type-utils": "5.25.0", + "@typescript-eslint/utils": "5.25.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -631,14 +631,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", - "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.25.0.tgz", + "integrity": "sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/typescript-estree": "5.25.0", "debug": "^4.3.4" }, "engines": { @@ -658,13 +658,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", - "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz", + "integrity": "sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0" + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/visitor-keys": "5.25.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -675,12 +675,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", - "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz", + "integrity": "sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.24.0", + "@typescript-eslint/utils": "5.25.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -701,9 +701,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", - "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.25.0.tgz", + "integrity": "sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -714,13 +714,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", - "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz", + "integrity": "sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/visitor-keys": "5.25.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -741,15 +741,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", - "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.25.0.tgz", + "integrity": "sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/typescript-estree": "5.25.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -765,12 +765,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", - "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz", + "integrity": "sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/types": "5.25.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -857,11 +857,25 @@ "node": ">=8" } }, + "node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "node_modules/audioconcat": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", + "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", + "dependencies": { + "fluent-ffmpeg": "^2.0.0", + "lodash.merge": "^4.6.2" + } + }, "node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -1492,6 +1506,29 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, + "node_modules/fluent-ffmpeg": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", + "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", + "dependencies": { + "async": ">=0.2.9", + "which": "^1.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fluent-ffmpeg/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/follow-redirects": { "version": "1.14.8", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", @@ -1672,9 +1709,9 @@ } }, "node_modules/i18n": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", - "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", + "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", "dependencies": { "@messageformat/core": "^3.0.0", "debug": "^4.3.3", @@ -1770,8 +1807,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -1826,8 +1862,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/lowercase-keys": { "version": "3.0.0", @@ -2304,10 +2339,11 @@ } }, "node_modules/soundcloud.ts": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", - "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", + "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", "dependencies": { + "audioconcat": "^0.1.4", "axios": "^0.21.1" } }, @@ -2905,14 +2941,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.24.0.tgz", - "integrity": "sha512-6bqFGk6wa9+6RrU++eLknKyDqXU1Oc8nyoLu5a1fU17PNRJd9UBr56rMF7c4DRaRtnarlkQ4jwxUbvBo8cNlpw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz", + "integrity": "sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/type-utils": "5.24.0", - "@typescript-eslint/utils": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/type-utils": "5.25.0", + "@typescript-eslint/utils": "5.25.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -2922,52 +2958,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.24.0.tgz", - "integrity": "sha512-4q29C6xFYZ5B2CXqSBBdcS0lPyfM9M09DoQLtHS5kf+WbpV8pBBhHDLNhXfgyVwFnhrhYzOu7xmg02DzxeF2Uw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.25.0.tgz", + "integrity": "sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/typescript-estree": "5.25.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.24.0.tgz", - "integrity": "sha512-WpMWipcDzGmMzdT7NtTjRXFabx10WleLUGrJpuJLGaxSqpcyq5ACpKSD5VE40h2nz3melQ91aP4Du7lh9FliCA==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz", + "integrity": "sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==", "dev": true, "requires": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0" + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/visitor-keys": "5.25.0" } }, "@typescript-eslint/type-utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.24.0.tgz", - "integrity": "sha512-uGi+sQiM6E5CeCZYBXiaIvIChBXru4LZ1tMoeKbh1Lze+8BO9syUG07594C4lvN2YPT4KVeIupOJkVI+9/DAmQ==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz", + "integrity": "sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.24.0", + "@typescript-eslint/utils": "5.25.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.24.0.tgz", - "integrity": "sha512-Tpg1c3shTDgTmZd3qdUyd+16r/pGmVaVEbLs+ufuWP0EruVbUiEOmpBBQxBb9a8iPRxi8Rb2oiwOxuZJzSq11A==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.25.0.tgz", + "integrity": "sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.24.0.tgz", - "integrity": "sha512-zcor6vQkQmZAQfebSPVwUk/FD+CvnsnlfKXYeQDsWXRF+t7SBPmIfNia/wQxCSeu1h1JIjwV2i9f5/DdSp/uDw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz", + "integrity": "sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/visitor-keys": "5.24.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/visitor-keys": "5.25.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2976,26 +3012,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.24.0.tgz", - "integrity": "sha512-K05sbWoeCBJH8KXu6hetBJ+ukG0k2u2KlgD3bN+v+oBKm8adJqVHpSSLHNzqyuv0Lh4GVSAUgZ5lB4icmPmWLw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.25.0.tgz", + "integrity": "sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.24.0", - "@typescript-eslint/types": "5.24.0", - "@typescript-eslint/typescript-estree": "5.24.0", + "@typescript-eslint/scope-manager": "5.25.0", + "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/typescript-estree": "5.25.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.24.0.tgz", - "integrity": "sha512-qzGwSXMyMnogcAo+/2fU+jhlPPVMXlIH2PeAonIKjJSoDKl1+lJVvG5Z5Oud36yU0TWK2cs1p/FaSN5J2OUFYA==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz", + "integrity": "sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.24.0", + "@typescript-eslint/types": "5.25.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -3051,11 +3087,25 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "audioconcat": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", + "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", + "requires": { + "fluent-ffmpeg": "^2.0.0", + "lodash.merge": "^4.6.2" + } + }, "axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -3537,6 +3587,25 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, + "fluent-ffmpeg": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", + "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", + "requires": { + "async": ">=0.2.9", + "which": "^1.1.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "follow-redirects": { "version": "1.14.8", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", @@ -3661,9 +3730,9 @@ } }, "i18n": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.14.2.tgz", - "integrity": "sha512-f/6Ns2skl6KrpumZsE0A4TaxiEoJRi3Ovko0O+NuD92Ot2sLICpw6Iy+04ph/4tfF7koAWVYElBJ4oftpyhhxw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", + "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", "requires": { "@messageformat/core": "^3.0.0", "debug": "^4.3.3", @@ -3732,8 +3801,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "js-yaml": { "version": "4.1.0", @@ -3782,8 +3850,7 @@ "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "lowercase-keys": { "version": "3.0.0", @@ -4089,10 +4156,11 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "soundcloud.ts": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.5.tgz", - "integrity": "sha512-WAQN687lCs7ig4xciXaNSX3iZ5+XWM5l00jQx3edVsw8ySjPyIymHuSKeHZJBrpKCZbPnnvzEWaBYDK7+eYDCw==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", + "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", "requires": { + "audioconcat": "^0.1.4", "axios": "^0.21.1" } }, diff --git a/package.json b/package.json index c450716e7..6b67973c3 100644 --- a/package.json +++ b/package.json @@ -46,10 +46,10 @@ "discord.js": "13.7.0", "dotenv": "16.0.1", "got": "12.0.4", - "i18n": "0.14.2", + "i18n": "0.15.0", "opusscript": "0.0.8", "prism-media": "1.3.2", - "soundcloud.ts": "0.4.5", + "soundcloud.ts": "0.4.6", "tslib": "2.4.0", "tweetnacl": "1.0.3", "youtubei": "0.0.1-rc.35" @@ -58,8 +58,8 @@ "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.24.0", - "@typescript-eslint/parser": "5.24.0", + "@typescript-eslint/eslint-plugin": "5.25.0", + "@typescript-eslint/parser": "5.25.0", "eslint": "8.15.0", "rimraf": "^3.0.2", "typescript": "4.6.4" From 7317cf1ca269fe300ab391b9f337ec01ad23ba63 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 20 May 2022 16:14:47 +0900 Subject: [PATCH 341/411] feat(DJCommand): add dj feature status on `role` sub cmd embed footer --- src/commands/music/DJCommand.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts index ba23e4783..05e7a14ac 100644 --- a/src/commands/music/DJCommand.ts +++ b/src/commands/music/DJCommand.ts @@ -68,7 +68,9 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__("commands.music.dj.disable")) + createEmbed("success", i18n.__mf("commands.music.dj.changeText", { + new: i18n.__("commands.music.dj.disable").toUpperCase() + })) ] }); }, @@ -92,19 +94,23 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__("commands.music.dj.enable")) + createEmbed("success", i18n.__mf("commands.music.dj.changeText", { + new: i18n.__("commands.music.dj.enable").toUpperCase() + })) ] }); }, role: async ctx => { const newRole = ctx.options?.getRole("newrole")?.id ?? ctx.args.shift()?.replace(/[^0-9]/g, ""); + const txt = this.client.data.data?.[ctx.guild?.id ?? ""]?.dj?.enable ? "enable" : "disable"; + const footer = `${i18n.__("commands.music.dj.embedTitle")}: ${i18n.__(`commands.music.dj.${txt}`)}`; if (!newRole) { let role: string | null; try { - role = this.client.data.data?.[ctx.guild?.id ?? ""]?.modLog?.channel ?? null; + role = this.client.data.data?.[ctx.guild?.id ?? ""]?.dj?.role ?? null; if (!role) throw new Error(""); } catch { role = null; @@ -115,6 +121,9 @@ export class DJCommand extends BaseCommand { createEmbed("info", role ? i18n.__mf("commands.music.dj.role.current", { role }) : i18n.__("commands.music.dj.role.noRole")) + .setFooter({ + text: footer + }) ] }); } @@ -148,6 +157,9 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ createEmbed("success", i18n.__mf("commands.music.dj.role.success", { role: newRole })) + .setFooter({ + text: footer + }) ] }); } From ea191232a8ed183b54e19dcd3fb927bdf8d6385f Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 20 May 2022 16:15:23 +0900 Subject: [PATCH 342/411] chore(lang/en): synchronize with changes in dj command --- lang/en.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index 15d9fbb74..af54fe915 100644 --- a/lang/en.json +++ b/lang/en.json @@ -182,8 +182,9 @@ }, "embedTitle": "DJ", "newRoleText": "new role", - "disable": "DJ feature has been **`DISABLED`**", - "enable": "DJ feature has been **`ENABLED`**" + "changeText": "DJ feature has been **`{new}`**", + "disable": "Disabled", + "enable": "Enabled" }, "lyrics": { "description": "Show the lyrics from the song", From c971e63339b4edbbf4fb3efd8a5a5638f28e426d Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 20 May 2022 15:12:00 +0700 Subject: [PATCH 343/411] chore(deps): update lockfile --- package-lock.json | 221 ++++++++++++++++++++++++++-------------------- 1 file changed, 127 insertions(+), 94 deletions(-) diff --git a/package-lock.json b/package-lock.json index e90d83180..b88400a38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,11 +110,6 @@ "node": ">=16.9.0" } }, - "node_modules/@discordjs/voice/node_modules/discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - }, "node_modules/@eslint/eslintrc": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", @@ -136,9 +131,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -540,6 +535,11 @@ "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", "dev": true }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -547,9 +547,9 @@ "dev": true }, "node_modules/@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "dependencies": { "@types/node": "*" } @@ -865,7 +865,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/audioconcat": { "version": "0.1.4", @@ -891,9 +891,9 @@ "dev": true }, "node_modules/boolean": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", - "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -1033,6 +1033,18 @@ "node": ">= 10" } }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1141,9 +1153,9 @@ } }, "node_modules/discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" }, "node_modules/discord.js": { "version": "13.7.0", @@ -1165,6 +1177,11 @@ "npm": ">=7.0.0" } }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1530,9 +1547,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", + "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", "funding": [ { "type": "individual", @@ -1590,15 +1607,15 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1622,9 +1639,9 @@ } }, "node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1697,9 +1714,9 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/http2-wrapper": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", - "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", + "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -1839,10 +1856,11 @@ "dev": true }, "node_modules/keyv": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", - "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", + "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", "dependencies": { + "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -1909,31 +1927,31 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -2625,13 +2643,6 @@ "tiny-typed-emitter": "^2.1.0", "tslib": "^2.3.1", "ws": "^8.5.0" - }, - "dependencies": { - "discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - } } }, "@eslint/eslintrc": { @@ -2652,9 +2663,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2884,6 +2895,11 @@ "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", "dev": true }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2891,9 +2907,9 @@ "dev": true }, "@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "requires": { "@types/node": "*" } @@ -3095,7 +3111,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "audioconcat": { "version": "0.1.4", @@ -3121,9 +3137,9 @@ "dev": true }, "boolean": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", - "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, "brace-expansion": { "version": "1.1.11", @@ -3229,6 +3245,15 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, + "compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3300,9 +3325,9 @@ } }, "discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" }, "discord.js": { "version": "13.7.0", @@ -3318,6 +3343,13 @@ "form-data": "^4.0.0", "node-fetch": "^2.6.1", "ws": "^8.6.0" + }, + "dependencies": { + "discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + } } }, "doctrine": { @@ -3607,9 +3639,9 @@ } }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", + "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" }, "form-data": { "version": "4.0.0", @@ -3644,15 +3676,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -3667,9 +3699,9 @@ } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -3721,9 +3753,9 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http2-wrapper": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", - "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", + "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -3830,10 +3862,11 @@ "dev": true }, "keyv": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz", - "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", + "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", "requires": { + "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -3882,25 +3915,25 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } }, "mimic-response": { From 306e96fb3356817a8fa3108c1d6b4ab87dafa02f Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 20 May 2022 15:49:37 +0700 Subject: [PATCH 344/411] chore(config): update default EMBED_COLOR to `22C9FF` --- .env_example | 4 ++-- README.md | 2 +- app.json | 4 ++-- src/config/env.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.env_example b/.env_example index 32b6c1f51..3f18e3c30 100644 --- a/.env_example +++ b/.env_example @@ -26,8 +26,8 @@ ALT_PREFIX="{mention}" #============================================================================== # OPTIONAL - What should be your bot's embed color code? (hex) -# Example: EMBED_COLOR="3CAAFF" -# Default: 3CAAFF +# Example: EMBED_COLOR="22C9FF" +# Default: 22C9FF EMBED_COLOR="" #============================================================================== diff --git a/README.md b/README.md index 1c48a113a..ac96ace76 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 **IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. -<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FClytage%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=3CAAFF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" +<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FClytage%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=22C9FF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> ## Project Maintainer diff --git a/app.json b/app.json index c9a82b71c..046def875 100644 --- a/app.json +++ b/app.json @@ -18,9 +18,9 @@ "value": "{mention}" }, "EMBED_COLOR": { - "description": "What should be your bot's embed color code? (hex) | Example: 3CAAFF", + "description": "What should be your bot's embed color code? (hex) | Example: 22C9FF", "required": false, - "value": "3CAAFF" + "value": "22C9FF" }, "LOCALE": { "description": "What should be the language of your bot? | Example: en | Available: en, es, id", diff --git a/src/config/env.ts b/src/config/env.ts index 7638736a5..f5645e0a3 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -25,7 +25,7 @@ export const isProd = !isDev; // String values export const musicSelectionType = (process.env.MUSIC_SELECTION_TYPE?.toLowerCase() ?? "") || "message"; -export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "3CAAFF"; +export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "22C9FF"; export const streamStrategy = process.env.STREAM_STRATEGY! || "yt-dlp"; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; From 97a9f3fa25966400c0bb95c471007725b670c218 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 20 May 2022 15:50:55 +0700 Subject: [PATCH 345/411] chore(config): update example MAIN_GUILD to `972407605295198258` --- .env_example | 2 +- app.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env_example b/.env_example index 3f18e3c30..6173a2bd5 100644 --- a/.env_example +++ b/.env_example @@ -53,7 +53,7 @@ ACTIVITY_TYPES="PLAYING, LISTENING, WATCHING, PLAYING, COMPETING" #============================================================================== # OPTIONAL, MULTIPLE - What is your server's ID? -# Example: MAIN_GUILD="521178509033340968" +# Example: MAIN_GUILD="972407605295198258" MAIN_GUILD="" #============================================================================== diff --git a/app.json b/app.json index 046def875..1913a78f2 100644 --- a/app.json +++ b/app.json @@ -38,7 +38,7 @@ "value": "PLAYING, LISTENING, WATCHING, PLAYING, COMPETING" }, "MAIN_GUILD": { - "description": "What is your server's ID? | Example: \"521178509033340968, 521178509033340968\"", + "description": "What is your server's ID? | Example: \"972407605295198258, 972407605295198258\"", "required": false }, "STREAM_STRATEGY": { From a85589af2f64a5c25eb43027458710c4d3071f01 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:09:31 +0900 Subject: [PATCH 346/411] feat(commands/moderation): add SetMuteCommand --- src/commands/moderation/SetMuteCommand.ts | 56 +++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/commands/moderation/SetMuteCommand.ts diff --git a/src/commands/moderation/SetMuteCommand.ts b/src/commands/moderation/SetMuteCommand.ts new file mode 100644 index 000000000..505d94e44 --- /dev/null +++ b/src/commands/moderation/SetMuteCommand.ts @@ -0,0 +1,56 @@ +import { CommandContext } from "../../structures/CommandContext"; +import { createEmbed } from "../../utils/functions/createEmbed"; +import { BaseCommand } from "../../structures/BaseCommand"; +import { Command } from "../../utils/decorators/Command"; +import i18n from "../../config"; + +@Command({ + aliases: ["setmuterole"], + description: i18n.__("commands.moderation.setmute.description"), + name: "setmute", + slash: { + options: [ + { + description: i18n.__("commands.moderation.setmute.slashRoleDescription"), + name: "role", + type: "ROLE", + required: true + } + ] + }, + usage: i18n.__("commands.moderation.setmute.usage") +}) +export class SetMuteCommand extends BaseCommand { + public async execute(ctx: CommandContext): Promise<void> { + const id = ctx.options?.getRole("role", true).id ?? ctx.args[0].replace(/\D/g, ""); + const role = await ctx.guild?.roles.fetch(id).catch(() => undefined); + if (!role) { + await ctx.reply({ + embeds: [ + createEmbed("error", i18n.__("commands.moderation.setmute.invalidRole")) + ] + }); + + return; + } + + await this.client.data.save(() => { + const data = this.client.data.data; + const guildData = data?.[ctx.guild?.id ?? ""]; + + return { + ...(data ?? {}), + [ctx.guild!.id]: { + ...(guildData ?? {}), + infractions: guildData?.infractions ?? {}, + mute: role.id + } + }; + }); + await ctx.reply({ + embeds: [ + createEmbed("success", i18n.__mf("commands.moderation.setmute.success", { role: role.id })) + ] + }); + } +} From 1b98399e65aed71141dc00754aeba1acd879941a Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:09:50 +0900 Subject: [PATCH 347/411] feat(ClientUtils): fetch mute role from guild data --- src/utils/structures/ClientUtils.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/utils/structures/ClientUtils.ts b/src/utils/structures/ClientUtils.ts index 715f15575..de405dbc2 100644 --- a/src/utils/structures/ClientUtils.ts +++ b/src/utils/structures/ClientUtils.ts @@ -9,14 +9,9 @@ const { FFmpeg } = prism; export class ClientUtils { public constructor(public readonly client: Rawon) {} - public async fetchMuteRole(guild: Guild): Promise<Role> { - return guild.roles.cache.find(x => x.name === this.client.config.muteRoleName) ?? - guild.roles.create({ - mentionable: false, - name: this.client.config.muteRoleName, - permissions: ["VIEW_CHANNEL", "READ_MESSAGE_HISTORY"], - reason: "Create Muted role" - }); + public async fetchMuteRole(guild: Guild): Promise<Role | null> { + const id = this.client.data.data?.[guild.id]?.mute; + return id ? guild.roles.fetch(id).catch(() => null) : null; } public async fetchDJRole(guild: Guild): Promise<Role | null> { From 1256ed114654406b49df36552be6808653c5fe90 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:12:23 +0900 Subject: [PATCH 348/411] feat(MuteCommand): change no-role warning --- src/commands/moderation/MuteCommand.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 03151a3b9..0e9aea81f 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -50,10 +50,14 @@ export class MuteCommand extends BaseCommand { }); } - const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); + const muteRole = await this.client.utils.fetchMuteRole(ctx.guild); if (!muteRole) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.unableToCreateMuteRole"))] + embeds: [ + createEmbed("error", i18n.__mf("commands.moderation.mute.noRole", { + prefix: this.client.config.mainPrefix + })) + ] }); } if (member.roles.cache.has(muteRole.id)) { From 681676d3b3efb9c89016d92bfd6aaaae0405b117 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:12:51 +0900 Subject: [PATCH 349/411] feat(lang/en): synchronize with changes --- lang/en.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index af54fe915..6c8217a5f 100644 --- a/lang/en.json +++ b/lang/en.json @@ -116,7 +116,7 @@ "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", "cantMuteOwner": "You can't mute the server owner!", - "unableToCreateMuteRole": "Unable to create mute role", + "noRole": "Mute role hasn't been set. Please set it with `{prefix}setmute`.", "alreadyMuted": "That member is already **`MUTED`**", "userMuted": "You have been **`MUTED`** on **{guildName}**", "mutedByString": "Muted by: {author}", @@ -133,6 +133,13 @@ "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", "purgeSuccess": "{amount, plural, one {**1** message} other {**#** messages}} have been **`PURGED`**" }, + "setmute": { + "description": "Set the mute role", + "slashRoleDescription": "The role to be used for muting", + "usage": "{prefix}setmute <role>", + "invalidRole": "Invalid role.", + "success": "Mute role has been set to <@&{role}>" + }, "unban": { "description": "Un-ban someone from the server", "slashMemberDescription": "Who do you like to un-ban?", From 4dfb4e83d549fc3721903d61ca120f43b40d3614 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:14:09 +0900 Subject: [PATCH 350/411] feat(MuteCommand): ensure that the user is muted first before sending dm --- src/commands/moderation/MuteCommand.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 0e9aea81f..ea9256c4b 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -69,6 +69,10 @@ export class MuteCommand extends BaseCommand { const reason = ctx.options?.getString("reason") ?? ( ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") ); + + const mute = await member.roles.add(muteRole, reason).catch(err => new Error(err as string | undefined)); + if (mute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.mute.muteFail", { message: mute.message }), true)] }); + const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ @@ -85,9 +89,6 @@ export class MuteCommand extends BaseCommand { }); } - const mute = await member.roles.add(muteRole, reason).catch(err => new Error(err as string | undefined)); - if (mute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.mute.muteFail", { message: mute.message }), true)] }); - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.mute.muteSuccess", { user: member.user.tag }), true)] }); } } From ae9b08c382f88858cf5034564fdc2c07ba5767a5 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:16:26 +0900 Subject: [PATCH 351/411] fix(MuteCommand): provide guild name to the dm embed description --- src/commands/moderation/MuteCommand.ts | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index ea9256c4b..aa4d714b5 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -76,16 +76,20 @@ export class MuteCommand extends BaseCommand { const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [createEmbed("error", i18n.__("commands.moderation.mute.userMuted")) - .setColor("LIGHT_GREY") - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.mute.mutedByString", { - author: ctx.author.tag - }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now())] + embeds: [ + createEmbed("error", i18n.__mf("commands.moderation.mute.userMuted", { + guildName: ctx.guild.name + })) + .setColor("LIGHT_GREY") + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.mute.mutedByString", { + author: ctx.author.tag + }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now()) + ] }); } From b0473db65d35468f03234b33a755208e1cace815 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:19:33 +0900 Subject: [PATCH 352/411] feat(UnMuteCommand): ensure that the user is muted first before sending dm --- src/commands/moderation/UnMuteCommand.ts | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index bdcc7afd1..ea2465ea3 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -60,6 +60,19 @@ export class UnMuteCommand extends BaseCommand { const reason = ctx.options?.getString("reason") ?? ( ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") ); + const unmute = await member.roles.remove(muteRole, reason).catch(err => new Error(err as string | undefined)); + if (unmute instanceof Error) { + return ctx.reply({ + embeds: [createEmbed( + "error", + i18n.__mf("commands.moderation.unmute.unmuteFail", { + message: unmute.message + }), + true + )] + }); + } + const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ @@ -76,20 +89,6 @@ export class UnMuteCommand extends BaseCommand { }); } - const unmute = await member.roles.remove(muteRole, reason) - .catch(err => new Error(err as string | undefined)); - if (unmute instanceof Error) { - return ctx.reply({ - embeds: [createEmbed( - "error", - i18n.__mf("commands.moderation.unmute.unmuteFail", { - message: unmute.message - }), - true - )] - }); - } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unmute.unmuteSuccess", { user: member.user.tag From 59ddbdb51515b939460e4f855fbcae3208edc1dd Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:22:13 +0900 Subject: [PATCH 353/411] feat(BanCommand): ensure that the user is banned first before sending dm --- src/commands/moderation/BanCommand.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index e2717911a..231d8e63f 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -54,6 +54,17 @@ export class BanCommand extends BaseCommand { const reason = ctx.options?.getString("reason") ?? ( ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") ); + const ban = await ctx.guild.members.ban(user, { + reason + }).catch(err => new Error(err as string | undefined)); + if (ban instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true) + ] + }); + } + if (ctx.guild.members.cache.has(user.id)) { const dm = await user.createDM().catch(() => undefined); if (dm) { @@ -75,17 +86,6 @@ export class BanCommand extends BaseCommand { } } - const ban = await ctx.guild.members.ban(user, { - reason - }).catch(err => new Error(err as string | undefined)); - if (ban instanceof Error) { - return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true) - ] - }); - } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), true)] }); From cf2887382745b53420c16522a4af45893162794c Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:38:29 +0900 Subject: [PATCH 354/411] feat(config/env): remove `muteRoleName` --- src/config/env.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/config/env.ts b/src/config/env.ts index f5645e0a3..5812a5972 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -29,7 +29,6 @@ export const embedColor = (process.env.EMBED_COLOR?.toUpperCase() ?? "") || "22C export const streamStrategy = process.env.STREAM_STRATEGY! || "yt-dlp"; export const mainPrefix = isDev ? "d!" : process.env.MAIN_PREFIX! || "!"; export const lang = (process.env.LOCALE?.toLowerCase() ?? "") || "en"; -export const muteRoleName = process.env.MUTE_ROLE_NAME! || "Muted"; export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; From 9c9197b5fb8e7c449a5cb8477f63d886ac2cec70 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 21 May 2022 11:39:10 +0900 Subject: [PATCH 355/411] chore(config): remove `MUTE_ROLE_NAME` --- .env_example | 6 ------ app.json | 5 ----- 2 files changed, 11 deletions(-) diff --git a/.env_example b/.env_example index 6173a2bd5..536bae34f 100644 --- a/.env_example +++ b/.env_example @@ -89,12 +89,6 @@ ENABLE_24_7_COMMAND="" # Default: no STAY_IN_VC_AFTER_FINISHED="" -#============================================================================== -# OPTIONAL - What is your server's Muted role name? -# Example: MUTE_ROLE_NAME="Muted" -# Default: Muted -MUTE_ROLE_NAME="" - #============================================================================== # OPTIONAL - What should be your bot's emoji for every success sentence? # Example: YES_EMOJI="✅" diff --git a/app.json b/app.json index 1913a78f2..a20f6c8ed 100644 --- a/app.json +++ b/app.json @@ -66,11 +66,6 @@ "required": false, "value": "no" }, - "MUTE_ROLE_NAME": { - "description": "What is your server's Muted role name? | Example: Muted", - "required": false, - "value": "Muted" - }, "YES_EMOJI": { "description": "What should be your bot's emoji for every success sentence? | Example: ✅", "required": false, From d8b702c2d5058ca5a4e023debf6e49e51dfc7927 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 22 May 2022 00:10:23 +0700 Subject: [PATCH 356/411] fix(deps): update all non-major dependencies (#938) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package-lock.json | 260 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 132 insertions(+), 132 deletions(-) diff --git a/package-lock.json b/package-lock.json index b88400a38..f34a081c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.186", + "@swc/core": "1.2.189", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -30,7 +30,7 @@ "@types/node": "17.0.33", "@typescript-eslint/eslint-plugin": "5.25.0", "@typescript-eslint/parser": "5.25.0", - "eslint": "8.15.0", + "eslint": "8.16.0", "rimraf": "^3.0.2", "typescript": "4.6.4" }, @@ -111,15 +111,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.2", - "globals": "^13.9.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -278,9 +278,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", - "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.189.tgz", + "integrity": "sha512-S5cKX4ECMSfW78DLFgnlilJZgjrFRYwPslrrwpLl3gpwh+Qo72/Mhn71u7G/5xXW+T/xW5GwPccHfCk+k72uUg==", "bin": { "swcx": "run_swcx.js" }, @@ -292,25 +292,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.186", - "@swc/core-android-arm64": "1.2.186", - "@swc/core-darwin-arm64": "1.2.186", - "@swc/core-darwin-x64": "1.2.186", - "@swc/core-freebsd-x64": "1.2.186", - "@swc/core-linux-arm-gnueabihf": "1.2.186", - "@swc/core-linux-arm64-gnu": "1.2.186", - "@swc/core-linux-arm64-musl": "1.2.186", - "@swc/core-linux-x64-gnu": "1.2.186", - "@swc/core-linux-x64-musl": "1.2.186", - "@swc/core-win32-arm64-msvc": "1.2.186", - "@swc/core-win32-ia32-msvc": "1.2.186", - "@swc/core-win32-x64-msvc": "1.2.186" + "@swc/core-android-arm-eabi": "1.2.189", + "@swc/core-android-arm64": "1.2.189", + "@swc/core-darwin-arm64": "1.2.189", + "@swc/core-darwin-x64": "1.2.189", + "@swc/core-freebsd-x64": "1.2.189", + "@swc/core-linux-arm-gnueabihf": "1.2.189", + "@swc/core-linux-arm64-gnu": "1.2.189", + "@swc/core-linux-arm64-musl": "1.2.189", + "@swc/core-linux-x64-gnu": "1.2.189", + "@swc/core-linux-x64-musl": "1.2.189", + "@swc/core-win32-arm64-msvc": "1.2.189", + "@swc/core-win32-ia32-msvc": "1.2.189", + "@swc/core-win32-x64-msvc": "1.2.189" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", - "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.189.tgz", + "integrity": "sha512-0kN3Le6QzFFz+Lc6a/tf/RkJXubWwWaHxF4c0bVm4AKIFf4nRlUCEqEkjdVaZvL92rpBMHaEEBuIIz3T8DqTTQ==", "cpu": [ "arm" ], @@ -323,9 +323,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", - "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.189.tgz", + "integrity": "sha512-smsb+YkDw2OKwg66Z63E/G4NlFApDbsiOPmZXFZbtZbNBD9v+wnk6WVA//XR1bdUI9VbzNKlMPKJxQTE685QDw==", "cpu": [ "arm64" ], @@ -338,9 +338,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", - "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.189.tgz", + "integrity": "sha512-OGjZRkTulKirJMLYbW9etb59lA9ueDXVwYRVD9SrNh8tRMTf0Nq+SUT/C3LVhBBGC4KSdWOzBAYbDTTdsnY++Q==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", - "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.189.tgz", + "integrity": "sha512-BEcxnBHx51514Voe2dn/y1y5H9VNyw7Zpp9+mPekZqx5o/onPD5wZ1ZfAsPrA4UlvM3v16u6ITE/cLawJ/GdAQ==", "cpu": [ "x64" ], @@ -368,9 +368,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", - "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.189.tgz", + "integrity": "sha512-B6g2NWeh2iw6WPOaM19Uj3VE4se6alT265kWibLUshjcofRfnYT1lNhhkrF1D0EVnpC8I96I/xXNQo4Am9z4zQ==", "cpu": [ "x64" ], @@ -383,9 +383,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", - "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.189.tgz", + "integrity": "sha512-6WhPG9pyN5AahQTVQk8MoN1I9Z/Ytfqizuie1wV7mW8FMNmMkiJvBekKtE6ftxu80Hqa34r86WfEwmJKm5MqYw==", "cpu": [ "arm" ], @@ -398,9 +398,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", - "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.189.tgz", + "integrity": "sha512-frJTGnxsDe7h2d7BtnBivOdOJTtabkQIIZmHd4JHqafcoekI6teyveIax17axLyimvWl278yTo3hf7ePagD/eg==", "cpu": [ "arm64" ], @@ -413,9 +413,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", - "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.189.tgz", + "integrity": "sha512-27K38LoZpME5lojDJIUNo7zdTDwAKLm0BMQ7HXWcYOyiDAekhSidI+SrBWxCfLzfuClhFu6/VE3E7j32VFJsiA==", "cpu": [ "arm64" ], @@ -428,9 +428,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", - "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.189.tgz", + "integrity": "sha512-Ha5oJKOyQm9w7+e+WdRm4ypijzEmglWZGtgBR6vV6ViqqHcTBAU4nG87ex7y7AS9p+Cbc6EOSR9X1qIB8KxtbA==", "cpu": [ "x64" ], @@ -443,9 +443,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", - "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.189.tgz", + "integrity": "sha512-/p5yXa9HEzpVEuE4ivkW1IvwyYu6fT+L2OvVEs5oXIba80F0Wjy7InWqaa83gwrdMH+bXV6loG8LzZUZu/lpjA==", "cpu": [ "x64" ], @@ -458,9 +458,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", - "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.189.tgz", + "integrity": "sha512-o/1ueM6/sifNjYnO6NMEXB895spVfJs5oQIPxQG9vJ/4zWLw8YmAx+u1xJY+XGyK6gnroHt7yPiS87qWdbeF6w==", "cpu": [ "arm64" ], @@ -473,9 +473,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", - "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.189.tgz", + "integrity": "sha512-YDwRkzykaf+dw5Z7u189cC/Tttkn2NVV84hrGL3LbVuh7wT5PaDhZs4Yz4unZQSlPV12olmZWgNr/i27h5wlpg==", "cpu": [ "ia32" ], @@ -488,9 +488,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", - "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.189.tgz", + "integrity": "sha512-Nge8Z/ZkAp5p5No50yBDpBG7+ZYaVWGSuwtPj6OJe7orzvDCEm9GgcVE6J9GEjbclSWlCH8B8lUe17GaKRZHbg==", "cpu": [ "x64" ], @@ -1223,12 +1223,12 @@ } }, "node_modules/eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.3", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -1246,7 +1246,7 @@ "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -2646,15 +2646,15 @@ } }, "@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.2", - "globals": "^13.9.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -2768,101 +2768,101 @@ } }, "@swc/core": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.186.tgz", - "integrity": "sha512-n+I0z+gIsk+rkO2/UYGLcnyI2bq0YcHFtnMynRtZ8v541luGszFLBrayd3ljnmt4mFzSPY+2gTSQgK5HNuYk5g==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.189.tgz", + "integrity": "sha512-S5cKX4ECMSfW78DLFgnlilJZgjrFRYwPslrrwpLl3gpwh+Qo72/Mhn71u7G/5xXW+T/xW5GwPccHfCk+k72uUg==", "requires": { - "@swc/core-android-arm-eabi": "1.2.186", - "@swc/core-android-arm64": "1.2.186", - "@swc/core-darwin-arm64": "1.2.186", - "@swc/core-darwin-x64": "1.2.186", - "@swc/core-freebsd-x64": "1.2.186", - "@swc/core-linux-arm-gnueabihf": "1.2.186", - "@swc/core-linux-arm64-gnu": "1.2.186", - "@swc/core-linux-arm64-musl": "1.2.186", - "@swc/core-linux-x64-gnu": "1.2.186", - "@swc/core-linux-x64-musl": "1.2.186", - "@swc/core-win32-arm64-msvc": "1.2.186", - "@swc/core-win32-ia32-msvc": "1.2.186", - "@swc/core-win32-x64-msvc": "1.2.186" + "@swc/core-android-arm-eabi": "1.2.189", + "@swc/core-android-arm64": "1.2.189", + "@swc/core-darwin-arm64": "1.2.189", + "@swc/core-darwin-x64": "1.2.189", + "@swc/core-freebsd-x64": "1.2.189", + "@swc/core-linux-arm-gnueabihf": "1.2.189", + "@swc/core-linux-arm64-gnu": "1.2.189", + "@swc/core-linux-arm64-musl": "1.2.189", + "@swc/core-linux-x64-gnu": "1.2.189", + "@swc/core-linux-x64-musl": "1.2.189", + "@swc/core-win32-arm64-msvc": "1.2.189", + "@swc/core-win32-ia32-msvc": "1.2.189", + "@swc/core-win32-x64-msvc": "1.2.189" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.186.tgz", - "integrity": "sha512-y+xiLOlkksP69mCQTbSJi/TvELJ+VAVCS/A8xBynnbZXyst4byaEDz0b6PpSTeFU0QufyygzlIARBBxi48RAQg==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.189.tgz", + "integrity": "sha512-0kN3Le6QzFFz+Lc6a/tf/RkJXubWwWaHxF4c0bVm4AKIFf4nRlUCEqEkjdVaZvL92rpBMHaEEBuIIz3T8DqTTQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.186.tgz", - "integrity": "sha512-W7FZDXfs2b8UIsdBlyRbG8Me2L5k77nitd38LmPFzj9G67DQWhVyoCoHMx38kbsRE82GVO2LmZ28Ehrl7TQw5w==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.189.tgz", + "integrity": "sha512-smsb+YkDw2OKwg66Z63E/G4NlFApDbsiOPmZXFZbtZbNBD9v+wnk6WVA//XR1bdUI9VbzNKlMPKJxQTE685QDw==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.186.tgz", - "integrity": "sha512-v0aKuzZEV8zqyxrFohVzKjbbOWllgUd0Mgs8Fbft/K7Brp4QzBXvSjhOwsnNE4AlwzRLdINQfQz/RO6Ygp9H4Q==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.189.tgz", + "integrity": "sha512-OGjZRkTulKirJMLYbW9etb59lA9ueDXVwYRVD9SrNh8tRMTf0Nq+SUT/C3LVhBBGC4KSdWOzBAYbDTTdsnY++Q==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.186.tgz", - "integrity": "sha512-qhwFRvjFxkgiPqpg8ifo9bN6ONlPdn0xWPnkph2rpJhByMkNW2LEIApEPgS0ePhI9gq4Wksp5oxCviH1v36gQA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.189.tgz", + "integrity": "sha512-BEcxnBHx51514Voe2dn/y1y5H9VNyw7Zpp9+mPekZqx5o/onPD5wZ1ZfAsPrA4UlvM3v16u6ITE/cLawJ/GdAQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.186.tgz", - "integrity": "sha512-HhL4HqqShE3lCB7NWXRVjjiEN4t05usHrCBtHEADsZDAGglJRMjT9ZLGLVxGOxEziWCIR+kOV2jcMv0Bf4Bbaw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.189.tgz", + "integrity": "sha512-B6g2NWeh2iw6WPOaM19Uj3VE4se6alT265kWibLUshjcofRfnYT1lNhhkrF1D0EVnpC8I96I/xXNQo4Am9z4zQ==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.186.tgz", - "integrity": "sha512-ouAREnVdbUnZA0y4wYdAZZKIvqJ1uer9hOCbafgGyrmR9i8Lhswz2fPUGOUc+rxjqsP1z7uN5CpMcAH4KvyNUQ==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.189.tgz", + "integrity": "sha512-6WhPG9pyN5AahQTVQk8MoN1I9Z/Ytfqizuie1wV7mW8FMNmMkiJvBekKtE6ftxu80Hqa34r86WfEwmJKm5MqYw==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.186.tgz", - "integrity": "sha512-b8GbZ2FVlQrDWyqC/KW9zScAvvUx6StLDvGAPWxD2GvFHjE0iPnvLHGvuVuhje0pFFqSwZnQ5/KZ6VyrKowPJw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.189.tgz", + "integrity": "sha512-frJTGnxsDe7h2d7BtnBivOdOJTtabkQIIZmHd4JHqafcoekI6teyveIax17axLyimvWl278yTo3hf7ePagD/eg==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.186.tgz", - "integrity": "sha512-vWvfQiC7K2oMxuKbAWTgVVoTs7SpHb8GyecAzQbQWNIyOycLMihCXhgj99cz0GaSeEs/0SEd+FSoU+uldUysjA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.189.tgz", + "integrity": "sha512-27K38LoZpME5lojDJIUNo7zdTDwAKLm0BMQ7HXWcYOyiDAekhSidI+SrBWxCfLzfuClhFu6/VE3E7j32VFJsiA==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.186.tgz", - "integrity": "sha512-lGBOQd9GZsk6JQd1teZPIirir4vpcGPFlEKaoWMHTVgb4wyU0I6sW2edoHMWu+mUugs12/JpHWh7sw+ubgZzHA==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.189.tgz", + "integrity": "sha512-Ha5oJKOyQm9w7+e+WdRm4ypijzEmglWZGtgBR6vV6ViqqHcTBAU4nG87ex7y7AS9p+Cbc6EOSR9X1qIB8KxtbA==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.186.tgz", - "integrity": "sha512-H6pFxBpg3R+g0DDXzs39c9A7+O/ai1Zwliwo7jwOfLu4ef/cq2xrKa0AJ22lawtU9A+4gwRCX78phf2ezjC2jw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.189.tgz", + "integrity": "sha512-/p5yXa9HEzpVEuE4ivkW1IvwyYu6fT+L2OvVEs5oXIba80F0Wjy7InWqaa83gwrdMH+bXV6loG8LzZUZu/lpjA==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.186.tgz", - "integrity": "sha512-B178S3J5L9Z21IBVMNCarvM6kQrxHQVtT8V7vhUgldPJ5Nc2ty7ELYvrSdtiARqKP5PacKMur+nb8XIyhoJfIw==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.189.tgz", + "integrity": "sha512-o/1ueM6/sifNjYnO6NMEXB895spVfJs5oQIPxQG9vJ/4zWLw8YmAx+u1xJY+XGyK6gnroHt7yPiS87qWdbeF6w==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.186.tgz", - "integrity": "sha512-0VqhXRn+MVth9hdwRR/X0unT9hdUOa5Y8FRUgMm3ft/72bFSAz3E8UNYMWMtVbjuViNYJgAOPML+VE9UqN80JQ==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.189.tgz", + "integrity": "sha512-YDwRkzykaf+dw5Z7u189cC/Tttkn2NVV84hrGL3LbVuh7wT5PaDhZs4Yz4unZQSlPV12olmZWgNr/i27h5wlpg==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.186", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.186.tgz", - "integrity": "sha512-T+sNpLbtg5Q1zrDIOwzRDVCKQHb4eQx8MlIk9tF74amlBLt1GKBdgRn17YAA6GrNHRw7QHaDIeCEdc5OuUztvg==", + "version": "1.2.189", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.189.tgz", + "integrity": "sha512-Nge8Z/ZkAp5p5No50yBDpBG7+ZYaVWGSuwtPj6OJe7orzvDCEm9GgcVE6J9GEjbclSWlCH8B8lUe17GaKRZHbg==", "optional": true }, "@szmarczak/http-timer": { @@ -3381,12 +3381,12 @@ "dev": true }, "eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.3", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3404,7 +3404,7 @@ "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", diff --git a/package.json b/package.json index 6b67973c3..9c4b5bba9 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.186", + "@swc/core": "1.2.189", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -60,7 +60,7 @@ "@types/node": "17.0.33", "@typescript-eslint/eslint-plugin": "5.25.0", "@typescript-eslint/parser": "5.25.0", - "eslint": "8.15.0", + "eslint": "8.16.0", "rimraf": "^3.0.2", "typescript": "4.6.4" }, From 416875e32aa17f912031908adcc56554ad5d6f11 Mon Sep 17 00:00:00 2001 From: Ahmad Yaqdhan <ahmadyaqdhan123@gmail.com> Date: Sun, 22 May 2022 12:47:06 +0900 Subject: [PATCH 357/411] chore(readme): update railway URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac96ace76..fd2eceb55 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 **IMPORTANT:** Read [Disclaimers](./DISCLAIMERS.md) before deploying to Railway. -<a href="https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2FClytage%2Frawon&envs=DISCORD_TOKEN%2CMAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2CACTIVITIES%2CACTIVITY_TYPES%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&optionalEnvs=MAIN_PREFIX%2CALT_PREFIX%2CEMBED_COLOR%2CLOCALE%2COWNERS%2CDEV_GUILD%2CNODE_ENV%2CSTREAM_STRATEGY%2CENABLE_SLASH_COMMAND%2CMUSIC_SELECTION_TYPE%2CENABLE_24_7_COMMAND%2CSTAY_IN_VC_AFTER_FINISHED%2CDJ_ROLE_NAME%2CMUTE_ROLE_NAME%2CYES_EMOJI%2CNO_EMOJI&DISCORD_TOKENDesc=Example%3A+NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd&MAIN_PREFIXDesc=What+should+be+the+main+prefix+of+your+bot%3F&ALT_PREFIXDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&EMBED_COLORDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&LOCALEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITIESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ACTIVITY_TYPESDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&OWNERSDesc=What+is+the+owner%27s+ID+of+the+bot%3F+Example%3A+%5B%22397322976552550400%22%5D&DEV_GUILDDesc=What+is+your+server%27s+ID%3F+Example%3A+%22332877090003091456%22&NODE_ENVDesc=In+which+mode+do+you+want+to+activate+your+bot%3F+Available%3A+production%2C+development&STREAM_STRATEGYDesc=Which+youtube+downloader+do+you+want+to+use%3F+Note%3A+if+you+use+play-dl%2C+it+will+support+a+few+sites.+Available%3A+play-dl%2C+yt-dlp&ENABLE_SLASH_COMMANDDesc=Do+you+want+to+enable+slash+command+support%3F&MUSIC_SELECTION_TYPEDesc=For+More+Detailed+Info+See+https%3A%2F%2Fgithub.com%2FClytage%2Frawon%2Fblob%2Fmain%2F.env_example&ENABLE_24_7_COMMANDDesc=Do+you+want+to+enable+the+24%2F7+command%3F&STAY_IN_VC_AFTER_FINISHEDDesc=Do+you+want+to+make+your+bot+not+leave+the+voice+channel+after+playing+a+song%3F&DJ_ROLE_NAMEDesc=What+is+your+server%27s+DJ+role+name%3F&MUTE_ROLE_NAMEDesc=What+is+your+server%27s+Muted+role+name%3F&YES_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+success+sentence%3F&NO_EMOJIDesc=What+should+be+your+bot%27s+emoji+for+every+failed+sentence%3F&MAIN_PREFIXDefault=%21&ALT_PREFIXDefault=%5B%22%7Bmention%7D%22%5D&EMBED_COLORDefault=22C9FF&LOCALEDefault=en&ACTIVITIESDefault=%5B%22My+default+prefix+is+%7Bprefix%7D%22%2C+%22music+with+%7BuserCount%7D+users%22%2C+%22%7BtextChannelsCount%7D+text+channels+in+%7BserverCount%7D+guilds%22%2C+%22Hello+there%2C+my+name+is+%7Busername%7D%22%5D&ACTIVITY_TYPESDefault=%5B%22PLAYING%22%2C+%22LISTENING%22%2C+%22WATCHING%22%2C+%22PLAYING%22%2C+%22COMPETING%22%5D&NODE_ENVDefault=production&STREAM_STRATEGYDefault=yt-dlp&ENABLE_SLASH_COMMANDDefault=yes&MUSIC_SELECTION_TYPEDefault=message&ENABLE_24_7_COMMANDDefault=no&STAY_IN_VC_AFTER_FINISHEDDefault=no&DJ_ROLE_NAMEDefault=DJ&MUTE_ROLE_NAMEDefault=Muted&YES_EMOJIDefault=%E2%9C%85&NO_EMOJIDefault=%E2%9D%8C&referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" +<a href="https://railway.app/new/template/PVZDzd?referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> ## Project Maintainer From ba367856866f3915bf63994e060baefe52dd8258 Mon Sep 17 00:00:00 2001 From: Renovate Bot <bot@renovateapp.com> Date: Mon, 23 May 2022 19:51:25 +0000 Subject: [PATCH 358/411] chore(deps): update all non-major dependencies to v5.26.0 --- package-lock.json | 160 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 82 insertions(+), 82 deletions(-) diff --git a/package-lock.json b/package-lock.json index f34a081c0..7367ec66b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,8 +28,8 @@ "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.25.0", - "@typescript-eslint/parser": "5.25.0", + "@typescript-eslint/eslint-plugin": "5.26.0", + "@typescript-eslint/parser": "5.26.0", "eslint": "8.16.0", "rimraf": "^3.0.2", "typescript": "4.6.4" @@ -598,14 +598,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz", - "integrity": "sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/type-utils": "5.25.0", - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -631,14 +631,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.25.0.tgz", - "integrity": "sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "debug": "^4.3.4" }, "engines": { @@ -658,13 +658,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz", - "integrity": "sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0" + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -675,12 +675,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz", - "integrity": "sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -701,9 +701,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.25.0.tgz", - "integrity": "sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -714,13 +714,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz", - "integrity": "sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -741,15 +741,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.25.0.tgz", - "integrity": "sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -765,12 +765,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz", - "integrity": "sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/types": "5.26.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -2957,14 +2957,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz", - "integrity": "sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/type-utils": "5.25.0", - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -2974,52 +2974,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.25.0.tgz", - "integrity": "sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz", - "integrity": "sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0" + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" } }, "@typescript-eslint/type-utils": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz", - "integrity": "sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.25.0.tgz", - "integrity": "sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz", - "integrity": "sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3028,26 +3028,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.25.0.tgz", - "integrity": "sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz", - "integrity": "sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/types": "5.26.0", "eslint-visitor-keys": "^3.3.0" } }, diff --git a/package.json b/package.json index 9c4b5bba9..f31ddb44c 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,8 @@ "@clytage-pkg/eslint-config": "1.0.2", "@types/i18n": "0.13.2", "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.25.0", - "@typescript-eslint/parser": "5.25.0", + "@typescript-eslint/eslint-plugin": "5.26.0", + "@typescript-eslint/parser": "5.26.0", "eslint": "8.16.0", "rimraf": "^3.0.2", "typescript": "4.6.4" From 219ac6de30286086d880566c143d9d8c17baeb32 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 08:33:15 +0700 Subject: [PATCH 359/411] chore(PurgeCommand): do better formatting for the purge amount --- lang/en.json | 4 ++-- lang/es.json | 2 +- lang/id.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/en.json b/lang/en.json index 6c8217a5f..aa32e1105 100644 --- a/lang/en.json +++ b/lang/en.json @@ -115,7 +115,7 @@ "usage": "{prefix}mute <@mention | id> [reason]", "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", - "cantMuteOwner": "You can't mute the server owner!", + "cantMuteOwner": "You can't mute the server owner.", "noRole": "Mute role hasn't been set. Please set it with `{prefix}setmute`.", "alreadyMuted": "That member is already **`MUTED`**", "userMuted": "You have been **`MUTED`** on **{guildName}**", @@ -131,7 +131,7 @@ "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", "invalidAmount": "Please specify a valid number of messages to delete.", "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", - "purgeSuccess": "{amount, plural, one {**1** message} other {**#** messages}} have been **`PURGED`**" + "purgeSuccess": "{amount, plural, one {**`1`** message} other {**`#`** messages}} have been **`PURGED`**" }, "setmute": { "description": "Set the mute role", diff --git a/lang/es.json b/lang/es.json index 2ee1b9981..b7e7bf4e1 100644 --- a/lang/es.json +++ b/lang/es.json @@ -130,7 +130,7 @@ "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", - "purgeSuccess": "**{amount}** mensaje(s) han sido **`BORRADOS`**" + "purgeSuccess": "**`{amount}`** mensaje(s) han sido **`BORRADOS`**" }, "unban": { "description": "Desbanea a alguien del servidor", diff --git a/lang/id.json b/lang/id.json index 10be9cf9f..45e36a7d7 100644 --- a/lang/id.json +++ b/lang/id.json @@ -90,7 +90,7 @@ "usage": "{prefix}mute <@mention | id> [alasan]", "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", - "cantMuteOwner": "Anda tidak bisa mute owner server!", + "cantMuteOwner": "Anda tidak bisa mute owner server.", "unableToCreateMuteRole": "Tidak dapat membuat mute role", "alreadyMuted": "Member tersebut sedang di **`MUTE`**", "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", @@ -106,7 +106,7 @@ "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE MESSAGES`**.", "invalidAmount": "Mohon berikan jumlah yang benar.", "purgeFail": "Tidak dapat **`PURGE`** pesan, dikarenakan: `{message}`", - "purgeSuccess": "**{amount}** pesan telah di **`PURGED`**" + "purgeSuccess": "**`{amount}`** pesan telah di **`PURGE`**" }, "unban": { "description": "Unban seseorang dari server", From 7ee0f929b701922df6f41109b452001f0d285801 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 08:55:22 +0700 Subject: [PATCH 360/411] fix(LyricsCommand): update API url flags --- src/commands/music/LyricsCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 78eec148e..3f20a16f3 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -43,7 +43,7 @@ export class LyricsCommand extends BaseCommand { } private getLyrics(ctx: CommandContext, song: string): void { - const url = `https://api.lxndr.dev/lyrics/?song=${encodeURI(song)}&from=${encodeURI(this.client.user!.id)}`; + const url = `https://api.lxndr.dev/lyrics?song=${encodeURI(song)}&from=DiscordRawon`; this.client.request.get(url).json<LyricsAPIResult<false>>() .then(async data => { if ((data as { error: boolean }).error) { From 774cfbf72a7080301892aeb01f46d7347dc93232 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 09:04:56 +0700 Subject: [PATCH 361/411] chore(BanCommand): update promise order --- src/commands/moderation/BanCommand.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index 231d8e63f..d4c86a403 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -54,16 +54,6 @@ export class BanCommand extends BaseCommand { const reason = ctx.options?.getString("reason") ?? ( ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") ); - const ban = await ctx.guild.members.ban(user, { - reason - }).catch(err => new Error(err as string | undefined)); - if (ban instanceof Error) { - return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true) - ] - }); - } if (ctx.guild.members.cache.has(user.id)) { const dm = await user.createDM().catch(() => undefined); @@ -86,6 +76,17 @@ export class BanCommand extends BaseCommand { } } + const ban = await ctx.guild.members.ban(user, { + reason + }).catch(err => new Error(err as string | undefined)); + if (ban instanceof Error) { + return ctx.reply({ + embeds: [ + createEmbed("error", i18n.__mf("commands.moderation.ban.banFail", { message: ban.message }), true) + ] + }); + } + return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.ban.banSuccess", { user: user.tag }), true)] }); From 85e7c4e7aa640e50d91bcb5ffbf5a4955bb7b0cd Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 10:05:17 +0700 Subject: [PATCH 362/411] chore(PurgeCommand): do more accurate amount --- src/commands/moderation/PurgeCommand.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 42a5fa896..61333a28b 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -32,7 +32,8 @@ export class PurgeCommand extends BaseCommand { }); } - const purge = await (ctx.channel as TextChannel).bulkDelete(amount + 1, true) + await (ctx.context as Message).delete(); + const purge = await (ctx.channel as TextChannel).bulkDelete(amount, true) .catch(err => new Error(err as string | undefined)); if (purge instanceof Error) { return ctx.reply({ @@ -42,6 +43,6 @@ export class PurgeCommand extends BaseCommand { }); } - return ctx.reply({ embeds: [createEmbed("success", `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}`)] }); + await ctx.reply({ embeds: [createEmbed("success", `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}`)] }).then(msg => setTimeout(() => msg.delete(), 3500)); } } From 8364a1444649692f0d2eec62baff7931847afd58 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 10:22:00 +0700 Subject: [PATCH 363/411] chore(ModLogsCommand): do createEmbed emoji --- src/commands/moderation/ModLogsCommand.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts index 239ebdfcd..8290d2913 100644 --- a/src/commands/moderation/ModLogsCommand.ts +++ b/src/commands/moderation/ModLogsCommand.ts @@ -95,7 +95,7 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.moderation.modlogs.channel.success", { channel: newCh })) + createEmbed("success", i18n.__mf("commands.moderation.modlogs.channel.success", { channel: newCh }), true) ] }); }, @@ -128,7 +128,7 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__("commands.moderation.modlogs.disable")) + createEmbed("success", i18n.__("commands.moderation.modlogs.disable"), true) ] }); }, @@ -152,7 +152,7 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__("commands.moderation.modlogs.enable")) + createEmbed("success", i18n.__("commands.moderation.modlogs.enable"), true) ] }); } From 03dbbfa3349a9542dcf1710ab2b2ff626e47e103 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 10:38:30 +0700 Subject: [PATCH 364/411] chore(MuteCommand): do better createEmbed formatting --- src/commands/moderation/MuteCommand.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index aa4d714b5..5df2b7a40 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -46,7 +46,7 @@ export class MuteCommand extends BaseCommand { } if (ctx.guild.ownerId === member.id) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.cantMuteOwner"))] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.cantMuteOwner"), true)] }); } @@ -54,7 +54,7 @@ export class MuteCommand extends BaseCommand { if (!muteRole) { return ctx.reply({ embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.mute.noRole", { + createEmbed("warn", i18n.__mf("commands.moderation.mute.noRole", { prefix: this.client.config.mainPrefix })) ] @@ -62,7 +62,7 @@ export class MuteCommand extends BaseCommand { } if (member.roles.cache.has(muteRole.id)) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.mute.alreadyMuted"))] + embeds: [createEmbed("error", i18n.__("commands.moderation.mute.alreadyMuted"), true)] }); } From dacba1f94d525c678761f3313c6ee697c749f308 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 10:52:01 +0700 Subject: [PATCH 365/411] chore(UnMuteCommand): do better createEmbed formatting --- src/commands/moderation/UnMuteCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index ea2465ea3..e31cb4969 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -53,7 +53,7 @@ export class UnMuteCommand extends BaseCommand { } if (!member.roles.cache.has(muteRole.id)) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.noMuted"))] + embeds: [createEmbed("error", i18n.__("commands.moderation.unmute.noMuted"), true)] }); } From c0a30f1d75a2cedea11015a74ef95e1069116cba Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 10:58:12 +0700 Subject: [PATCH 366/411] chore(UnBanCommand): do better createEmbed formatting --- src/commands/moderation/UnBanCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index 1476be9b1..92f4542f5 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -46,7 +46,7 @@ export class UnBanCommand extends BaseCommand { } if (!resolved) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.unban.alreadyUnban"))] + embeds: [createEmbed("error", i18n.__("commands.moderation.unban.alreadyUnban"), true)] }); } From a8798ec4b394c7ce98ce956d8b467f6e8502313e Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:23:21 +0700 Subject: [PATCH 367/411] chore(DJCommand): do better createEmbed formatting and string --- lang/en.json | 2 +- src/commands/music/DJCommand.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/en.json b/lang/en.json index aa32e1105..3b5573347 100644 --- a/lang/en.json +++ b/lang/en.json @@ -187,7 +187,7 @@ "invalid": "Invalid role.", "success": "DJ role has been set to <@&{role}>" }, - "embedTitle": "DJ", + "embedTitle": "DJ feature", "newRoleText": "new role", "changeText": "DJ feature has been **`{new}`**", "disable": "Disabled", diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts index 05e7a14ac..1c83cc425 100644 --- a/src/commands/music/DJCommand.ts +++ b/src/commands/music/DJCommand.ts @@ -70,7 +70,7 @@ export class DJCommand extends BaseCommand { embeds: [ createEmbed("success", i18n.__mf("commands.music.dj.changeText", { new: i18n.__("commands.music.dj.disable").toUpperCase() - })) + }), true) ] }); }, @@ -96,7 +96,7 @@ export class DJCommand extends BaseCommand { embeds: [ createEmbed("success", i18n.__mf("commands.music.dj.changeText", { new: i18n.__("commands.music.dj.enable").toUpperCase() - })) + }), true) ] }); }, @@ -132,7 +132,7 @@ export class DJCommand extends BaseCommand { if (!role) { return ctx.reply({ embeds: [ - createEmbed("error", i18n.__("commands.music.dj.role.invalid")) + createEmbed("error", i18n.__("commands.music.dj.role.invalid"), true) ] }); } @@ -156,7 +156,7 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.music.dj.role.success", { role: newRole })) + createEmbed("success", i18n.__mf("commands.music.dj.role.success", { role: newRole }), true) .setFooter({ text: footer }) From 8e9470c3b04d00f9c1c84c5f66a91979e4b8f441 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:39:52 +0700 Subject: [PATCH 368/411] chore(WarnCommand): add guild icon --- src/commands/moderation/WarnCommand.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index eeeacece9..eaaa49f9e 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -56,6 +56,7 @@ export class WarnCommand extends BaseCommand { guildName: ctx.guild!.name }) ) + .setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), displayReason) .setFooter({ text: i18n.__mf("commands.moderation.warn.warnedByString", { author: ctx.author.tag }), From c6aefe4b625624925c5e0e821e946a81a2ff2c97 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:40:00 +0700 Subject: [PATCH 369/411] chore(MuteCommand): add guild icon --- src/commands/moderation/MuteCommand.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 5df2b7a40..7670340fb 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -81,6 +81,7 @@ export class MuteCommand extends BaseCommand { guildName: ctx.guild.name })) .setColor("LIGHT_GREY") + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__mf("commands.moderation.mute.mutedByString", { From 9e6f429d2b5a9ebb1310ee8e762553ca63b15815 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:40:07 +0700 Subject: [PATCH 370/411] chore(UnMuteCommand): add guild icon --- src/commands/moderation/UnMuteCommand.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index e31cb4969..a1cd0a696 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -80,6 +80,7 @@ export class UnMuteCommand extends BaseCommand { i18n.__mf("commands.moderation.unmute.userUnmuted", { guildName: ctx.guild.name })) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), From cdf8ea6384a3369ab5187f09649a577d97a1eb5e Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:41:13 +0700 Subject: [PATCH 371/411] chore(KickCommand): add guild icon --- src/commands/moderation/KickCommand.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index 3be53ac8f..73d3a0636 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -57,6 +57,7 @@ export class KickCommand extends BaseCommand { if (dm) { await dm.send({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name })) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__mf("commands.moderation.kick.kickedByString", { From 6273e3fc8e47a6e7197818ddcb7457dd792ffb8e Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:41:20 +0700 Subject: [PATCH 372/411] chore(BanCommand): add guild icon --- src/commands/moderation/BanCommand.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index d4c86a403..ff876763d 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -62,6 +62,7 @@ export class BanCommand extends BaseCommand { embeds: [createEmbed("error", i18n.__mf("commands.moderation.ban.userBanned", { guildName: ctx.guild.name })) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), reason) .setFooter({ text: i18n.__mf( From 10afdd8fca91bfc30dd08283980ba0b47b2d1139 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:45:50 +0700 Subject: [PATCH 373/411] chore(lang/en): do better string formatting for added and removed sentence --- lang/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 3b5573347..9a3d6ddaa 100644 --- a/lang/en.json +++ b/lang/en.json @@ -226,7 +226,7 @@ "usage": "{prefix}remove <positions>", "noPermission": "You don't have permission to use this command.", "noPositions": "Please specify the song positions to remove.", - "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue. ", + "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue\n\n", "songSkip": "The current song was removed, song skipped." }, "repeat": { From 239b8c8a09ee61f33de97ecfedf63f28ee405555 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:47:46 +0700 Subject: [PATCH 374/411] chore(QueueCommand): add guild icon --- src/commands/music/QueueCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index ce9db56d6..e1191cbe9 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -36,7 +36,7 @@ export class QueueCommand extends BaseCommand { return names.join("\n"); })); - const embed = createEmbed("info", pages[0]); + const embed = createEmbed("info", pages[0]).setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })!); const msg = await ctx.reply({ embeds: [embed] }); return new ButtonPagination(msg, { From 31ce8ac14f93465e770788008e8ad11e7e63f46a Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Tue, 24 May 2022 22:55:30 +0700 Subject: [PATCH 375/411] chore(RepeatCommand): fix unnecessary `newMode` --- src/commands/music/RepeatCommand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index df0e01510..3c780212d 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -82,7 +82,7 @@ export class RepeatCommand extends BaseCommand { embeds: [ createEmbed("success", `${mode[ ctx.guild!.queue!.loopMode - ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { + ].emoji} **|** ${i18n.__mf("commands.music.repeat.newMode", { mode: `\`${ctx.guild!.queue!.loopMode}\`` })}`) ] From 8f3ee2d792add0cbd91d9fdadd92439a4398209d Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 25 May 2022 20:51:30 +0900 Subject: [PATCH 376/411] feat(UnMuteCommand): change no-role warning --- src/commands/moderation/UnMuteCommand.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index a1cd0a696..0a406c053 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -45,10 +45,15 @@ export class UnMuteCommand extends BaseCommand { }); } - const muteRole = await this.client.utils.fetchMuteRole(ctx.guild).catch(() => null); + const muteRole = await this.client.utils.fetchMuteRole(ctx.guild); if (!muteRole) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__("commands.moderation.unmute.unableToCreateMuteRole"))] + embeds: [createEmbed( + "warn", + i18n.__mf("commands.moderation.mute.noRole", { + prefix: this.client.config.mainPrefix + }) + )] }); } if (!member.roles.cache.has(muteRole.id)) { From e79dd3b627ef3a583116cac5c177c777175de504 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 25 May 2022 20:54:12 +0900 Subject: [PATCH 377/411] chore(lang/en): synchronize with change in unmute command --- lang/en.json | 1 - 1 file changed, 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 9a3d6ddaa..908d0e223 100644 --- a/lang/en.json +++ b/lang/en.json @@ -154,7 +154,6 @@ "slashMemberDescription": "Who do you like to unmute?", "slashReasonDescription": "Unmute reason", "usage": "{prefix}unmute <@mention | id> [reason]", - "unableToCreateMuteRole": "Unable to create mute role", "noMuted": "That member is not **`MUTED`**", "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**", "unmutedByString": "Un-muted by: {author}", From 954a364d3ac39b44fcdbbd29f682275ab51be776 Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 25 May 2022 21:03:12 +0900 Subject: [PATCH 378/411] feat(DJCommand): use separate string instead for status change --- src/commands/music/DJCommand.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts index 1c83cc425..a2f6e76d4 100644 --- a/src/commands/music/DJCommand.ts +++ b/src/commands/music/DJCommand.ts @@ -68,9 +68,7 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.music.dj.changeText", { - new: i18n.__("commands.music.dj.disable").toUpperCase() - }), true) + createEmbed("success", i18n.__("commands.music.dj.disableText"), true) ] }); }, @@ -94,9 +92,7 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.music.dj.changeText", { - new: i18n.__("commands.music.dj.enable").toUpperCase() - }), true) + createEmbed("success", i18n.__("commands.music.dj.enableText"), true) ] }); }, From a3b8c6241eb02ae41802fe231d77fc6eafbc4d7f Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 25 May 2022 21:06:15 +0900 Subject: [PATCH 379/411] chore(lang/en): synchronize with changes in dj command --- lang/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 908d0e223..b75d70f82 100644 --- a/lang/en.json +++ b/lang/en.json @@ -188,7 +188,8 @@ }, "embedTitle": "DJ feature", "newRoleText": "new role", - "changeText": "DJ feature has been **`{new}`**", + "disableText": "DJ feature has been **`DISABLED`**", + "enableText": "DJ feature has been **`ENABLED`**", "disable": "Disabled", "enable": "Enabled" }, From e4ca6ff49cb359aca71c54d212710dca3b3f95da Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Wed, 25 May 2022 21:47:13 +0900 Subject: [PATCH 380/411] chore(lang/id): synchronize with EN localization --- lang/id.json | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/lang/id.json b/lang/id.json index 45e36a7d7..f66673083 100644 --- a/lang/id.json +++ b/lang/id.json @@ -70,6 +70,13 @@ "banFail": "Tidak dapat **`BAN`** member, dikarenakan: `{message}`", "banSuccess": "**{user}** telah di **`BAN`** dari server ini." }, + "infractions": { + "description": "Menampilkan pelanggaran seorang member", + "slashMemberDescription": "Siapa yang ingin anda lihat?", + "usage": "{prefix}infractions <@mention | id>", + "embedAuthorText": "{user} - Pelanggaran", + "noInfractions": "Tidak ada pelanggaran." + }, "kick": { "description": "Kick seseorang dari server", "slashMemberDescription": "Siapa yang ingin anda kick?", @@ -83,6 +90,24 @@ "kickFail": "Tidak dapat **`KICK`** member, dikarenakan: `{message}`", "kickSuccess": "**{user}** telah di **`KICK`** dari server ini." }, + "modlogs": { + "description": "Mengubah setelah fitur moderation logs", + "slashChannelDescription": "Lihat atau ubah channel moderation logs", + "slashChannelNewChannelOption": "Channel baru untuk moderation logs", + "slashEnableDescription": "Menyalakan fitur moderation logs", + "slashDisableDescription": "Mematikan fitur moderation logs", + "usage": "modlogs", + "channel": { + "current": "Channel moderation logs saat ini: <#{channel}>", + "noChannel": "Channel moderation logs belum ditentukan.", + "invalid": "Channel tidak valid. Channel harus berupa text channel.", + "success": "Channel moderation logs telah diubah menjadi <#{channel}>." + }, + "embedTitle": "Moderation Logs", + "newChannelText": "channel baru", + "disable": "Fitur moderation logs telah di **`MATIKAN`**.", + "enable": "Fitur moderation logs telah di **`NYALAKAN`**." + }, "mute": { "description": "Mute seseorang di server", "slashMemberDescription": "Siapa yang ingin anda mute?", @@ -91,7 +116,7 @@ "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", "cantMuteOwner": "Anda tidak bisa mute owner server.", - "unableToCreateMuteRole": "Tidak dapat membuat mute role", + "noRole": "Role untuk mute belum diatur. Silahkan atur dengan perintah `{prefix}muterole`.", "alreadyMuted": "Member tersebut sedang di **`MUTE`**", "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", "mutedByString": "Di mute oleh: {author}", @@ -108,6 +133,13 @@ "purgeFail": "Tidak dapat **`PURGE`** pesan, dikarenakan: `{message}`", "purgeSuccess": "**`{amount}`** pesan telah di **`PURGE`**" }, + "setmute": { + "description": "Mengatur role mute", + "slashRoleDescription": "Role yang akan digunakan untuk mute", + "usage": "{prefix}setmute <role>", + "invalidRole": "Role tidak valid.", + "success": "Role mute telah diubah menjadi <@&{role}>" + }, "unban": { "description": "Unban seseorang dari server", "slashMemberDescription": "Siapa yang ingin anda un-ban?", @@ -142,6 +174,25 @@ }, "music": { "categoryName": "MUSIK", + "dj": { + "description": "Mengubah pengaturan fitur DJ", + "slashRoleDescription": "Lihat atau ubah role DJ", + "slashRoleNewRoleOption": "Role baru untuk DJ", + "slashEnableDescription": "Menyalakan fitur DJ", + "slashDisableDescription": "Mematikan fitur DJ", + "role": { + "current": "Role DJ saat ini: <@&{role}>", + "noRole": "Role DJ belum ditentukan.", + "invalid": "Role tidak valid.", + "success": "Role DJ telah diubah menjadi <@&{role}>" + }, + "embedTitle": "Fitur DJ", + "newRoleText": "role baru", + "disableText": "Fitur DJ telah di **`MATIKAN`**", + "enableText": "Fitur DJ telah di **`NYALAKAN`**", + "disable": "Disabled", + "enable": "Enabled" + }, "lyrics": { "description": "Menampilkan lirik lagu", "slashDescription": "Judul lagu untuk dicari", @@ -169,12 +220,23 @@ "queue": { "description": "Menunjukkan daftar antrian" }, + "remove": { + "description": "Hapus lagu dari antrian", + "slashPositionsDescription": "Posisi lagu yang ingin dihapus (dipisahkan dengan koma atau spasi)", + "usage": "{prefix}remove <posisi>", + "noPermission": "Anda tidak memiliki izin untuk menggunakan command ini.", + "noPositions": "Mohon berikan posisi lagu yang ingin dihapus.", + "songsRemoved": "{removed} lagu dihapus dari antrian\n\n", + "songSkip": "Lagu yang sedang dimainkan ikut terhapus, melewatkan lagu." + }, "repeat": { "description": "Mengulang lagu yang sedang dimainkan atau setelahnya", "slashQueue": "Mengatur mode pengulangan ke **`QUEUE`**", "slashSong": "Mengatur mode pengulangan ke **`SONG`**", "slashDisable": "Mematikan mode pengulangan", + "usage": "{prefix}repeat <{opsi}>", "actualMode": "Mode pengulangan: **`{mode}`**", + "footer": "Untuk mengubah mode, lihat {prefix}help repeat", "newMode": "Mode pengulangan telah diatur ke **`{mode}`**" }, "resume": { @@ -205,7 +267,6 @@ }, "skip": { "description": "Lewatkan lagu", - "voteMessage": "{actual}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", "voteResultMessage": "{length}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", "skipMessage": "**{song}** dilewatkan" }, @@ -276,6 +337,9 @@ "createMessage": "Hai {author}, prefix-ku adalah **`{prefix}`**", "voiceStateUpdate": { "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", + "reconfigureConnection": "Dipindahkan ke voice channel dengan region yang berbeda. Melakukan konfigurasi koneksi...", + "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", + "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus.", "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", "unableJoinStageMessage": "Tidak dapat bergabung sebagai Speaker, antrian telah dihapus.", "joinStageMessage": "Berhasil bergabung ke stage channel sebagai Speaker.", From fd97305fd2149549b4e280ea0791e940cb16dea0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 May 2022 16:18:44 +0000 Subject: [PATCH 381/411] fix(deps): update all non-major dependencies (#941) * fix(deps): update all non-major dependencies * chore(deps): update lockfile Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: mzrtamp <mozartrafikt@gmail.com> --- package-lock.json | 236 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 120 insertions(+), 120 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7367ec66b..20d8adad2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.189", + "@swc/core": "1.2.192", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -32,7 +32,7 @@ "@typescript-eslint/parser": "5.26.0", "eslint": "8.16.0", "rimraf": "^3.0.2", - "typescript": "4.6.4" + "typescript": "4.7.2" }, "engines": { "node": ">=16.6.0", @@ -278,9 +278,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.189.tgz", - "integrity": "sha512-S5cKX4ECMSfW78DLFgnlilJZgjrFRYwPslrrwpLl3gpwh+Qo72/Mhn71u7G/5xXW+T/xW5GwPccHfCk+k72uUg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.192.tgz", + "integrity": "sha512-qQPt1KLeuopZ6J50MTyXkaxkMpaXbG8IHKqMhPwhGD6oarOkVjpILgMfD5esWr9v8gb9yDyOrRrfbDSWdGxDNw==", "bin": { "swcx": "run_swcx.js" }, @@ -292,25 +292,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.189", - "@swc/core-android-arm64": "1.2.189", - "@swc/core-darwin-arm64": "1.2.189", - "@swc/core-darwin-x64": "1.2.189", - "@swc/core-freebsd-x64": "1.2.189", - "@swc/core-linux-arm-gnueabihf": "1.2.189", - "@swc/core-linux-arm64-gnu": "1.2.189", - "@swc/core-linux-arm64-musl": "1.2.189", - "@swc/core-linux-x64-gnu": "1.2.189", - "@swc/core-linux-x64-musl": "1.2.189", - "@swc/core-win32-arm64-msvc": "1.2.189", - "@swc/core-win32-ia32-msvc": "1.2.189", - "@swc/core-win32-x64-msvc": "1.2.189" + "@swc/core-android-arm-eabi": "1.2.192", + "@swc/core-android-arm64": "1.2.192", + "@swc/core-darwin-arm64": "1.2.192", + "@swc/core-darwin-x64": "1.2.192", + "@swc/core-freebsd-x64": "1.2.192", + "@swc/core-linux-arm-gnueabihf": "1.2.192", + "@swc/core-linux-arm64-gnu": "1.2.192", + "@swc/core-linux-arm64-musl": "1.2.192", + "@swc/core-linux-x64-gnu": "1.2.192", + "@swc/core-linux-x64-musl": "1.2.192", + "@swc/core-win32-arm64-msvc": "1.2.192", + "@swc/core-win32-ia32-msvc": "1.2.192", + "@swc/core-win32-x64-msvc": "1.2.192" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.189.tgz", - "integrity": "sha512-0kN3Le6QzFFz+Lc6a/tf/RkJXubWwWaHxF4c0bVm4AKIFf4nRlUCEqEkjdVaZvL92rpBMHaEEBuIIz3T8DqTTQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.192.tgz", + "integrity": "sha512-OYbmJGB9Jp2zZ/GXALTdyWSwfjfC3g/NiZLBEG/4btVA9xU4hy4kA3tiWP1pmqF29VM1a7IHtzxwMXEBwXYX9w==", "cpu": [ "arm" ], @@ -323,9 +323,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.189.tgz", - "integrity": "sha512-smsb+YkDw2OKwg66Z63E/G4NlFApDbsiOPmZXFZbtZbNBD9v+wnk6WVA//XR1bdUI9VbzNKlMPKJxQTE685QDw==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.192.tgz", + "integrity": "sha512-0/0KuxrCK+I5VB8lg/KHijR3bSeM3f+s5KlNR0uE/2Hf30gnjkBfWlokeFj2e5RhjQlCmLIAXmVDVvXU6uoh4w==", "cpu": [ "arm64" ], @@ -338,9 +338,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.189.tgz", - "integrity": "sha512-OGjZRkTulKirJMLYbW9etb59lA9ueDXVwYRVD9SrNh8tRMTf0Nq+SUT/C3LVhBBGC4KSdWOzBAYbDTTdsnY++Q==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.192.tgz", + "integrity": "sha512-dhgeWV9qgsTJKURYqMWjZRZVX41FPkOdrHXPJqm1coayphCgfYvIffmZYh0bfPHBfzHLZ/eyvhNXdgXlIJtNqQ==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.189.tgz", - "integrity": "sha512-BEcxnBHx51514Voe2dn/y1y5H9VNyw7Zpp9+mPekZqx5o/onPD5wZ1ZfAsPrA4UlvM3v16u6ITE/cLawJ/GdAQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.192.tgz", + "integrity": "sha512-oSXeKRpwlct/PA4GmNZ1dzWUFBBv24eCt303IHOjJMyVOul+8E0Oa7sBxSwra7mvPljKEM6g06EIW+i6NzCvJQ==", "cpu": [ "x64" ], @@ -368,9 +368,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.189.tgz", - "integrity": "sha512-B6g2NWeh2iw6WPOaM19Uj3VE4se6alT265kWibLUshjcofRfnYT1lNhhkrF1D0EVnpC8I96I/xXNQo4Am9z4zQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.192.tgz", + "integrity": "sha512-DDEUlXpyNhcslbis2viAUdZjDd9FGSKYszZCeqi/8aHZjiJYjj5EPCUJw3h0mtK0eXLFjeOaD2qfjkuZlRauig==", "cpu": [ "x64" ], @@ -383,9 +383,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.189.tgz", - "integrity": "sha512-6WhPG9pyN5AahQTVQk8MoN1I9Z/Ytfqizuie1wV7mW8FMNmMkiJvBekKtE6ftxu80Hqa34r86WfEwmJKm5MqYw==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.192.tgz", + "integrity": "sha512-KcwljdxT2ZBe3zy1H+1BBWk9cR6AyL9qi8/h6X78nFwiJoktk25AMLAhUSusn9VghStveWZepnaYU9kWG62x0Q==", "cpu": [ "arm" ], @@ -398,9 +398,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.189.tgz", - "integrity": "sha512-frJTGnxsDe7h2d7BtnBivOdOJTtabkQIIZmHd4JHqafcoekI6teyveIax17axLyimvWl278yTo3hf7ePagD/eg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.192.tgz", + "integrity": "sha512-0VVFoSWNvDOIN05QsONpSbfa+NzevICc+eFsxdjqD1qRGMWLGtzTRXfdfJWvQ3qp2uSJThpU51FyIrtN59fRPQ==", "cpu": [ "arm64" ], @@ -413,9 +413,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.189.tgz", - "integrity": "sha512-27K38LoZpME5lojDJIUNo7zdTDwAKLm0BMQ7HXWcYOyiDAekhSidI+SrBWxCfLzfuClhFu6/VE3E7j32VFJsiA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.192.tgz", + "integrity": "sha512-7pK5SaiB+NHHMNU/aQQzhfi1JqAxCKh0MSiSFmWtojGUAP0WYWEXGxXuw7y5zkxb4uA7EAFII0WOmmfvgM4Vvw==", "cpu": [ "arm64" ], @@ -428,9 +428,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.189.tgz", - "integrity": "sha512-Ha5oJKOyQm9w7+e+WdRm4ypijzEmglWZGtgBR6vV6ViqqHcTBAU4nG87ex7y7AS9p+Cbc6EOSR9X1qIB8KxtbA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.192.tgz", + "integrity": "sha512-pwt2yYy8Ox1PqXNu4egYoDLi92gF+fIo3vzfyuPZo82ie/zG+7hBb/FJeoLcchih9vq+qnTEtrC8aWNjxkQOcw==", "cpu": [ "x64" ], @@ -443,9 +443,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.189.tgz", - "integrity": "sha512-/p5yXa9HEzpVEuE4ivkW1IvwyYu6fT+L2OvVEs5oXIba80F0Wjy7InWqaa83gwrdMH+bXV6loG8LzZUZu/lpjA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.192.tgz", + "integrity": "sha512-IXCsH7xdXLASIuHJXCSavHYU2X2O5+dmtG14bKsI2i3PTqdSFaRn7WTO7C2PlLeGFxC36V967BW0tCipE+OL0A==", "cpu": [ "x64" ], @@ -458,9 +458,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.189.tgz", - "integrity": "sha512-o/1ueM6/sifNjYnO6NMEXB895spVfJs5oQIPxQG9vJ/4zWLw8YmAx+u1xJY+XGyK6gnroHt7yPiS87qWdbeF6w==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.192.tgz", + "integrity": "sha512-TSPsjvlfCz5DmTc4KZvp6KkH9xi+Ir1Y8hlISzqARl3hqI9Lv7HAoXvjkO9yMfkRAEpzwPQmeH2ZUtl0oOzeYA==", "cpu": [ "arm64" ], @@ -473,9 +473,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.189.tgz", - "integrity": "sha512-YDwRkzykaf+dw5Z7u189cC/Tttkn2NVV84hrGL3LbVuh7wT5PaDhZs4Yz4unZQSlPV12olmZWgNr/i27h5wlpg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.192.tgz", + "integrity": "sha512-yIH68QAY/x3ekCnIwHD4f4mXiUD3KIPdDtSmrMIbwV6NgdvcadY6BT861/NfXzCiG0+o1Jkf5790BEhiWnA4GQ==", "cpu": [ "ia32" ], @@ -488,9 +488,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.189.tgz", - "integrity": "sha512-Nge8Z/ZkAp5p5No50yBDpBG7+ZYaVWGSuwtPj6OJe7orzvDCEm9GgcVE6J9GEjbclSWlCH8B8lUe17GaKRZHbg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.192.tgz", + "integrity": "sha512-x+blRKKYgI92vHJ7twIOKcvWifAyj5AeH0G6tCbUL2qXl2TjW1gDIyYagowH/9uiIueFLPwIc/X/1BP6HxpPLg==", "cpu": [ "x64" ], @@ -2497,9 +2497,9 @@ } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -2768,101 +2768,101 @@ } }, "@swc/core": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.189.tgz", - "integrity": "sha512-S5cKX4ECMSfW78DLFgnlilJZgjrFRYwPslrrwpLl3gpwh+Qo72/Mhn71u7G/5xXW+T/xW5GwPccHfCk+k72uUg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.192.tgz", + "integrity": "sha512-qQPt1KLeuopZ6J50MTyXkaxkMpaXbG8IHKqMhPwhGD6oarOkVjpILgMfD5esWr9v8gb9yDyOrRrfbDSWdGxDNw==", "requires": { - "@swc/core-android-arm-eabi": "1.2.189", - "@swc/core-android-arm64": "1.2.189", - "@swc/core-darwin-arm64": "1.2.189", - "@swc/core-darwin-x64": "1.2.189", - "@swc/core-freebsd-x64": "1.2.189", - "@swc/core-linux-arm-gnueabihf": "1.2.189", - "@swc/core-linux-arm64-gnu": "1.2.189", - "@swc/core-linux-arm64-musl": "1.2.189", - "@swc/core-linux-x64-gnu": "1.2.189", - "@swc/core-linux-x64-musl": "1.2.189", - "@swc/core-win32-arm64-msvc": "1.2.189", - "@swc/core-win32-ia32-msvc": "1.2.189", - "@swc/core-win32-x64-msvc": "1.2.189" + "@swc/core-android-arm-eabi": "1.2.192", + "@swc/core-android-arm64": "1.2.192", + "@swc/core-darwin-arm64": "1.2.192", + "@swc/core-darwin-x64": "1.2.192", + "@swc/core-freebsd-x64": "1.2.192", + "@swc/core-linux-arm-gnueabihf": "1.2.192", + "@swc/core-linux-arm64-gnu": "1.2.192", + "@swc/core-linux-arm64-musl": "1.2.192", + "@swc/core-linux-x64-gnu": "1.2.192", + "@swc/core-linux-x64-musl": "1.2.192", + "@swc/core-win32-arm64-msvc": "1.2.192", + "@swc/core-win32-ia32-msvc": "1.2.192", + "@swc/core-win32-x64-msvc": "1.2.192" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.189.tgz", - "integrity": "sha512-0kN3Le6QzFFz+Lc6a/tf/RkJXubWwWaHxF4c0bVm4AKIFf4nRlUCEqEkjdVaZvL92rpBMHaEEBuIIz3T8DqTTQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.192.tgz", + "integrity": "sha512-OYbmJGB9Jp2zZ/GXALTdyWSwfjfC3g/NiZLBEG/4btVA9xU4hy4kA3tiWP1pmqF29VM1a7IHtzxwMXEBwXYX9w==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.189.tgz", - "integrity": "sha512-smsb+YkDw2OKwg66Z63E/G4NlFApDbsiOPmZXFZbtZbNBD9v+wnk6WVA//XR1bdUI9VbzNKlMPKJxQTE685QDw==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.192.tgz", + "integrity": "sha512-0/0KuxrCK+I5VB8lg/KHijR3bSeM3f+s5KlNR0uE/2Hf30gnjkBfWlokeFj2e5RhjQlCmLIAXmVDVvXU6uoh4w==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.189.tgz", - "integrity": "sha512-OGjZRkTulKirJMLYbW9etb59lA9ueDXVwYRVD9SrNh8tRMTf0Nq+SUT/C3LVhBBGC4KSdWOzBAYbDTTdsnY++Q==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.192.tgz", + "integrity": "sha512-dhgeWV9qgsTJKURYqMWjZRZVX41FPkOdrHXPJqm1coayphCgfYvIffmZYh0bfPHBfzHLZ/eyvhNXdgXlIJtNqQ==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.189.tgz", - "integrity": "sha512-BEcxnBHx51514Voe2dn/y1y5H9VNyw7Zpp9+mPekZqx5o/onPD5wZ1ZfAsPrA4UlvM3v16u6ITE/cLawJ/GdAQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.192.tgz", + "integrity": "sha512-oSXeKRpwlct/PA4GmNZ1dzWUFBBv24eCt303IHOjJMyVOul+8E0Oa7sBxSwra7mvPljKEM6g06EIW+i6NzCvJQ==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.189.tgz", - "integrity": "sha512-B6g2NWeh2iw6WPOaM19Uj3VE4se6alT265kWibLUshjcofRfnYT1lNhhkrF1D0EVnpC8I96I/xXNQo4Am9z4zQ==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.192.tgz", + "integrity": "sha512-DDEUlXpyNhcslbis2viAUdZjDd9FGSKYszZCeqi/8aHZjiJYjj5EPCUJw3h0mtK0eXLFjeOaD2qfjkuZlRauig==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.189.tgz", - "integrity": "sha512-6WhPG9pyN5AahQTVQk8MoN1I9Z/Ytfqizuie1wV7mW8FMNmMkiJvBekKtE6ftxu80Hqa34r86WfEwmJKm5MqYw==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.192.tgz", + "integrity": "sha512-KcwljdxT2ZBe3zy1H+1BBWk9cR6AyL9qi8/h6X78nFwiJoktk25AMLAhUSusn9VghStveWZepnaYU9kWG62x0Q==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.189.tgz", - "integrity": "sha512-frJTGnxsDe7h2d7BtnBivOdOJTtabkQIIZmHd4JHqafcoekI6teyveIax17axLyimvWl278yTo3hf7ePagD/eg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.192.tgz", + "integrity": "sha512-0VVFoSWNvDOIN05QsONpSbfa+NzevICc+eFsxdjqD1qRGMWLGtzTRXfdfJWvQ3qp2uSJThpU51FyIrtN59fRPQ==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.189.tgz", - "integrity": "sha512-27K38LoZpME5lojDJIUNo7zdTDwAKLm0BMQ7HXWcYOyiDAekhSidI+SrBWxCfLzfuClhFu6/VE3E7j32VFJsiA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.192.tgz", + "integrity": "sha512-7pK5SaiB+NHHMNU/aQQzhfi1JqAxCKh0MSiSFmWtojGUAP0WYWEXGxXuw7y5zkxb4uA7EAFII0WOmmfvgM4Vvw==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.189.tgz", - "integrity": "sha512-Ha5oJKOyQm9w7+e+WdRm4ypijzEmglWZGtgBR6vV6ViqqHcTBAU4nG87ex7y7AS9p+Cbc6EOSR9X1qIB8KxtbA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.192.tgz", + "integrity": "sha512-pwt2yYy8Ox1PqXNu4egYoDLi92gF+fIo3vzfyuPZo82ie/zG+7hBb/FJeoLcchih9vq+qnTEtrC8aWNjxkQOcw==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.189.tgz", - "integrity": "sha512-/p5yXa9HEzpVEuE4ivkW1IvwyYu6fT+L2OvVEs5oXIba80F0Wjy7InWqaa83gwrdMH+bXV6loG8LzZUZu/lpjA==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.192.tgz", + "integrity": "sha512-IXCsH7xdXLASIuHJXCSavHYU2X2O5+dmtG14bKsI2i3PTqdSFaRn7WTO7C2PlLeGFxC36V967BW0tCipE+OL0A==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.189.tgz", - "integrity": "sha512-o/1ueM6/sifNjYnO6NMEXB895spVfJs5oQIPxQG9vJ/4zWLw8YmAx+u1xJY+XGyK6gnroHt7yPiS87qWdbeF6w==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.192.tgz", + "integrity": "sha512-TSPsjvlfCz5DmTc4KZvp6KkH9xi+Ir1Y8hlISzqARl3hqI9Lv7HAoXvjkO9yMfkRAEpzwPQmeH2ZUtl0oOzeYA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.189.tgz", - "integrity": "sha512-YDwRkzykaf+dw5Z7u189cC/Tttkn2NVV84hrGL3LbVuh7wT5PaDhZs4Yz4unZQSlPV12olmZWgNr/i27h5wlpg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.192.tgz", + "integrity": "sha512-yIH68QAY/x3ekCnIwHD4f4mXiUD3KIPdDtSmrMIbwV6NgdvcadY6BT861/NfXzCiG0+o1Jkf5790BEhiWnA4GQ==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.189", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.189.tgz", - "integrity": "sha512-Nge8Z/ZkAp5p5No50yBDpBG7+ZYaVWGSuwtPj6OJe7orzvDCEm9GgcVE6J9GEjbclSWlCH8B8lUe17GaKRZHbg==", + "version": "1.2.192", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.192.tgz", + "integrity": "sha512-x+blRKKYgI92vHJ7twIOKcvWifAyj5AeH0G6tCbUL2qXl2TjW1gDIyYagowH/9uiIueFLPwIc/X/1BP6HxpPLg==", "optional": true }, "@szmarczak/http-timer": { @@ -4298,9 +4298,9 @@ "dev": true }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true }, "uri-js": { diff --git a/package.json b/package.json index f31ddb44c..e6166e216 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.189", + "@swc/core": "1.2.192", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", @@ -62,7 +62,7 @@ "@typescript-eslint/parser": "5.26.0", "eslint": "8.16.0", "rimraf": "^3.0.2", - "typescript": "4.6.4" + "typescript": "4.7.2" }, "optionalDependencies": { "play-dl": "^1.9.4" From f77de6bede24552b9d672f26ca2dd14268c220d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 May 2022 11:07:26 +0700 Subject: [PATCH 382/411] chore(deps): update all non-major dependencies (#942) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package-lock.json | 258 +++++++++++++++++++++++----------------------- package.json | 6 +- 2 files changed, 132 insertions(+), 132 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20d8adad2..97b3baf94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,11 +11,11 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.192", + "@swc/core": "1.2.194", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", - "got": "12.0.4", + "got": "12.1.0", "i18n": "0.15.0", "opusscript": "0.0.8", "prism-media": "1.3.2", @@ -25,7 +25,7 @@ "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.2", + "@clytage-pkg/eslint-config": "1.1.0", "@types/i18n": "0.13.2", "@types/node": "17.0.33", "@typescript-eslint/eslint-plugin": "5.26.0", @@ -43,15 +43,15 @@ } }, "node_modules/@clytage-pkg/eslint-config": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", - "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", + "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", "dev": true, "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5.18.0", - "@typescript-eslint/parser": ">=5.18.0", - "eslint": ">=8.15.0", - "typescript": ">=3.3.1 <4.7.0" + "@typescript-eslint/eslint-plugin": ">=5.26.0", + "@typescript-eslint/parser": ">=5.26.0", + "eslint": ">=8.16.0", + "typescript": ">=3.3.1 <4.7.3" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -278,9 +278,9 @@ } }, "node_modules/@swc/core": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.192.tgz", - "integrity": "sha512-qQPt1KLeuopZ6J50MTyXkaxkMpaXbG8IHKqMhPwhGD6oarOkVjpILgMfD5esWr9v8gb9yDyOrRrfbDSWdGxDNw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", + "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", "bin": { "swcx": "run_swcx.js" }, @@ -292,25 +292,25 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.192", - "@swc/core-android-arm64": "1.2.192", - "@swc/core-darwin-arm64": "1.2.192", - "@swc/core-darwin-x64": "1.2.192", - "@swc/core-freebsd-x64": "1.2.192", - "@swc/core-linux-arm-gnueabihf": "1.2.192", - "@swc/core-linux-arm64-gnu": "1.2.192", - "@swc/core-linux-arm64-musl": "1.2.192", - "@swc/core-linux-x64-gnu": "1.2.192", - "@swc/core-linux-x64-musl": "1.2.192", - "@swc/core-win32-arm64-msvc": "1.2.192", - "@swc/core-win32-ia32-msvc": "1.2.192", - "@swc/core-win32-x64-msvc": "1.2.192" + "@swc/core-android-arm-eabi": "1.2.194", + "@swc/core-android-arm64": "1.2.194", + "@swc/core-darwin-arm64": "1.2.194", + "@swc/core-darwin-x64": "1.2.194", + "@swc/core-freebsd-x64": "1.2.194", + "@swc/core-linux-arm-gnueabihf": "1.2.194", + "@swc/core-linux-arm64-gnu": "1.2.194", + "@swc/core-linux-arm64-musl": "1.2.194", + "@swc/core-linux-x64-gnu": "1.2.194", + "@swc/core-linux-x64-musl": "1.2.194", + "@swc/core-win32-arm64-msvc": "1.2.194", + "@swc/core-win32-ia32-msvc": "1.2.194", + "@swc/core-win32-x64-msvc": "1.2.194" } }, "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.192.tgz", - "integrity": "sha512-OYbmJGB9Jp2zZ/GXALTdyWSwfjfC3g/NiZLBEG/4btVA9xU4hy4kA3tiWP1pmqF29VM1a7IHtzxwMXEBwXYX9w==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", + "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", "cpu": [ "arm" ], @@ -323,9 +323,9 @@ } }, "node_modules/@swc/core-android-arm64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.192.tgz", - "integrity": "sha512-0/0KuxrCK+I5VB8lg/KHijR3bSeM3f+s5KlNR0uE/2Hf30gnjkBfWlokeFj2e5RhjQlCmLIAXmVDVvXU6uoh4w==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", + "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", "cpu": [ "arm64" ], @@ -338,9 +338,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.192.tgz", - "integrity": "sha512-dhgeWV9qgsTJKURYqMWjZRZVX41FPkOdrHXPJqm1coayphCgfYvIffmZYh0bfPHBfzHLZ/eyvhNXdgXlIJtNqQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", + "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.192.tgz", - "integrity": "sha512-oSXeKRpwlct/PA4GmNZ1dzWUFBBv24eCt303IHOjJMyVOul+8E0Oa7sBxSwra7mvPljKEM6g06EIW+i6NzCvJQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", + "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", "cpu": [ "x64" ], @@ -368,9 +368,9 @@ } }, "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.192.tgz", - "integrity": "sha512-DDEUlXpyNhcslbis2viAUdZjDd9FGSKYszZCeqi/8aHZjiJYjj5EPCUJw3h0mtK0eXLFjeOaD2qfjkuZlRauig==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", + "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", "cpu": [ "x64" ], @@ -383,9 +383,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.192.tgz", - "integrity": "sha512-KcwljdxT2ZBe3zy1H+1BBWk9cR6AyL9qi8/h6X78nFwiJoktk25AMLAhUSusn9VghStveWZepnaYU9kWG62x0Q==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", + "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", "cpu": [ "arm" ], @@ -398,9 +398,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.192.tgz", - "integrity": "sha512-0VVFoSWNvDOIN05QsONpSbfa+NzevICc+eFsxdjqD1qRGMWLGtzTRXfdfJWvQ3qp2uSJThpU51FyIrtN59fRPQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", + "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", "cpu": [ "arm64" ], @@ -413,9 +413,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.192.tgz", - "integrity": "sha512-7pK5SaiB+NHHMNU/aQQzhfi1JqAxCKh0MSiSFmWtojGUAP0WYWEXGxXuw7y5zkxb4uA7EAFII0WOmmfvgM4Vvw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", + "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", "cpu": [ "arm64" ], @@ -428,9 +428,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.192.tgz", - "integrity": "sha512-pwt2yYy8Ox1PqXNu4egYoDLi92gF+fIo3vzfyuPZo82ie/zG+7hBb/FJeoLcchih9vq+qnTEtrC8aWNjxkQOcw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", + "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", "cpu": [ "x64" ], @@ -443,9 +443,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.192.tgz", - "integrity": "sha512-IXCsH7xdXLASIuHJXCSavHYU2X2O5+dmtG14bKsI2i3PTqdSFaRn7WTO7C2PlLeGFxC36V967BW0tCipE+OL0A==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", + "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", "cpu": [ "x64" ], @@ -458,9 +458,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.192.tgz", - "integrity": "sha512-TSPsjvlfCz5DmTc4KZvp6KkH9xi+Ir1Y8hlISzqARl3hqI9Lv7HAoXvjkO9yMfkRAEpzwPQmeH2ZUtl0oOzeYA==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", + "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", "cpu": [ "arm64" ], @@ -473,9 +473,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.192.tgz", - "integrity": "sha512-yIH68QAY/x3ekCnIwHD4f4mXiUD3KIPdDtSmrMIbwV6NgdvcadY6BT861/NfXzCiG0+o1Jkf5790BEhiWnA4GQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", + "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", "cpu": [ "ia32" ], @@ -488,9 +488,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.192.tgz", - "integrity": "sha512-x+blRKKYgI92vHJ7twIOKcvWifAyj5AeH0G6tCbUL2qXl2TjW1gDIyYagowH/9uiIueFLPwIc/X/1BP6HxpPLg==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", + "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", "cpu": [ "x64" ], @@ -1674,9 +1674,9 @@ } }, "node_modules/got": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", - "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", "dependencies": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", @@ -2601,9 +2601,9 @@ }, "dependencies": { "@clytage-pkg/eslint-config": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.0.2.tgz", - "integrity": "sha512-NkDjMjeVMjilyIMUhD/bYGVl5K65E2jS7LRpVAF+0lsGRSRf9yd0r/YeCt3ZiYHbW1J9NLzEvIWsRKNssSt00w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", + "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", "dev": true, "requires": {} }, @@ -2768,101 +2768,101 @@ } }, "@swc/core": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.192.tgz", - "integrity": "sha512-qQPt1KLeuopZ6J50MTyXkaxkMpaXbG8IHKqMhPwhGD6oarOkVjpILgMfD5esWr9v8gb9yDyOrRrfbDSWdGxDNw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", + "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", "requires": { - "@swc/core-android-arm-eabi": "1.2.192", - "@swc/core-android-arm64": "1.2.192", - "@swc/core-darwin-arm64": "1.2.192", - "@swc/core-darwin-x64": "1.2.192", - "@swc/core-freebsd-x64": "1.2.192", - "@swc/core-linux-arm-gnueabihf": "1.2.192", - "@swc/core-linux-arm64-gnu": "1.2.192", - "@swc/core-linux-arm64-musl": "1.2.192", - "@swc/core-linux-x64-gnu": "1.2.192", - "@swc/core-linux-x64-musl": "1.2.192", - "@swc/core-win32-arm64-msvc": "1.2.192", - "@swc/core-win32-ia32-msvc": "1.2.192", - "@swc/core-win32-x64-msvc": "1.2.192" + "@swc/core-android-arm-eabi": "1.2.194", + "@swc/core-android-arm64": "1.2.194", + "@swc/core-darwin-arm64": "1.2.194", + "@swc/core-darwin-x64": "1.2.194", + "@swc/core-freebsd-x64": "1.2.194", + "@swc/core-linux-arm-gnueabihf": "1.2.194", + "@swc/core-linux-arm64-gnu": "1.2.194", + "@swc/core-linux-arm64-musl": "1.2.194", + "@swc/core-linux-x64-gnu": "1.2.194", + "@swc/core-linux-x64-musl": "1.2.194", + "@swc/core-win32-arm64-msvc": "1.2.194", + "@swc/core-win32-ia32-msvc": "1.2.194", + "@swc/core-win32-x64-msvc": "1.2.194" } }, "@swc/core-android-arm-eabi": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.192.tgz", - "integrity": "sha512-OYbmJGB9Jp2zZ/GXALTdyWSwfjfC3g/NiZLBEG/4btVA9xU4hy4kA3tiWP1pmqF29VM1a7IHtzxwMXEBwXYX9w==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", + "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", "optional": true }, "@swc/core-android-arm64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.192.tgz", - "integrity": "sha512-0/0KuxrCK+I5VB8lg/KHijR3bSeM3f+s5KlNR0uE/2Hf30gnjkBfWlokeFj2e5RhjQlCmLIAXmVDVvXU6uoh4w==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", + "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", "optional": true }, "@swc/core-darwin-arm64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.192.tgz", - "integrity": "sha512-dhgeWV9qgsTJKURYqMWjZRZVX41FPkOdrHXPJqm1coayphCgfYvIffmZYh0bfPHBfzHLZ/eyvhNXdgXlIJtNqQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", + "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.192.tgz", - "integrity": "sha512-oSXeKRpwlct/PA4GmNZ1dzWUFBBv24eCt303IHOjJMyVOul+8E0Oa7sBxSwra7mvPljKEM6g06EIW+i6NzCvJQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", + "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", "optional": true }, "@swc/core-freebsd-x64": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.192.tgz", - "integrity": "sha512-DDEUlXpyNhcslbis2viAUdZjDd9FGSKYszZCeqi/8aHZjiJYjj5EPCUJw3h0mtK0eXLFjeOaD2qfjkuZlRauig==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", + "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.192.tgz", - "integrity": "sha512-KcwljdxT2ZBe3zy1H+1BBWk9cR6AyL9qi8/h6X78nFwiJoktk25AMLAhUSusn9VghStveWZepnaYU9kWG62x0Q==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", + "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.192.tgz", - "integrity": "sha512-0VVFoSWNvDOIN05QsONpSbfa+NzevICc+eFsxdjqD1qRGMWLGtzTRXfdfJWvQ3qp2uSJThpU51FyIrtN59fRPQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", + "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.192.tgz", - "integrity": "sha512-7pK5SaiB+NHHMNU/aQQzhfi1JqAxCKh0MSiSFmWtojGUAP0WYWEXGxXuw7y5zkxb4uA7EAFII0WOmmfvgM4Vvw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", + "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.192.tgz", - "integrity": "sha512-pwt2yYy8Ox1PqXNu4egYoDLi92gF+fIo3vzfyuPZo82ie/zG+7hBb/FJeoLcchih9vq+qnTEtrC8aWNjxkQOcw==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", + "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.192.tgz", - "integrity": "sha512-IXCsH7xdXLASIuHJXCSavHYU2X2O5+dmtG14bKsI2i3PTqdSFaRn7WTO7C2PlLeGFxC36V967BW0tCipE+OL0A==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", + "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.192.tgz", - "integrity": "sha512-TSPsjvlfCz5DmTc4KZvp6KkH9xi+Ir1Y8hlISzqARl3hqI9Lv7HAoXvjkO9yMfkRAEpzwPQmeH2ZUtl0oOzeYA==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", + "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.192.tgz", - "integrity": "sha512-yIH68QAY/x3ekCnIwHD4f4mXiUD3KIPdDtSmrMIbwV6NgdvcadY6BT861/NfXzCiG0+o1Jkf5790BEhiWnA4GQ==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", + "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.192", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.192.tgz", - "integrity": "sha512-x+blRKKYgI92vHJ7twIOKcvWifAyj5AeH0G6tCbUL2qXl2TjW1gDIyYagowH/9uiIueFLPwIc/X/1BP6HxpPLg==", + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", + "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", "optional": true }, "@szmarczak/http-timer": { @@ -3722,9 +3722,9 @@ } }, "got": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/got/-/got-12.0.4.tgz", - "integrity": "sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", "requires": { "@sindresorhus/is": "^4.6.0", "@szmarczak/http-timer": "^5.0.1", diff --git a/package.json b/package.json index e6166e216..7dce60f0d 100644 --- a/package.json +++ b/package.json @@ -41,11 +41,11 @@ "dependencies": { "@discordjs/voice": "0.9.0", "@swc/cli": "0.1.57", - "@swc/core": "1.2.192", + "@swc/core": "1.2.194", "date-fns": "2.28.0", "discord.js": "13.7.0", "dotenv": "16.0.1", - "got": "12.0.4", + "got": "12.1.0", "i18n": "0.15.0", "opusscript": "0.0.8", "prism-media": "1.3.2", @@ -55,7 +55,7 @@ "youtubei": "0.0.1-rc.35" }, "devDependencies": { - "@clytage-pkg/eslint-config": "1.0.2", + "@clytage-pkg/eslint-config": "1.1.0", "@types/i18n": "0.13.2", "@types/node": "17.0.33", "@typescript-eslint/eslint-plugin": "5.26.0", From f8744cc7eff1cc5510ee6d0267d4f051b1b8d588 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 11:18:26 +0700 Subject: [PATCH 383/411] chore(lang): update actual message for shuffle command --- lang/en.json | 2 +- lang/id.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index b75d70f82..4c7d5e9fe 100644 --- a/lang/en.json +++ b/lang/en.json @@ -262,7 +262,7 @@ }, "shuffle": { "description": "Set mode for shuffle feature", - "actualState": "Shuffle mode is **`{state}`**", + "actualState": "Current shuffle mode is **`{state}`**", "newState": "Shuffle mode is now set to **`{state}`**" }, "skip": { diff --git a/lang/id.json b/lang/id.json index f66673083..69d71c74c 100644 --- a/lang/id.json +++ b/lang/id.json @@ -262,7 +262,7 @@ }, "shuffle": { "description": "Acak antrian", - "actualState": "Mode acak: **`{state}`**", + "actualState": "Mode acak saat ini adalah **`{state}`**", "newState": "Mode acak telah diatur ke **`{state}`**" }, "skip": { From 80bc08b6727790520876fc5398ab4114283c7de6 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 11:24:46 +0700 Subject: [PATCH 384/411] chore(StayInQueueCommand): add emoji --- src/commands/music/StayInQueueCommand.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index 9ffbfff18..f62a3ebe4 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -47,18 +47,18 @@ export class StayInQueueCommand extends BaseCommand { if (!newState) { return ctx.reply({ - embeds: [createEmbed("info", i18n.__mf("commands.music.stayInQueue.actualState", { + embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.actualState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - }))] + })}`)] }); } ctx.guild!.queue!.stayInVC = newState === "enable"; return ctx.reply({ - embeds: [createEmbed("success", i18n.__mf("commands.music.stayInQueue.newState", { + embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.newState", { state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - }), true)] + })}`, true)] }); } } From e6d0fac5cde5ad4a08dfd50bc9a555162e851c72 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 11:28:00 +0700 Subject: [PATCH 385/411] chore(lang/en): update footer message for nowplaying command --- lang/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 4c7d5e9fe..114ffe2f6 100644 --- a/lang/en.json +++ b/lang/en.json @@ -203,7 +203,7 @@ "nowplaying": { "description": "Show the media player status", "emptyQueue": "Queue is empty", - "disableButton": "This button is no longer active and removed." + "disableButton": "Previous buttons is no longer active and removed." }, "pause": { "description": "Pause the music player", From 561b4da959336ba816f9da169ca6972cadda803c Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 11:33:13 +0700 Subject: [PATCH 386/411] chore(lang/en): add prefix for modlogs command help usage --- lang/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 114ffe2f6..4ac9b581e 100644 --- a/lang/en.json +++ b/lang/en.json @@ -96,7 +96,7 @@ "slashChannelNewChannelOption": "New channel for the moderation logs", "slashEnableDescription": "Enable the moderation logs feature", "slashDisableDescription": "Disable the moderation logs feature", - "usage": "modlogs", + "usage": "{prefix}modlogs", "channel": { "current": "Current moderation logs channel: <#{channel}>", "noChannel": "Moderation logs channel hasn't been set", From 410e3913678512cee284efa1acff8be4d51b9943 Mon Sep 17 00:00:00 2001 From: Orchit07 <orchitiadi@gmail.com> Date: Fri, 27 May 2022 11:50:17 +0700 Subject: [PATCH 387/411] fix(CommandContext): infinity thinking on select menu --- src/structures/CommandContext.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 79147fb9d..cd9f35500 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -27,17 +27,16 @@ export class CommandContext { | string | { askDeletion?: { reference: string } }, autoedit?: boolean): Promise<Message> { if (this.isInteraction()) { - if ((this.context as Interaction).isCommand() && + if (((this.context as Interaction).isCommand() || (this.context as Interaction).isSelectMenu()) && (this.context as CommandInteraction).replied && !autoedit) throw new Error("Interaction is already replied."); } - const context = this.context as CommandInteraction | Message; + const context = this.context as CommandInteraction | Message | SelectMenuInteraction; const rep = await this.send( options, this.isInteraction() - ? ( - context as Interaction).isCommand() + ? ((context as Interaction).isCommand() || (context as Interaction).isSelectMenu()) ? (context as CommandInteraction).replied || (context as CommandInteraction).deferred ? "editReply" : "reply" From b9c32e5f6e59af153bf27ec8f771d92256b5caa3 Mon Sep 17 00:00:00 2001 From: Orchit07 <orchitiadi@gmail.com> Date: Fri, 27 May 2022 11:50:42 +0700 Subject: [PATCH 388/411] chore(CommandContext): add modal interaction support --- src/structures/CommandContext.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index cd9f35500..9607f98c2 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition, no-nested-ternary */ import { MessageInteractionAction } from "../typings"; -import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageComponentInteraction, MessageMentions, MessageOptions, MessagePayload, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; +import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageComponentInteraction, MessageMentions, MessageOptions, MessagePayload, ModalSubmitFieldsResolver, ModalSubmitInteraction, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; export class CommandContext { public additionalArgs: Collection<string, any> = new Collection(); @@ -112,6 +112,10 @@ export class CommandContext { return this.context instanceof SelectMenuInteraction; } + public isModal(): boolean { + return this.context instanceof ModalSubmitInteraction; + } + public get mentions(): MessageMentions | null { return this.context instanceof Message ? this.context.mentions : null; } @@ -128,6 +132,12 @@ export class CommandContext { : null; } + public get fields(): ModalSubmitFieldsResolver | null { + return this.context instanceof ModalSubmitInteraction + ? (this.context as ModalSubmitInteraction).fields + : null; + } + public get author(): User { return this.context instanceof Interaction ? this.context.user From 137d00b95239278b40ca18ad5c3a77a72a160387 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 11:53:25 +0700 Subject: [PATCH 389/411] chore(*): use setAuthor for temporary --- src/commands/moderation/ModLogsCommand.ts | 2 +- src/commands/music/DJCommand.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts index 8290d2913..ebdfa32e1 100644 --- a/src/commands/moderation/ModLogsCommand.ts +++ b/src/commands/moderation/ModLogsCommand.ts @@ -102,7 +102,7 @@ export class ModLogsCommand extends BaseCommand { default: ctx => ctx.reply({ embeds: [ createEmbed("info") - .setTitle(i18n.__("commands.moderation.modlogs.embedTitle")) + .setAuthor(i18n.__("commands.moderation.modlogs.embedTitle")) .addField(`${this.client.config.mainPrefix}modlogs enable`, i18n.__("commands.moderation.modlogs.slashEnableDescription")) .addField(`${this.client.config.mainPrefix}modlogs disable`, i18n.__("commands.moderation.modlogs.slashDisableDescription")) .addField(`${this.client.config.mainPrefix}modlogs channel [${i18n.__("commands.moderation.modlogs.newChannelText")}]`, i18n.__("commands.moderation.modlogs.slashChannelDescription")) diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts index a2f6e76d4..6aae49de2 100644 --- a/src/commands/music/DJCommand.ts +++ b/src/commands/music/DJCommand.ts @@ -42,7 +42,7 @@ export class DJCommand extends BaseCommand { default: ctx => ctx.reply({ embeds: [ createEmbed("info") - .setTitle(i18n.__("commands.music.dj.embedTitle")) + .setAuthor(i18n.__("commands.music.dj.embedTitle")) .addField(`${this.client.config.mainPrefix}dj enable`, i18n.__("commands.music.dj.slashEnableDescription")) .addField(`${this.client.config.mainPrefix}dj disable`, i18n.__("commands.music.dj.slashDisableDescription")) .addField(`${this.client.config.mainPrefix}dj role [${i18n.__("commands.music.dj.newRoleText")}]`, i18n.__("commands.music.dj.slashRoleDescription")) From 43244d65eb8f2a9f51bcd59b327b9e17da881e27 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 12:43:51 +0700 Subject: [PATCH 390/411] chore(handleVideos): move handleVideoInitial string to title --- lang/en.json | 2 +- src/utils/handlers/general/handleVideos.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index 4ac9b581e..825bf8705 100644 --- a/lang/en.json +++ b/lang/en.json @@ -314,7 +314,7 @@ "sameVC": "You need to be in the same voice channel as mine." }, "generalHandler": { - "handleVideoInitial": "Added {length} songs to the queue\n\n", + "handleVideoInitial": "Added {length} songs to the queue", "errorJoining": "Error while joining the voice channel, because: `{message}`", "queueEnded": "Queue has ended, use **`{usage}`** to play more music.", "leftVC": "Left from the voice channel because I've been inactive for too long.", diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index c41c8eca6..48b7d1850 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -31,7 +31,7 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => { - e.setDescription(`\`\`\`\n${opening}${p}\`\`\``).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); + e.setDescription(`\`\`\`\n${p}\`\`\``).setAuthor(opening).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); }, embed, pages From 9f07efe707806167b4581393fb83ee850a5c520c Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 12:44:23 +0700 Subject: [PATCH 391/411] chore(RemoveCommand): move songSkip string to title --- lang/en.json | 4 ++-- src/commands/music/RemoveCommand.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/en.json b/lang/en.json index 825bf8705..132165b61 100644 --- a/lang/en.json +++ b/lang/en.json @@ -226,8 +226,8 @@ "usage": "{prefix}remove <positions>", "noPermission": "You don't have permission to use this command.", "noPositions": "Please specify the song positions to remove.", - "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue\n\n", - "songSkip": "The current song was removed, song skipped." + "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue", + "songSkip": "The current song was removed, song skipped.\n\n" }, "repeat": { "description": "Repeat current music or the queue", diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 3038cbad6..1bea7cbd2 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -68,18 +68,18 @@ export class RemoveCommand extends BaseCommand { const opening = `${i18n.__mf("commands.music.remove.songsRemoved", { removed: songs.length - })}${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}`; + })}`; const pages = await Promise.all(chunk(songs, 10).map(async (v, i) => { const texts = await Promise.all(v.map( - (song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown( + (song, index) => `${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown( parseHTMLElements(song.song.title) )}` )); return texts.join("\n"); })); - const getText = (page: string): string => `\`\`\`\n${opening}\n\n${page}\`\`\``; - const embed = createEmbed("info", getText(pages[0])).setFooter({ + const getText = (page: string): string => `\`\`\`\n${page}\`\`\``; + const embed = createEmbed("info", getText(pages[0])).setAuthor(opening).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: 1, total: pages.length From ae664ca52380b0bab76c972198ca804ce4222db0 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 13:10:28 +0700 Subject: [PATCH 392/411] chore(GuildBanEvent): update reason debugger --- src/events/GuildBanAddEvent.ts | 2 +- src/events/GuildBanRemoveEvent.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events/GuildBanAddEvent.ts b/src/events/GuildBanAddEvent.ts index 2e192152f..6edeafc8e 100644 --- a/src/events/GuildBanAddEvent.ts +++ b/src/events/GuildBanAddEvent.ts @@ -8,7 +8,7 @@ export class GuildBanAddEvent extends BaseEvent { this.client.debugLog.logData("info", "GUILD_BAN_ADD", [ ["User", `${ban.user.tag}(${ban.user.id})`], ["Guild", `${ban.guild.name}(${ban.guild.id})`], - ["Reason", ban.reason ?? "[No Reason Provided]"] + ["Reason", ban.reason ?? "[Not specified]"] ]); void this.client.modlogs.handleBanAdd(ban); diff --git a/src/events/GuildBanRemoveEvent.ts b/src/events/GuildBanRemoveEvent.ts index 720237170..e7e16bc07 100644 --- a/src/events/GuildBanRemoveEvent.ts +++ b/src/events/GuildBanRemoveEvent.ts @@ -8,7 +8,7 @@ export class GuildBanRemoveEvent extends BaseEvent { this.client.debugLog.logData("info", "GUILD_BAN_REMOVE", [ ["User", `${ban.user.tag}(${ban.user.id})`], ["Guild", `${ban.guild.name}(${ban.guild.id})`], - ["Reason", ban.reason ?? "[No Reason Provided]"] + ["Reason", ban.reason ?? "[Not specified]"] ]); void this.client.modlogs.handleBanRemove(ban); From ba1fc9cae06e898342e3104ebd5c7d0f8b776ff5 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 13:33:37 +0700 Subject: [PATCH 393/411] chore(*): change thumbnail image size from `2048` to `1024` --- src/commands/general/HelpCommand.ts | 2 +- src/utils/structures/ModerationLogs.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index c290b3a1f..02841bb93 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -53,7 +53,7 @@ export class HelpCommand extends BaseCommand { this.client.commands.get(this.client.commands.aliases.get(val)!); if (!val) { const embed = this.listEmbed - .setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 2048 })!); + .setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })!); this.listEmbed.fields = []; for (const category of this.client.commands.categories.values()) { diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index 0d7fd4f7c..30c0b7642 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -16,6 +16,7 @@ export class ModerationLogs { if (!ch) return; const embed = createEmbed("warn", i18n.__mf("commands.moderation.warn.warnSuccess", { user: options.user.tag })) + .setThumbnail(options.user.displayAvatarURL({ dynamic: true, size: 1024 })) .addField(i18n.__("commands.moderation.common.reasonString"), options.reason ?? i18n.__("commands.moderation.common.noReasonString")) .setFooter({ text: i18n.__mf("commands.moderation.warn.warnedByString", { author: options.author.tag }), @@ -36,12 +37,12 @@ export class ModerationLogs { await ch.send({ embeds: [ createEmbed("info", i18n.__mf("commands.moderation.ban.banSuccess", { user: fetched.user.tag })) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) .setFooter({ text: i18n.__mf("commands.moderation.ban.bannedByString", { author: fetched.user.tag }), iconURL: fetched.user.displayAvatarURL({ dynamic: true }) }) - .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 2048 })) ] }); } @@ -56,7 +57,7 @@ export class ModerationLogs { await ch.send({ embeds: [ createEmbed("info", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: fetched.user.tag })) - .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 2048 })) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) ] }); } From d09cfca7761f568cf4b2e2f98e5797be00cceafd Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 13:35:38 +0700 Subject: [PATCH 394/411] refactor(ModerationLogs): do better handleBan --- lang/en.json | 3 ++- src/utils/structures/ModerationLogs.ts | 28 +++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lang/en.json b/lang/en.json index 132165b61..9034a586e 100644 --- a/lang/en.json +++ b/lang/en.json @@ -146,13 +146,14 @@ "slashReasonDescription": "Un-ban reason", "usage": "{prefix}unban <id> [reason]", "alreadyUnban": "That user is not **`BANNED`**", + "unbannedByString": "Un-banned by: {author}", "unbanFail": "Unable to **`UN-BAN`** member, because: `{message}`", "ubanSuccess": "**{user}** has been **`UN-BANNED`** from the server." }, "unmute": { "description": "Unmute someone on the server", "slashMemberDescription": "Who do you like to unmute?", - "slashReasonDescription": "Unmute reason", + "slashReasonDescription": "Un-mute reason", "usage": "{prefix}unmute <@mention | id> [reason]", "noMuted": "That member is not **`MUTED`**", "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**", diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index 30c0b7642..d8e0ebd50 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -21,14 +21,16 @@ export class ModerationLogs { .setFooter({ text: i18n.__mf("commands.moderation.warn.warnedByString", { author: options.author.tag }), iconURL: options.author.displayAvatarURL({ dynamic: true }) - }) - .setThumbnail(options.user.displayAvatarURL({ dynamic: true, size: 2048 })); + }); await ch.send({ embeds: [embed] }).catch((er: Error) => console.log(`Failed to send warn logs: ${er.message}`)); } - public async handleBanAdd(ban: GuildBan): Promise<void> { - const fetched = await ban.fetch().catch(() => undefined); + public async handleBanAdd(options: { + author: User; + ban: GuildBan; + }): Promise<void> { + const fetched = await options.ban.fetch().catch(() => undefined); if (!fetched) return; const ch = await this.getCh(fetched.guild); @@ -40,15 +42,18 @@ export class ModerationLogs { .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) .setFooter({ - text: i18n.__mf("commands.moderation.ban.bannedByString", { author: fetched.user.tag }), - iconURL: fetched.user.displayAvatarURL({ dynamic: true }) + text: i18n.__mf("commands.moderation.ban.bannedByString", { author: options.author.tag }), + iconURL: options.author.displayAvatarURL({ dynamic: true }) }) ] }); } - public async handleBanRemove(ban: GuildBan): Promise<void> { - const fetched = await ban.fetch().catch(() => undefined); + public async handleBanRemove(options: { + author: User; + ban: GuildBan; + }): Promise<void> { + const fetched = await options.ban.fetch().catch(() => undefined); if (!fetched) return; const ch = await this.getCh(fetched.guild); @@ -56,8 +61,13 @@ export class ModerationLogs { await ch.send({ embeds: [ - createEmbed("info", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: fetched.user.tag })) + createEmbed("info", i18n.__mf("commands.moderation.unban.unbanSuccess", { user: fetched.user.tag })) .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) + .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) + .setFooter({ + text: i18n.__mf("commands.moderation.ban.unbannedByString", { author: options.author.tag }), + iconURL: options.author.displayAvatarURL({ dynamic: true }) + }) ] }); } From 7e45c303b8267e96b220d621c96c5c4e86180b80 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 14:46:12 +0700 Subject: [PATCH 395/411] refactor(ModerationLogs): better handleBan version, containing fixes too Co-authored-by: Ahmad Yaqdhan <ahmadyaqdhan123@gmail.com> --- src/events/GuildBanAddEvent.ts | 2 +- src/events/GuildBanRemoveEvent.ts | 2 +- src/utils/structures/ModerationLogs.ts | 46 +++++++++++++++----------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/events/GuildBanAddEvent.ts b/src/events/GuildBanAddEvent.ts index 6edeafc8e..3f4fadd21 100644 --- a/src/events/GuildBanAddEvent.ts +++ b/src/events/GuildBanAddEvent.ts @@ -11,6 +11,6 @@ export class GuildBanAddEvent extends BaseEvent { ["Reason", ban.reason ?? "[Not specified]"] ]); - void this.client.modlogs.handleBanAdd(ban); + void this.client.modlogs.handleBanAdd({ ban }); } } diff --git a/src/events/GuildBanRemoveEvent.ts b/src/events/GuildBanRemoveEvent.ts index e7e16bc07..385d20c97 100644 --- a/src/events/GuildBanRemoveEvent.ts +++ b/src/events/GuildBanRemoveEvent.ts @@ -11,6 +11,6 @@ export class GuildBanRemoveEvent extends BaseEvent { ["Reason", ban.reason ?? "[Not specified]"] ]); - void this.client.modlogs.handleBanRemove(ban); + void this.client.modlogs.handleBanRemove({ ban }); } } diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index d8e0ebd50..e644e4338 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -27,7 +27,7 @@ export class ModerationLogs { } public async handleBanAdd(options: { - author: User; + author?: User; ban: GuildBan; }): Promise<void> { const fetched = await options.ban.fetch().catch(() => undefined); @@ -36,21 +36,24 @@ export class ModerationLogs { const ch = await this.getCh(fetched.guild); if (!ch) return; + const embed = createEmbed("error", i18n.__mf("commands.moderation.ban.banSuccess", { user: fetched.user.tag })) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) + .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")); + + if (options.author) { + embed.setFooter({ + text: i18n.__mf("commands.moderation.ban.bannedByString", { author: options.author.tag }), + iconURL: options.author.displayAvatarURL({ dynamic: true }) + }); + } + await ch.send({ - embeds: [ - createEmbed("info", i18n.__mf("commands.moderation.ban.banSuccess", { user: fetched.user.tag })) - .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) - .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) - .setFooter({ - text: i18n.__mf("commands.moderation.ban.bannedByString", { author: options.author.tag }), - iconURL: options.author.displayAvatarURL({ dynamic: true }) - }) - ] + embeds: [embed] }); } public async handleBanRemove(options: { - author: User; + author?: User; ban: GuildBan; }): Promise<void> { const fetched = await options.ban.fetch().catch(() => undefined); @@ -59,16 +62,19 @@ export class ModerationLogs { const ch = await this.getCh(fetched.guild); if (!ch) return; + const embed = createEmbed("info", i18n.__mf("commands.moderation.unban.unbanSuccess", { user: fetched.user.tag })) + .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) + .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")); + + if (options.author) { + embed.setFooter({ + text: i18n.__mf("commands.moderation.unban.unbannedByString", { author: options.author.tag }), + iconURL: options.author.displayAvatarURL({ dynamic: true }) + }); + } + await ch.send({ - embeds: [ - createEmbed("info", i18n.__mf("commands.moderation.unban.unbanSuccess", { user: fetched.user.tag })) - .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) - .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")) - .setFooter({ - text: i18n.__mf("commands.moderation.ban.unbannedByString", { author: options.author.tag }), - iconURL: options.author.displayAvatarURL({ dynamic: true }) - }) - ] + embeds: [embed] }); } From a69ca34f21179383728a888f6801ed116c92e470 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 14:51:27 +0700 Subject: [PATCH 396/411] chore(*): copyright to Clytage Development --- LICENSE | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 18e53369d..c0a508c78 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2022, Clytage +Copyright (c) 2022, Clytage Development All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index fd2eceb55..4e54995a5 100644 --- a/README.md +++ b/README.md @@ -70,4 +70,4 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 ## Disclaimers Disclaimers are listed on the [DISCLAIMERS.md](./DISCLAIMERS.md) file. -> © 2022 Clytage +> © 2022 Clytage Development From 5e9cb09caf44082439cfb747602403008c275d61 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 15:09:03 +0700 Subject: [PATCH 397/411] chore(lang/en): fix mf parsing error for repeat and skipto command Co-authored-by: Ahmad Yaqdhan <ahmadyaqdhan123@gmail.com> --- lang/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/en.json b/lang/en.json index 9034a586e..c36295806 100644 --- a/lang/en.json +++ b/lang/en.json @@ -235,7 +235,7 @@ "slashQueue": "Set repeat mode to **`QUEUE`**", "slashSong": "Set repeat mode to **`SONG`**", "slashDisable": "Disable repeat mode", - "usage": "{prefix}repeat <{options}>", + "usage": "'{prefix}'repeat <{options}>", "actualMode": "Current repeat mode is **`{mode}`**", "footer": "To change mode, see {prefix}help repeat", "newMode": "The repeat mode has been set to **`{mode}`**" @@ -277,7 +277,7 @@ "slashLastDescription": "Skip to the last song in the queue", "slashSpecificDescription": "Skip to a specific position in the queue", "slashPositionDescription": "Song position in the queue", - "usage": "{prefix}skipto <{options} | number>", + "usage": "'{prefix}'skipto <{options} | number>", "noPermission": "You don't have permission to use this command.", "noSongPosition": "Unable to find song in that position.", "cantPlay": "You can't skip to current music.", From 15d93c96f92c290301f7d59587fb81de684a6b69 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 15:20:04 +0700 Subject: [PATCH 398/411] chore(readme): remove splash to avoid copyrights --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 4e54995a5..a151d1a57 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -![Splash](https://repository-images.githubusercontent.com/236645319/8a781f4e-6955-499a-9e88-380c5adccfa5) - # Rawon > A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required. From 87f06d190785a6e279572519df586da5db7e441c Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 15:20:41 +0700 Subject: [PATCH 399/411] chore: use clytage api for image assets instead --- .github/images/info.png | Bin 5699 -> 0 bytes .github/images/question_mark.png | Bin 3905 -> 0 bytes .github/images/rawon.png | Bin 324501 -> 0 bytes app.json | 2 +- src/commands/general/HelpCommand.ts | 6 +++--- 5 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 .github/images/info.png delete mode 100644 .github/images/question_mark.png delete mode 100644 .github/images/rawon.png diff --git a/.github/images/info.png b/.github/images/info.png deleted file mode 100644 index e61e1fad59bcfa231f7d21b395d9f703c75d4b41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5699 zcmZWtcQ_l~_YSp+RBWP3QM0y`)(k<_9x1I|wOh0Hh`qH|so2!s)E+TnRf$rnY8SCL zF@m4Z@89nq_ul7u&pm&f^PGF``<`eWEma^nm>d8A0M(wu^ls0f{}vg^?cOVAISc?W zkgLI<2Hu%FS&j)Nt3Fr+<}zE|>l3&VPH=~Xaj+lFTnSXpL`zAj&~rX~%i^Oho0I8X z|Cy=<V9gSr;zomuqiuU^6J@Gk?S-l+<%0j&EMgE*c}_^4Ss0fL`c9Yl#yvU8>PKHh zZp(+9zn9yQ6SCmDrZy_#$la-PcterHTIST#y&In#Y=>O+m~#oaCZ&YsTQ2EqjAQ57 zj(HUR(69ZmpR>)}rLKE)S6@u0u|-yoPd?>Cnh@V})1-WGsR*YFY)KPprteL>WSw!~ z@35n8Ieu|)Y#w-FyXRe`(yIt`kb-^a8@6ChoD2*i&f|}h0QN$xO=f5J9Dyt*uRDGi zRq64ds=m{A6^58aVberX@$~ct(7E=Uv2z}j3P6<I?bx=-+l1VH{N)OKv4#v2^%LR3 ztUVA}Y?k{J1KM(snx+Fcbc#gGKM86DKap7dg1ipz*do-frshP2Z#swg2jynQ?%aQ? zCiLZ*aym~Cfd8CjSZ&@|+AGR!yE25S+uI^Qgv5lzwH$b%1iLoNk^>hX5-l`ekF;EZ zfy2T7;u;6mmG6KYfW7+!*8VcW&8Ae<z`EntVLR-<W7zN<W&rzfY8iL-nbK`Vp(8hx zv6Id?M1VdHV#FrHHqNBEj35oTznVSm`>Fo2wTYnQH;`14Y=nA1G_~R4IEi4T2jgCR zT@@*BH-;&*fgGrBi9YyB{k3%XN{XBD@-4)-@Ml$;D?15B-1}iOo#sp=?A^peM8<aK z?w=N82jE}zh%pwD1jg@~``x1f#za?l5=O#42T4RoY%n0%zfAf~>*wANP{Bxg6Ts?4 z2j!G+RQ><1MXpuJ?q(UrPC{;z#uR$ss#<AzrH=V4G$^?2!`63^@U5$b@~fA!JoAhB zWr_afw1?_r5?9&zUR;r%W|iEz3e5J}Z#EmKUk-baH>_p0QK{epX{@}WPpY6q%c&g8 z3L~2>xK%}Zbe;p*_YnTgah}1txdZgc0>QKS+|(wkQ88PT3${fLahz8k_vP8tr9{8t z?51bd_A5kHy;4LOC<Q1K`uM6*Uou<coe$XPbBzlF(88<|<%98AO1PpK6g(>w+xgRO zB{XjC6j)mF48#kkRQsh^FJ15o2j6X9B5R0{&9EY~9RO@Pw7Lp0&AEp%IfvxRXvk1# ziNCdQ#Fy%d#TkW=qbox<$A5Y+N62=GS~n(Dv=jK_ML+F1X`J`=BWqeuF`}nOQQ=>+ z)_QP$aq{{Gx?=dGNSnnvXBB<t8)gJVOxDm-V33@llRUoY_U#-wUyW8rVQ;kWM#^dU zm5JxNeQdrA&))=v>A@wOWDC`fFNbz=@V2*wHTWF@GVBL@a2kZGOXC8x;%B3QW#~#e zYG>tZ3=|4^#OwF=fX?1iU7}^xNoPovF?E3~6~!>+@C2dr(*-;K_ZQVJNomrzdPO`j z`*Pwp@dSR$4dbQJj;7V#+5BG)!}Bj+n^BGJ^y6`tWlQI)ZFeKD1uE^+w0knQY6BBX z_@ng9tn9QGSnMy|HQr^s-mO|bj2`!?Ib085wAJfW?fE|Wtymw{>Rv}2tExM~TX`UX z3>bHC^mBakS76wlXqZz28{EU{Hy??e`(!?&;8zrd8xD7PVL!-e&&ICl9LMeK?b;Hz z_~S1ii}Y^i8A5n~#BaYx5x=T}E|5)L4ri(9&bBxX#!cKGDuIkPYr5Dx$TdE4?m%?- zu3jyNr%_{USewjiW=m{{=*#VoL%vpO{@js#@JwI3<^z>Zb%xB^9*PNt4?61*=!Aqc z4Ss^iPQRnBMc1dFEm@zfl726^6qb8d-i)p`nR(C8{(U`Qax4W$ol?DP-NdHM_qBDu z3EoB9Q^RA9waZ|4l4Wk0vf*yj9I>x^&fp9v>tX64;ldXOXufciQ}Qdrq8YpFJ0rIG zfsFgX6jL8wI%FbuAvYHn5>)rSS#{!`J3n4X|K#wZbn|C+r{u-t2;^RFTwW~e<Jav3 z62HVa(&aA}!}zM_pyfC;sR*I#^4XegM9T(JJ@uH?OZGr42Zdt~c6O1qC0J3>sq(El zIejZu>+!98<W1)r*V=-q!M=rq#l0^UcB<8_0i24`o|NVWtDge@(PS!S@|7A-^Ni9J z@2jF*@Afjn?Fa5n#QrnNnh(Ak;dv(g0MDxO_NQ!UIE#WQa3t}^Lhas*gOIl8R?4Or z$XRYZz~r+BJzL@|3z6p%u&ax_sQ%Xn(>_(WpBI;U)}wfM`=StHpi|&TB~QrccerT@ z5_Pj40JoZLLSMk^H2ea*y`Ii`YPVjWN0GfMdUI7Kx@#OaZ%F*n!4u420~jf?G%<;~ zVN5AAq-he<5Y754&LoPijMF>$4!RL$VjOtx4!y{{&VSu2CYBT~efqwK!kHU6bm0`f z+Y)3EWh2(UzveQ~sY$`gC)1En*5jhN(6F`Cz|=u28sc8wOkJ?J^1LdZ33@#0wc}7> z-CR^mL0tSKC~@`#)4HM_rj(WpdsUlM97!$8rK@7Ue)y_sO`YN{G0%-v(<EvuSU_Z6 z@H}a!=L9Dc^3dsNoLB6Bpw@2zsqkE@pqQa;!vpn4nG?76I~-EQXN5_($Pq}ybG%&p z9iSn?+JBZ<8fX5A&FK+R&;cR;kSYIFr1=bZdj=8UwKW$lB%4^`;}&{hmEC+i%tTR_ zYk8c#qS1QLAxGpwP6QPt(ZyMBe)5rU_(*Gargf(TLdgOC0h6RLkW-xXJl=RI$mxC# zWzhV+?C1K@JJ@JBwO2TR%dYS5p>koo*ZP&#o%N}}I#!?7l<RUb@+fMvjF>3#NI<E6 zrqFhBtN*&>=>2L<<*1Eb#UOv?7P95p%A@u!(ff{o_y}cKZ~8hdQDJB0mDcAZ=kuSA z6aFWOY0tBknY#yj<g%&tiv4#I)6Q=36#v+XP6-0_Sx=&F)t+0gD7);jP2Pdg6;`PP zRG|xPKdIWqVdX=~kgj@v>zgB)3q0nm@F;SSfj6Ie>0HvrdwJhD>`EZ;V=k+pGvVo| zy$lX3bkb_+KYMQOy&uZGe{**-msa*tl03=F<gY8q9}eYjihMQ4^{1?dg*qIyvB~C| zowX-_s-{F1?%bbc2lO|gG<ELTV<^#8rf^=;`FvFogN;2Tf({DdtO!$?bG{?p_8N;I zTB|;w;PO{_SCcKlcX1sWvb^tK@XDWeYCY!Mk<2~V@!Z>0p;;Gy=sVsFLL`7F?YGgw z)l_7XgziWz2i5OG3*kCeD-Vd<Bwd9>K2teI9jjECPv>Xj6!~k!9{G4Ff?B@$i-e#| zS8kq^48|_0oyO1cn!@~M+PEafa@&;xw7w0YNg+QVrSDEC(hAvMR<Nxmu-JBWlsZ${ zCC>~b6wXZ!c3(_T4kV%Vm}dVCUR-3!n&dbcXt!v*N;xYOcs}Elz!30Z;ILj9*|3wM zfDtA)r7XLLdi#6^1N%H4$-MBz7tsCgGJxZdpe{@+e>GTv=(SoE9_iw$1fJ0CMCGq! zK$$4NQ*-^E_Gka{9wi*X<^v$9(nH;+!Q9i>ktE#VvO4SGx5}8u2%Cz0E2#{|bcps& zcVeHOZAuiH%`tzogSn*NCY2l65mQCLiw94M@y?-kw-;uTFbe^vFXTSxdi-2C$crsA z3A_fep|&o6a4|PB;z)(=>c)*gB2nT1{x$MvLjt4(oQg?Of#*H^Y^^0P)>7UD>vwA% zIf@tiujljkGQLzxdN2oWq$B$ERB^#<iMd<4`ntno=MU$WTJo+X#huWF^a1m6GsMO= z&E7xyhdeOqaU#ksc^o3!)b{nxO*3qa!j*Zjr;+xA!nXC}`_l4gU$8FqNED6NQg_a% z*&CuGGZ|Faa10!UCE{q-=sS8*t%<3U?79@4YqaQY2?~ih0sX{*Q)K)U+3vf(tdUvy zqrbTG(zlfQSRQM;0ep!UmU<epm}$j(Ja1*tviKuIo%jl7xWl<~Jf{-oagNtsA{b>g zAR71}ZECCYluA-6RDqa60e}_Zz%q~JebndGSj>bz>os}yHfVfN!;Aj$7n7r;;Cc0( z*Dj49X^=jOSbZR<>f*eCxIEm3#Ex+X<(^=2)JTxNu{LG0s>(0rXy=7mjDsGN_0#D? zu{7jNq3*uul0)t{Oew1t#1v2i(TckrlJR8KRO{oBA<1KKzxP9(PITvL+2lq004zCw ziD<-)ovpkmnJ^Y5$Q?S$Y|uw$pguoL;{6~^QIz$A(8EnVMU0Fy9gfC+yx)kgH3Umo z#w39Jx^pD3nx@fmoMU!N!sCbqX9(_miYYTvTxj>5^qazGJQchCDH+`B9caEr^w@|i zWceHrdHwqoC@%@f-(~*FMEQ(I2V@nMw4MITKATJtb{+h<z=*+9C^uvnbf&t#LguzF zp(fB{q%T24$_$T#pmzqlC&omBn)Q6CC)wTvjB$V{AIGeL+t~U)kH-SI<ykDO$PeeV z{#mf=qv-&PHFE3=*8Wy6DlLJ%Sc)L9PnZM=2`3cR9Su@qz`njinIjxg>nI*%#IJ2P z8%T^1w_746`RIgfmhyd+`kfXKXPUtbOKAmnUe`9Ezo;H47OsQtal|l|G5MraBen%M z9TJ?%rb9<$C`;x;hrh1hyT`%btYL8Sz(VV27JxigqY?dSh5UAJiCCG5iHk0hktyDm zY5?|$z#ZuY_Rs$XPK|!AA2OTF6Zg2M3y|kcz)>`WZY;$U)%wq4?P3v9@@hSg{w#o+ z^0iu<d&n->l+mCjj<mOkJ3s7!M?eezS>5W46&B;1z7|!o?~0<_B4kn_b&Io{133(Y z18m@iJolt9H^!=DNJTD6_iMqbX_s!i^lh8x<YX?R0fv794J`2RGUrY|{e^l<^hoJG zLLN-c28A;*KUKkaeY}X50RCgqZxBl_{>ay^u#nGRlHWf&de(mo<B3L10Fa#b;L++! zS6n+i6vx8M&_4;^P;6<Tmpb%F&f=$1Vyf8opfA;nbybYKzC>4{Yqbk`Z#u=QPf<#} zwAy$HRk2ME+P(R2X<WVuHF}hkC$uq~6--H|p$EH~ex<)}DG9Cbf&LGCd~npWjH|n9 zZSkUgWlNn3^j2YC=RBWWCj0kdrq!zDS_tA|3#Mv@cC}?g)%VzW8O?IpbnZj{ERIVj z&E@!Vo9{j3ncVs1eiM%@s49AcucjW6iDY~IK?FkwCNp3Sw2QXME@!%N{56@mj^01d zoB_a6LN$FHaURb9R&0Lp_1jUC`%;fI=oU-0oLA2M?ilGV%5=hDHw<rXV*mqLG@a(P z!E<U-Z)0`FLU}*B3?`{~sU&CMChVq@A^5fWnpN`#89Epj;)UNPDUo%ofFcyL_=`G4 zaHo{*KhzZ1px<^aL?Iqj#gab#WHs~LbR>zdg8o~R5>%3PS#KluIK3>UA^(-wt!WN# zVaL!uhghOeXzK_W8j&B9=)5ZrLLaY?S>i_iszoRS+Kkc25yDEP*QEXKi82SWBl{&E zC1)U9T3_BAJa!^>xz%ZTPts>EehVSfze=p+A%!mT44L4M_62VaC+r{iEn$r~)h}eO zdoVtypZN$EPK)aGHTi%(x7Rheo30^1Q=Qoy%ra|cnMgzp!QGsh-&`g~%rp9Y9P{}o zM`BS9n0>!8Hhk81$2VfZR2i<lH4cZuq|RpOn&bncavnsJ$;NI$?&xUp!DaI|{0gX? zt6Txrl&0^B(jKWu(SxjyJ00x4Uy^+{oXFmI$_WaVf}11-Hx2IGEA2f??Mj~CI`(vs zbKM#mY<PloMHLKjyjtc4>27-Tq8s`Cy_HtG1X%Vd`3Y>5@DpY0l%A#d*OzD)F5}A1 zm@WHmRfvdIqj>H67~i?akm0}S4X%zp=Hl%q*C(5waj}eMDl!=ll?gZLZz)5Gk!ArS z*ZcP|PN)MN!_dOO)%5pw96!GO1%A?c)vv@gVXT&nB@<|5WQhp4<@iRmUx(ap!89d* zqbjtHsdkMO=5oLN@<5%%w^nnk>4R0^xSRrVo=J0lf7vaH%65~W^@D8p3Q!pN&NEr1 zl83Ky!;{)iFy@pN8H?(lC^`8$WFsk9d{$#Z0&rIuLr$N*sHhx)iR1LDe0gUwveqA{ z!gW*JCOMHUl2cP_Q|Ly+RDFM==-HqKWZ|D5fSxQr=Uyt+Aw8E@By{n;;fa<NeZC3( z$v<~T3T}06n@Pow=S>b+I=7!L14=hQ%zW^FQZwJw<(YwgNS!K!cA`xaEZKN>G`X#g zW5eH&n;C|Kviw)@Eq@;!sEi~P^BT(P2r_)m1i(qlQp&S!hV+G^B~|`&!5!4TX~{GU ztlIkb$;aQz>O0$$sj$fg#K+nkRZ1@17>i4b&iCQE%0v4~R385cXJ`D`Fn(_#11Zo( zzp_miXsYQI!T<jP9TAc%@t;7ip9PIVQz$u8a|vB9bBi`c&rSuY2nSOBym0e8B#4hy zf|o$v$+-4r+dXMPdape}f8&K8(yL(gjC4GBKkD^y6e-KN8%t!Eur742LLGpyWtqSO zONdw)W~=|KfXdVw)?ag7EW)syx`l3qo{%w@B~{Oiu&Y0CDYF_vrxp{Ww#7DqUh-X+ z={SzQe@S+IwxmtihW7rwqVFxJj1ER#J9CzVNYM>7{oz9vY6IH-Rh#2jb2<G-D*J0? z%Z-~oAR?()?h;4^V#DVzaf`CdUV#x?5`$D)FqvCw&!k&k^XLoHSo4U-(1~NenEAx} za&FpQIQaFo?Z8}4)O?BQKuf0uwo@<!Pq1#&^Fjfvgp_(VeC#{LbT~PFF7DgeO~H<g z556Kt&@VKe=e0N*cK_!m5_CUrO3H>R1GTk81wO7Xd!>mV_l+a9C$isEV6{lV1KKBj zRz_U}r9h!r=5~-t4EK%_N8?5UO4HLEw>>M^vTv&N%ENaE(7F;K;;(?!OW*eOexFeI zo8uj6%S-$s;{oAw+CdtZR}bWmWPc>F^wps<JWppm>-fqoD!MNg&lCFXXl|s}|MB9` zQ+}DZEflEG;Uv`z^;J6)>aYW-mX=#89Zgp-m`}F}?H_|h4~=<IckyD-r)VRWDk~6Q z$=1~9J;EPA-JF$<2KPwbfqDKY>NwIVQmZcO+aGb!ocezUbjT{3IC<8N_W)Ca@Wdj^ zv*w-($U7JN6EUk5LxXb&yb2&hf2?@R{Wi3uKX}&L^SId=E>sOBrG-7u=6}_i^-1fX znQr`R<zRW2C3QCS5?j^;;v<!Ihl|GJ>hdKEeY;<?FMta|JXe;0BVBqVlbxG?Crc2- z9Dgbd3p|&7@W)Sla#*(mmJmxX1hQnUVJHa-%VniVq>~`D32uV>=r4NEpWj_ay-LLD jZU66l^f-L|==^51eTi_Y05W|$90sT<Yr(1%Ekgbes8}W? diff --git a/.github/images/question_mark.png b/.github/images/question_mark.png deleted file mode 100644 index 5252a757ae1f374f4b615ffe8b11095008296f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3905 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 diff --git a/.github/images/rawon.png b/.github/images/rawon.png deleted file mode 100644 index de100182f5a9c64e4c6051e59036084b7bfb04f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324501 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≷SQ62^~ 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 XZ5WfdHE-BM{{PZc)ln(KS%m!$N`k<y diff --git a/app.json b/app.json index a20f6c8ed..ef0fdd2b8 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "Rawon", "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "logo": "https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/rawon.png", + "logo": "https://api.clytage.org/assets/images/rawon.png", "env": { "DISCORD_TOKEN": { "description": "What is your Discord bot's token? | Example: NTE5NjQ2MjIxNTU2Nzc2OTcw.XAcEQQ.0gjhNbGeWBsKP6FVuIyZWlG2cMd", diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 02841bb93..028b7b78a 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -33,11 +33,11 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.footerString", { prefix: this.client.config.mainPrefix }), - iconURL: "https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/info.png" + iconURL: "https://api.clytage.org/assets/images/information.png" }); private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://raw.githubusercontent.com/Clytage/rawon/main/.github/images/question_mark.png"); + .setThumbnail("https://api.clytage.org/assets/images/question_mark.png"); public async execute(ctx: CommandContext): Promise<Message | undefined> { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); @@ -143,7 +143,7 @@ export class HelpCommand extends BaseCommand { text: i18n.__mf("commands.general.help.commandUsageFooter", { devOnly: command.meta.devOnly ? "(developer-only command)" : "" }), - iconURL: "https://raw.githubusercontent.com/Clytage/rawon/.github/images/info.png" + iconURL: "https://api.clytage.org/assets/images/information.png" })] }, "editReply"); } From 5072706347ff7781fcbe9163b6bd2089a57c1861 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Fri, 27 May 2022 15:27:09 +0700 Subject: [PATCH 400/411] chore: remove unnecessary dir --- logs/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 logs/.gitkeep diff --git a/logs/.gitkeep b/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 From db60bacad53b3b82ba3fb4f73fc02c67425a3f01 Mon Sep 17 00:00:00 2001 From: 21Z <69188068+21Z@users.noreply.github.com> Date: Fri, 27 May 2022 13:03:29 +0400 Subject: [PATCH 401/411] chore(lang/en): Grammar Improvements (#943) chore(lang/en): Grammar Improvements --- lang/en.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/en.json b/lang/en.json index c36295806..eb6fd7dc8 100644 --- a/lang/en.json +++ b/lang/en.json @@ -253,7 +253,7 @@ "usage": "{prefix}search <query> [source]", "noQuery": "Please provide some query to search.", "noTracks": "I can't obtain any search results.", - "queueEmbed": "Please select some music, you can choose more than one using blank space or {separator}.\n", + "queueEmbed": "Please select some music; you can choose more than one using blank space or {separator}.\n", "trackSelectionMessage": "Music Selection", "cancelMessage": "Type {cancel} or c to cancel music selection.", "noSelection": "No or invalid value entered, music selection canceled.", @@ -279,7 +279,7 @@ "slashPositionDescription": "Song position in the queue", "usage": "'{prefix}'skipto <{options} | number>", "noPermission": "You don't have permission to use this command.", - "noSongPosition": "Unable to find song in that position.", + "noSongPosition": "Unable to find a song in that position.", "cantPlay": "You can't skip to current music.", "skipMessage": "Skipped to **{song}**" }, @@ -311,7 +311,7 @@ "noQueue": "There is nothing playing.", "noInVC": "Sorry, but you need to be in a voice channel to do that.", "validVCJoinable": "Sorry, but I can't **`CONNECT`** to your voice channel, make sure I have the proper permissions.", - "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel, make sure I have the proper permissions.", + "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel; make sure I have the proper permissions.", "sameVC": "You need to be in the same voice channel as mine." }, "generalHandler": { @@ -343,10 +343,10 @@ "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted.", "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", "unableJoinStageMessage": "Unable to join as Speaker, the queue has been deleted.", - "joinStageMessage": "Successfully joined to the stage channel as Speaker.", + "joinStageMessage": "Successfully joined the stage channel as Speaker.", "deleteQueue": "**`{duration}`** has been passed and there's no one who joined the voice channel, the queue has been deleted.", "deleteQueueFooter": "Queue Deleted", - "pauseQueue": "Everyone has left from the voice channel. To save resources, the queue has been paused.\nIf no one joins the voice channel in the next **`{duration}`**, the queue will be deleted.", + "pauseQueue": "Everyone has left the voice channel. To save resources, the queue has been paused.\nIf no one joins the voice channel in the next **`{duration}`**, the queue will be deleted.", "pauseQueueFooter": "Queue Paused", "resumeQueue": "Someone has joined the voice channel.\nResuming **{song}**", "resumeQueueFooter": "Queue Resumed" From a8ab7d2eca59d68947ffd0070c8af168b3e2c3af Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Fri, 27 May 2022 19:50:35 +0900 Subject: [PATCH 402/411] chore(lang/es): synchronize keys with EN localization --- lang/es.json | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/lang/es.json b/lang/es.json index b7e7bf4e1..186809ae5 100644 --- a/lang/es.json +++ b/lang/es.json @@ -52,7 +52,6 @@ }, "moderation": { "common": { - "categoryName": "MODERACIÓN", "noUserSpecified": "Por favor especifica un usuario.", "noReasonString": "[No especificado]", "reasonString": "**Razón**" @@ -112,7 +111,6 @@ "description": "Silencia a alguien en el servidor", "slashMemberDescription": "¿A quién quisieras silenciar?", "slashReasonDescription": "Razón de silencio", - "unableToCreateMuteRole": "No se pudo crear el rol para usuarios silenciados", "usage": "{prefix}mute <@mención | id> [razón]", "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", @@ -120,7 +118,9 @@ "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", "mutedByString": "Silenciado por: {author}", "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor.", + "cantMuteOwner": "", + "noRole": "" }, "purge": { "description": "Eliminar mensajes", @@ -145,7 +145,6 @@ "description": "Desilenciar a alguien del servidor", "slashMemberDescription": "A quién quisieras desilenciar?", "slashReasonDescription": "Razón del desilencio", - "unableToCreateMuteRole": "No se pudo crear el rol de Silenciado", "usage": "{prefix}unmute <@mención | id> [razón]", "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", @@ -164,11 +163,17 @@ "warnedByString": "Advertido por: {author}", "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." }, - "categoryName": "commands.moderation.categoryName" + "categoryName": "commands.moderation.categoryName", + "setmute": { + "description": "", + "slashRoleDescription": "", + "usage": "", + "invalidRole": "", + "success": "" + } }, "music": { "lyrics": { - "categoryName": "MÚSICA", "description": "Muestra la letra de una canción", "slashDescription": "Canción a buscar", "usage": "{prefix}lyrics [canción]", @@ -233,7 +238,6 @@ }, "skip": { "description": "Salta la canción actual", - "voteMessage": "{actual}/{required} votos requeridos para saltar la canción", "voteResultMessage": "{length}/{required} han votado para saltar la canción", "skipMessage": "Se ha saltado **{song}**" }, @@ -274,7 +278,30 @@ "remove": { "description": "commands.music.remove.description", "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", - "usage": "commands.music.remove.usage" + "usage": "commands.music.remove.usage", + "noPermission": "", + "noPositions": "", + "songsRemoved": "", + "songSkip": "" + }, + "dj": { + "description": "", + "slashRoleDescription": "", + "slashRoleNewRoleOption": "", + "slashEnableDescription": "", + "slashDisableDescription": "", + "role": { + "current": "", + "noRole": "", + "invalid": "", + "success": "" + }, + "embedTitle": "", + "newRoleText": "", + "disableText": "", + "enableText": "", + "disable": "", + "enable": "" } } }, From 101a49062b01f9ab65025b63853e8f02566ca566 Mon Sep 17 00:00:00 2001 From: Orchit07 <orchitiadi@gmail.com> Date: Fri, 27 May 2022 23:28:17 +0700 Subject: [PATCH 403/411] fix(SpotifyUtil): remove null track in playlist --- src/utils/handlers/SpotifyUtil.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index e3afb1289..fe2fe9398 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -57,7 +57,8 @@ export class SpotifyUtil { next = nextPlaylistResponse.next; playlistResponse.tracks.items.push(...nextPlaylistResponse.items); } - return playlistResponse.tracks.items; + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + return playlistResponse.tracks.items.filter(spotifyTrack => spotifyTrack.track); } public getTrack(id: string): Promise<SpotifyTrack> { From b81acea855180abd7e68a5c762699d7ac4548e67 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 28 May 2022 10:15:08 +0700 Subject: [PATCH 404/411] chore(readme): update project contributors section --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a151d1a57..65ee65897 100644 --- a/README.md +++ b/README.md @@ -61,9 +61,17 @@ Railway provide $5 each month for you to use in free plan, it will stay online 2 <a href="https://railway.app/new/template/PVZDzd?referralCode=TiaraR"><img src="https://railway.app/button.svg" alt="Deploy on Railway" /></a> -## Project Maintainer +## Project Contributors + +### Developers - [@Mednoob](https://github.com/Mednoob) - [@mzrtamp](https://github.com/mzrtamp) +- [@noxzym](https://github.com/noxzym) + +### Translators +- [Developers](#developers) (en, id) +- [@21Z](https://github.com/21Z) (en) +- [@lxndr-rl](https://github.com/lxndr-rl) (es) ## Disclaimers Disclaimers are listed on the [DISCLAIMERS.md](./DISCLAIMERS.md) file. From 498fc14c8e883b35dfd15a3a400b109c4e8d8da8 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 28 May 2022 10:15:51 +0700 Subject: [PATCH 405/411] chore(readme): update features --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 65ee65897..5a7d54fdf 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,8 @@ ## Features - Interaction support. -- Basic music commands. -- Basic moderation commands. - Configurable, and easy to use. +- Basic music and moderation commands. - A production-ready project, set up the bot without coding. ## General Setup From 992571040494b7f46b52dd41eeb13fbfd6f80006 Mon Sep 17 00:00:00 2001 From: Alexander <47733425+lxndr-rl@users.noreply.github.com> Date: Fri, 27 May 2022 23:17:18 -0500 Subject: [PATCH 406/411] chore(lang/es): synchronize with EN localization (#944) * chore(lang/es): synchronize with EN localization Additionally some strings have been fixed * chore(lang/es): add cantMuteOwner | noRole --- lang/es.json | 127 ++++++++++++++++++++++++++------------------------- 1 file changed, 64 insertions(+), 63 deletions(-) diff --git a/lang/es.json b/lang/es.json index 186809ae5..69e4c2f80 100644 --- a/lang/es.json +++ b/lang/es.json @@ -14,7 +14,7 @@ "categoryName": "GENERAL", "about": { "description": "Muestra la información del bot", - "osUptimeString": "Tiempo de actividad del SO", + "osUptimeString": "Tiempo de actividad del S.O.", "processUptimeString": "Tiempo de actividad del proceso", "botUptimeString": "Tiempo de actividad del bot", "nodeVersionString": "Versión de Node.js", @@ -51,6 +51,7 @@ } }, "moderation": { + "categoryName": "MODERACIÓN", "common": { "noUserSpecified": "Por favor especifica un usuario.", "noReasonString": "[No especificado]", @@ -58,11 +59,11 @@ }, "ban": { "description": "Banea a alguien en el servidor", - "slashMemberIDDescription": "A quién quisieras banear?", + "slashMemberIDDescription": "¿A quién quisieras banear?", "slashReasonDescription": "Razón del ban", "usage": "{prefix}ban <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`BAN MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`BAN MEMBERS`**.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`BANEAR MIEMBROS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`BANEAR MIEMBROS`**.", "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", "bannedByString": "Baneado por: {author}", @@ -78,11 +79,11 @@ }, "kick": { "description": "Expulsa a alguien del servidor", - "slashMemberDescription": "¿A quién te quisieras expulsar?", + "slashMemberDescription": "¿A quién quisieras expulsar?", "slashReasonDescription": "Razón de expulsión", "usage": "{prefix}kick <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`KICK MEMBERS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`KICK MEMBERS`**.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`EXPULSAR MIEMBROS`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`EXPULSAR MIEMBROS`**.", "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", "kickedByString": "Expulsado por: {author}", @@ -104,46 +105,54 @@ }, "embedTitle": "Registro de Moderación", "newChannelText": "Nuevo canal", - "disable": "Registro de moderación está **`DESACTIVO`**", - "enable": "Registro de moderación está **`ACTIVO`**" + "disable": "Registro de moderación está **`DESACTIVADO`**", + "enable": "Registro de moderación está **`ACTIVADO`**" }, "mute": { "description": "Silencia a alguien en el servidor", "slashMemberDescription": "¿A quién quisieras silenciar?", "slashReasonDescription": "Razón de silencio", "usage": "{prefix}mute <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE ROLES`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE ROLES`**", + "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR ROLES`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR ROLES`**", "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", "mutedByString": "Silenciado por: {author}", "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor.", - "cantMuteOwner": "", - "noRole": "" + "cantMuteOwner": "No puedes silenciar al propietario del servidor.", + "noRole": "El rol para usuario silenciado no ha sido establecido. Por favor usa `{prefix}setmute` para establecerlo." }, "purge": { "description": "Eliminar mensajes", "slashAmountDescription": "Cantidad de mensajes a eliminar", "usage": "{prefix}purge <monto>", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`MANAGE MESSAGES`** para usar este comando.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", "purgeSuccess": "**`{amount}`** mensaje(s) han sido **`BORRADOS`**" }, + "setmute": { + "description": "Establece el rol de usuario silencio", + "slashRoleDescription": "El rol a ser usado como usuario silenciado", + "usage": "{prefix}setmute <rol>", + "invalidRole": "Rol no válido.", + "success": "<@&{role}> ha sido establecido como rol de usuario silenciado." + }, "unban": { "description": "Desbanea a alguien del servidor", - "slashMemberDescription": "A quién quisieras desbanear?", + "slashMemberDescription": "¿A quién quisieras desbanear?", "slashReasonDescription": "Razón de desbaneo", "usage": "{prefix}unban <id> [razón]", "alreadyUnban": "Este usuario no está **`BANEADO`**", + "unbannedByString": "Desbaneado por: {author}", "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." }, "unmute": { "description": "Desilenciar a alguien del servidor", - "slashMemberDescription": "A quién quisieras desilenciar?", + "slashMemberDescription": "¿A quién quisieras desilenciar?", "slashReasonDescription": "Razón del desilencio", "usage": "{prefix}unmute <@mención | id> [razón]", "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", @@ -157,33 +166,45 @@ "slashMemberDescription": "¿A quién quisieras advertir?", "slashReasonDescription": "Razón de advertencia", "usage": "{prefix}warn <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`MANAGE SERVER`** para usar este comando.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", "warnedByString": "Advertido por: {author}", "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." - }, - "categoryName": "commands.moderation.categoryName", - "setmute": { - "description": "", - "slashRoleDescription": "", - "usage": "", - "invalidRole": "", - "success": "" } }, "music": { + "categoryName": "MÚSICA", + "dj": { + "description": "Cambia la configuración del DJ", + "slashRoleDescription": "Mira o cambia la configuración del rol DJ", + "slashRoleNewRoleOption": "Nuevo rol DJ", + "slashEnableDescription": "Activa la función DJ", + "slashDisableDescription": "Desactiva la función DJ", + "role": { + "current": "<@&{role}> es el rol DJ actualmente.", + "noRole": "No hay rol DJ establecido actualmente.", + "invalid": "Rol no válido.", + "success": "<@&{role}> ha sido establecido como rol DJ." + }, + "embedTitle": "DJ", + "newRoleText": "Nuevo rol", + "disableText": "La función DJ ha sido **`DESACTIVADA`**", + "enableText": "La función DJ ha sido **`ACTIVADA`**", + "disable": "Desactivado", + "enable": "Activado" + }, "lyrics": { "description": "Muestra la letra de una canción", "slashDescription": "Canción a buscar", "usage": "{prefix}lyrics [canción]", - "noQuery": "No se está reproduciendo nada o no se ingresaron argumentos.", + "noQuery": "No se está reproduciendo nada o no se ingresaró ninguna canción a buscar.", "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" }, "nowplaying": { "description": "Muestra la canción que se está reproduciendo", "emptyQueue": "La cola está vacía", - "disableButton": "Este botón ya no está activo y eliminado." + "disableButton": "Este botón ya no está activo y ha sido eliminado." }, "pause": { "description": "Pausa la reproducción de música", @@ -200,11 +221,20 @@ "queue": { "description": "Muestra la cola de reproducción" }, + "remove": { + "description": "Quita canciones de la cola", + "slashPositionsDescription": "Posición de la cancion(es) a quitar, separadas por comas o espacios", + "usage": "{prefix}remove <posiciones>", + "noPermission": "No tienes permiso para usar este comando.", + "noPositions": "Por favor, especifica una posición válida.", + "songsRemoved": "Removida(s) {removed, plural, one {1 canción} other {# canciones}} de la cola", + "songSkip": "La canción actual ha sido saltada.\n\n" + }, "repeat": { "description": "Repite la canción actual o la cola completa", - "slashQueue": "Establece el mode repetición a **`QUEUE`**", - "slashSong": "Establece el mode repetición a **`ONE`**", - "footer": "Para cambiar el modo, mira '{prefix}help repeat'", + "slashQueue": "Establece el mode repetición a **`COLA`**", + "slashSong": "Establece el mode repetición a **`UNA`**", + "footer": "Para cambiar el modo, revisa '{prefix}help repeat'", "slashDisable": "Desactiva el modo repetición", "usage": "{prefix}repeat <{options}>", "actualMode": "El modo de repetición actual es **`{mode}`**", @@ -273,35 +303,6 @@ "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", "newVolume": "Volúmen establecido en **`{volume}`**" - }, - "categoryName": "commands.music.categoryName", - "remove": { - "description": "commands.music.remove.description", - "slashPositionsDescription": "commands.music.remove.slashPositionsDescription", - "usage": "commands.music.remove.usage", - "noPermission": "", - "noPositions": "", - "songsRemoved": "", - "songSkip": "" - }, - "dj": { - "description": "", - "slashRoleDescription": "", - "slashRoleNewRoleOption": "", - "slashEnableDescription": "", - "slashDisableDescription": "", - "role": { - "current": "", - "noRole": "", - "invalid": "", - "success": "" - }, - "embedTitle": "", - "newRoleText": "", - "disableText": "", - "enableText": "", - "disable": "", - "enable": "" } } }, @@ -309,8 +310,8 @@ "musicDecorator": { "noQueue": "No se está reproduciendo nada.", "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", - "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONNECT`** en tu servidor.", - "validVCPermission": "Lo siento, pero no tengo el permiso **`SPEAK`** en tu servidor.", + "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONECTAR`** en tu servidor.", + "validVCPermission": "Lo siento, pero no tengo el permiso **`HABLAR`** en tu servidor.", "sameVC": "Necesitas estar en el mismo canal de voz que yo." }, "generalHandler": { @@ -355,4 +356,4 @@ "pageFooter": "Página {actual} de {total}", "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." } -} +} \ No newline at end of file From 481623476e754ba5658907e2875151648dfccd8f Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 28 May 2022 11:44:00 +0700 Subject: [PATCH 407/411] chore(lang): improvement for all file --- lang/en.json | 22 +++++++++++----------- lang/es.json | 18 +++++++++--------- lang/id.json | 16 ++++++++-------- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lang/en.json b/lang/en.json index eb6fd7dc8..d215e2f1d 100644 --- a/lang/en.json +++ b/lang/en.json @@ -30,7 +30,7 @@ "usage": "{prefix}help [command]", "authorString": "{username} - Command List", "footerString": "{prefix}help <command> to get more information on a specific command", - "noCommand": "Couldn't find any matching command name", + "noCommand": "Couldn't find any matching command name.", "commandSelectionString": "Please select the command", "noCommanSuggest": "Couldn't find matching command name. Did you mean this?", "commandDetailTitle": "{username} - Information about {command} command", @@ -99,8 +99,8 @@ "usage": "{prefix}modlogs", "channel": { "current": "Current moderation logs channel: <#{channel}>", - "noChannel": "Moderation logs channel hasn't been set", - "invalid": "Invalid channel. Channel must be a text channel.", + "noChannel": "Moderation logs channel hasn't been set.", + "invalid": "Invalid channel, channel must be a text channel.", "success": "Moderation logs channel has been set to <#{channel}>" }, "embedTitle": "Moderation Logs", @@ -115,8 +115,8 @@ "usage": "{prefix}mute <@mention | id> [reason]", "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", - "cantMuteOwner": "You can't mute the server owner.", - "noRole": "Mute role hasn't been set. Please set it with `{prefix}setmute`.", + "cantMuteOwner": "You can't **`MUTE`** the server owner.", + "noRole": "Mute role hasn't been set, please set it with `{prefix}setmute`", "alreadyMuted": "That member is already **`MUTED`**", "userMuted": "You have been **`MUTED`** on **{guildName}**", "mutedByString": "Muted by: {author}", @@ -135,7 +135,7 @@ }, "setmute": { "description": "Set the mute role", - "slashRoleDescription": "The role to be used for muting", + "slashRoleDescription": "The role to be used for mute", "usage": "{prefix}setmute <role>", "invalidRole": "Invalid role.", "success": "Mute role has been set to <@&{role}>" @@ -167,7 +167,7 @@ "slashReasonDescription": "Warn reason", "usage": "{prefix}warn <@mention | id> [reason]", "userNoPermission": "Sorry, but you don't have **`MANAGE SERVER`** permission to use this command.", - "noDM": "Unable to create a DM with that user, but I'll keep warn 'em.", + "noDM": "Unable to create a DM with that user, but I'll keep warning 'em.", "userWarned": "You have been **`WARNED`** on **{guildName}**", "warnedByString": "Warned by: {author}", "warnSuccess": "**{user}** has been **`WARNED`** on the server." @@ -183,7 +183,7 @@ "slashDisableDescription": "Disable the DJ feature", "role": { "current": "Current DJ role: <@&{role}>", - "noRole": "DJ role hasn't been set", + "noRole": "DJ role hasn't been set, please set it with `{prefix}dj role`", "invalid": "Invalid role.", "success": "DJ role has been set to <@&{role}>" }, @@ -203,7 +203,7 @@ }, "nowplaying": { "description": "Show the media player status", - "emptyQueue": "Queue is empty", + "emptyQueue": "Queue is empty.", "disableButton": "Previous buttons is no longer active and removed." }, "pause": { @@ -327,7 +327,7 @@ }, "events": { "channelUpdate": { - "reconfigureConnection": "Voice channel region changed. Re-configuring connection...", + "reconfigureConnection": "Voice channel region changed, re-configuring connection...", "connectionReconfigured": "Connection successfully re-configured.", "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted." }, @@ -338,7 +338,7 @@ "createMessage": "Hi {author}, my prefix is **`{prefix}`**", "voiceStateUpdate": { "disconnectFromVCMessage": "Disconnected from the voice channel, the queue has been deleted.", - "reconfigureConnection": "Moved to a voice channel with a different region. Re-configuring connection...", + "reconfigureConnection": "Moved to a voice channel with a different region, re-configuring connection...", "connectionReconfigured": "Connection successfully re-configured.", "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted.", "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", diff --git a/lang/es.json b/lang/es.json index 69e4c2f80..d8f528a42 100644 --- a/lang/es.json +++ b/lang/es.json @@ -30,7 +30,7 @@ "usage": "{prefix}help [comando]", "authorString": "Lista de comandos de {username}", "footerString": "{prefix}help <comando> para obtener más información de un comando específico", - "noCommand": "No se puede encontrar el comando", + "noCommand": "No se puede encontrar el comando.", "commandSelectionString": "Por favor selecciona un comando", "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", "commandDetailTitle": "{username} - Información del comando {command}", @@ -100,7 +100,7 @@ "channel": { "current": "Canal de registro de moderación actual: <#{channel}>", "noChannel": "El canal de registro de moderación aún no ha sido establecido.", - "invalid": "Canal no válido. Asegúrate que sea un canal de texto.", + "invalid": "Canal no válido, asegúrate que sea un canal de texto.", "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" }, "embedTitle": "Registro de Moderación", @@ -115,13 +115,13 @@ "usage": "{prefix}mute <@mención | id> [razón]", "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR ROLES`** para usar este comando.", "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR ROLES`**", + "cantMuteOwner": "No puedes **`SILENCIAR`** al propietario del servidor.", + "noRole": "El rol para usuario silenciado no ha sido establecido, por favor usa `{prefix}setmute` para establecerlo.", "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", "mutedByString": "Silenciado por: {author}", "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor.", - "cantMuteOwner": "No puedes silenciar al propietario del servidor.", - "noRole": "El rol para usuario silenciado no ha sido establecido. Por favor usa `{prefix}setmute` para establecerlo." + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." }, "purge": { "description": "Eliminar mensajes", @@ -183,7 +183,7 @@ "slashDisableDescription": "Desactiva la función DJ", "role": { "current": "<@&{role}> es el rol DJ actualmente.", - "noRole": "No hay rol DJ establecido actualmente.", + "noRole": "No hay rol DJ establecido actualmente, por favor usa `{prefix}dj role` para establecerlo.", "invalid": "Rol no válido.", "success": "<@&{role}> ha sido establecido como rol DJ." }, @@ -203,7 +203,7 @@ }, "nowplaying": { "description": "Muestra la canción que se está reproduciendo", - "emptyQueue": "La cola está vacía", + "emptyQueue": "La cola está vacía.", "disableButton": "Este botón ya no está activo y ha sido eliminado." }, "pause": { @@ -327,7 +327,7 @@ }, "events": { "channelUpdate": { - "reconfigureConnection": "Se ha cambiado la región del canal de voz. Reconfigurando conexión...", + "reconfigureConnection": "Se ha cambiado la región del canal de voz, reconfigurando conexión...", "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." }, @@ -346,7 +346,7 @@ "deleteQueueFooter": "Cola eliminada", "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", "pauseQueueFooter": "Cola pausada", - "reconfigureConnection": "He sido movido a un canal de voz en una región diferente. Reconfigurando conexión...", + "reconfigureConnection": "He sido movido a un canal de voz en una región diferente, reconfigurando conexión...", "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", "resumeQueueFooter": "Cola reanudada", "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." diff --git a/lang/id.json b/lang/id.json index 69d71c74c..80ceef519 100644 --- a/lang/id.json +++ b/lang/id.json @@ -30,7 +30,7 @@ "usage": "{prefix}help [nama perintah]", "authorString": "{username} - Daftar Perintah", "footerString": "{prefix}help <perintah> untuk mendapatkan informasi tentang perintah tertentu", - "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut", + "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut.", "commandSelectionString": "Silahkan pilih perintah yang kamu tuju", "noCommanSuggest": "Tidak dapat menemukan perintah dengan nama tersebut. Mungkin maksudmu ini?", "commandDetailTitle": "{username} - Informasi tentang perintah {command}", @@ -100,7 +100,7 @@ "channel": { "current": "Channel moderation logs saat ini: <#{channel}>", "noChannel": "Channel moderation logs belum ditentukan.", - "invalid": "Channel tidak valid. Channel harus berupa text channel.", + "invalid": "Channel tidak valid, channel harus berupa text channel.", "success": "Channel moderation logs telah diubah menjadi <#{channel}>." }, "embedTitle": "Moderation Logs", @@ -115,8 +115,8 @@ "usage": "{prefix}mute <@mention | id> [alasan]", "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", - "cantMuteOwner": "Anda tidak bisa mute owner server.", - "noRole": "Role untuk mute belum diatur. Silahkan atur dengan perintah `{prefix}muterole`.", + "cantMuteOwner": "Anda tidak bisa **`MUTE`** owner server.", + "noRole": "Role untuk mute belum diatur, silahkan atur dengan perintah `{prefix}muterole`", "alreadyMuted": "Member tersebut sedang di **`MUTE`**", "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", "mutedByString": "Di mute oleh: {author}", @@ -182,7 +182,7 @@ "slashDisableDescription": "Mematikan fitur DJ", "role": { "current": "Role DJ saat ini: <@&{role}>", - "noRole": "Role DJ belum ditentukan.", + "noRole": "Role DJ belum ditentukan, silahkan atur dengan perintah `{prefix}dj role`", "invalid": "Role tidak valid.", "success": "Role DJ telah diubah menjadi <@&{role}>" }, @@ -202,7 +202,7 @@ }, "nowplaying": { "description": "Menunjukkan status media player", - "emptyQueue": "Antrian telah kosong", + "emptyQueue": "Antrian sedang kosong.", "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus." }, "pause": { @@ -326,7 +326,7 @@ }, "events": { "channelUpdate": { - "reconfigureConnection": "Region voice channel telah diganti. Melakukan konfigurasi koneksi...", + "reconfigureConnection": "Region voice channel telah diganti, melakukan konfigurasi koneksi...", "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus." }, @@ -337,7 +337,7 @@ "createMessage": "Hai {author}, prefix-ku adalah **`{prefix}`**", "voiceStateUpdate": { "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", - "reconfigureConnection": "Dipindahkan ke voice channel dengan region yang berbeda. Melakukan konfigurasi koneksi...", + "reconfigureConnection": "Dipindahkan ke voice channel dengan region yang berbeda, melakukan konfigurasi koneksi...", "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus.", "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", From 77ad007fba09b834de6f344b1abd2856a30df75f Mon Sep 17 00:00:00 2001 From: Mednoob <ahmadyaqdhan123@gmail.com> Date: Sat, 28 May 2022 14:06:04 +0900 Subject: [PATCH 408/411] chore(lang): sort localizations by alphabetic order --- lang/en.json | 330 +++++++++++++++++++++++++-------------------------- lang/es.json | 326 +++++++++++++++++++++++++------------------------- lang/id.json | 328 +++++++++++++++++++++++++------------------------- 3 files changed, 492 insertions(+), 492 deletions(-) diff --git a/lang/en.json b/lang/en.json index d215e2f1d..3c13e5da4 100644 --- a/lang/en.json +++ b/lang/en.json @@ -4,46 +4,46 @@ "categoryName": "DEVELOPER", "eval": { "description": "Evaluate to the bot", - "usage": "{prefix}eval <some code>", + "errorString": "Error", "noCode": "No code was provided.", "outputString": "Output", - "errorString": "Error" + "usage": "{prefix}eval <some code>" } }, "general": { - "categoryName": "GENERAL", "about": { - "description": "Show the bot's information", - "osUptimeString": "OS Uptime", - "processUptimeString": "Process Uptime", + "aboutFooter": "{botname} - Bot Information", "botUptimeString": "Bot Uptime", - "nodeVersionString": "Node.js version", + "botVersionString": "Bot version", + "description": "Show the bot's information", "discordJSVersionString": "Discord.js version", "ffmpegVersionString": "FFmpeg version", - "botVersionString": "Bot version", - "sourceCodeString": "Source code", - "aboutFooter": "{botname} - Bot Information" + "nodeVersionString": "Node.js version", + "osUptimeString": "OS Uptime", + "processUptimeString": "Process Uptime", + "sourceCodeString": "Source code" }, + "categoryName": "GENERAL", "help": { - "description": "Shows the command list or information for a specific command", - "slashDescription": "Command name to view a specific information about the command", - "usage": "{prefix}help [command]", + "aliasesString": "Aliases", "authorString": "{username} - Command List", - "footerString": "{prefix}help <command> to get more information on a specific command", - "noCommand": "Couldn't find any matching command name.", - "commandSelectionString": "Please select the command", - "noCommanSuggest": "Couldn't find matching command name. Did you mean this?", "commandDetailTitle": "{username} - Information about {command} command", - "nameString": "Name", + "commandSelectionString": "Please select the command", + "commandUsageFooter": "<> = required | [] = optional {devOnly}", + "description": "Shows the command list or information for a specific command", "descriptionString": "Description", - "aliasesString": "Aliases", - "usageString": "Usage", - "commandUsageFooter": "<> = required | [] = optional {devOnly}" + "footerString": "{prefix}help <command> to get more information on a specific command", + "nameString": "Name", + "noCommanSuggest": "Couldn't find matching command name. Did you mean this?", + "noCommand": "Couldn't find any matching command name.", + "slashDescription": "Command name to view a specific information about the command", + "usage": "{prefix}help [command]", + "usageString": "Usage" }, "invite": { + "clickURL": "**[Click here]({url})** to invite this bot to your server.", "description": "Get the invite link for the bot", - "inviteTitle": "{bot} - Invite Link", - "clickURL": "**[Click here]({url})** to invite this bot to your server." + "inviteTitle": "{bot} - Invite Link" }, "ping": { "description": "Shows the current ping of the bot", @@ -51,284 +51,265 @@ } }, "moderation": { - "categoryName": "MODERATION", - "common": { - "noUserSpecified": "Please specify someone.", - "noReasonString": "[Not specified]", - "reasonString": "**Reason**" - }, "ban": { + "banFail": "Unable to **`BAN`** member, because: `{message}`", + "banSuccess": "**{user}** has been **`BANNED`** from the server.", + "bannedByString": "Banned by: {author}", + "botNoPermission": "Sorry, but I don't have **`BAN MEMBERS`** permission.", "description": "Ban someone from the server", "slashMemberIDDescription": "Who do you like to ban?", "slashReasonDescription": "Ban reason", "usage": "{prefix}ban <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`BAN MEMBERS`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`BAN MEMBERS`** permission.", - "userNoBannable": "Sorry, but I can't **`BAN`** that member.", "userBanned": "You have been **`BANNED`** from **{guildName}**", - "bannedByString": "Banned by: {author}", - "banFail": "Unable to **`BAN`** member, because: `{message}`", - "banSuccess": "**{user}** has been **`BANNED`** from the server." + "userNoBannable": "Sorry, but I can't **`BAN`** that member.", + "userNoPermission": "Sorry, but you don't have **`BAN MEMBERS`** permission to use this command." + }, + "categoryName": "MODERATION", + "common": { + "noReasonString": "[Not specified]", + "noUserSpecified": "Please specify someone.", + "reasonString": "**Reason**" }, "infractions": { "description": "Show the infractions of a user", - "slashMemberDescription": "Who do you like to see the infractions of?", - "usage": "{prefix}infractions [@mention | id]", "embedAuthorText": "{user} - Infractions", - "noInfractions": "No infractions." + "noInfractions": "No infractions.", + "slashMemberDescription": "Who do you like to see the infractions of?", + "usage": "{prefix}infractions [@mention | id]" }, "kick": { + "botNoPermission": "Sorry, but I don't have **`KICK MEMBERS`** permission.", "description": "Kick someone from the server", + "kickFail": "Unable to **`KICK`** member, because: `{message}`", + "kickSuccess": "**{user}** has been **`KICKED`** from the server.", + "kickedByString": "Kicked by: {author}", "slashMemberDescription": "Who do you like to kick?", "slashReasonDescription": "Kick reason", "usage": "{prefix}kick <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`KICK MEMBERS`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`KICK MEMBERS`** permission.", - "userNoKickable": "Sorry, but I can't **`KICK`** that member.", "userKicked": "You have been **`KICKED`** from **{guildName}**", - "kickedByString": "Kicked by: {author}", - "kickFail": "Unable to **`KICK`** member, because: `{message}`", - "kickSuccess": "**{user}** has been **`KICKED`** from the server." + "userNoKickable": "Sorry, but I can't **`KICK`** that member.", + "userNoPermission": "Sorry, but you don't have **`KICK MEMBERS`** permission to use this command." }, "modlogs": { - "description": "Change moderation logs feature settings", - "slashChannelDescription": "View or change the moderation logs channel", - "slashChannelNewChannelOption": "New channel for the moderation logs", - "slashEnableDescription": "Enable the moderation logs feature", - "slashDisableDescription": "Disable the moderation logs feature", - "usage": "{prefix}modlogs", "channel": { "current": "Current moderation logs channel: <#{channel}>", - "noChannel": "Moderation logs channel hasn't been set.", "invalid": "Invalid channel, channel must be a text channel.", + "noChannel": "Moderation logs channel hasn't been set.", "success": "Moderation logs channel has been set to <#{channel}>" }, + "description": "Change moderation logs feature settings", + "disable": "Moderation logs feature has been **`DISABLED`**", "embedTitle": "Moderation Logs", + "enable": "Moderation logs feature has been **`ENABLED`**", "newChannelText": "new channel", - "disable": "Moderation logs feature has been **`DISABLED`**", - "enable": "Moderation logs feature has been **`ENABLED`**" + "slashChannelDescription": "View or change the moderation logs channel", + "slashChannelNewChannelOption": "New channel for the moderation logs", + "slashDisableDescription": "Disable the moderation logs feature", + "slashEnableDescription": "Enable the moderation logs feature", + "usage": "{prefix}modlogs" }, "mute": { + "alreadyMuted": "That member is already **`MUTED`**", + "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", + "cantMuteOwner": "You can't **`MUTE`** the server owner.", "description": "Mute someone on the server", + "muteFail": "Unable to **`MUTE`** member, because: `{message}`", + "muteSuccess": "**{user}** has been **`MUTED`** on the server.", + "mutedByString": "Muted by: {author}", + "noRole": "Mute role hasn't been set, please set it with `{prefix}setmute`", "slashMemberDescription": "Who do you like to mute?", "slashReasonDescription": "Mute reason", "usage": "{prefix}mute <@mention | id> [reason]", - "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command.", - "botNoPermission": "Sorry, but I don't have **`MANAGE ROLES`** permission.", - "cantMuteOwner": "You can't **`MUTE`** the server owner.", - "noRole": "Mute role hasn't been set, please set it with `{prefix}setmute`", - "alreadyMuted": "That member is already **`MUTED`**", "userMuted": "You have been **`MUTED`** on **{guildName}**", - "mutedByString": "Muted by: {author}", - "muteFail": "Unable to **`MUTE`** member, because: `{message}`", - "muteSuccess": "**{user}** has been **`MUTED`** on the server." + "userNoPermission": "Sorry, but you don't have **`MANAGE ROLES`** permission to use this command." }, "purge": { - "description": "Delete messages", - "slashAmountDescription": "Number of messages to delete", - "usage": "{prefix}purge <amount>", - "userNoPermission": "Sorry, but you don't have **`MANAGE MESSAGES`** permission to use this command.", "botNoPermission": "Sorry, but I don't have **`MANAGE MESSAGES`** permission.", + "description": "Delete messages", "invalidAmount": "Please specify a valid number of messages to delete.", "purgeFail": "Unable to **`PURGE`** messages, because: `{message}`", - "purgeSuccess": "{amount, plural, one {**`1`** message} other {**`#`** messages}} have been **`PURGED`**" + "purgeSuccess": "{amount, plural, one {**`1`** message} other {**`#`** messages}} have been **`PURGED`**", + "slashAmountDescription": "Number of messages to delete", + "usage": "{prefix}purge <amount>", + "userNoPermission": "Sorry, but you don't have **`MANAGE MESSAGES`** permission to use this command." }, "setmute": { "description": "Set the mute role", - "slashRoleDescription": "The role to be used for mute", - "usage": "{prefix}setmute <role>", "invalidRole": "Invalid role.", - "success": "Mute role has been set to <@&{role}>" + "slashRoleDescription": "The role to be used for mute", + "success": "Mute role has been set to <@&{role}>", + "usage": "{prefix}setmute <role>" }, "unban": { + "alreadyUnban": "That user is not **`BANNED`**", "description": "Un-ban someone from the server", "slashMemberDescription": "Who do you like to un-ban?", "slashReasonDescription": "Un-ban reason", - "usage": "{prefix}unban <id> [reason]", - "alreadyUnban": "That user is not **`BANNED`**", - "unbannedByString": "Un-banned by: {author}", + "ubanSuccess": "**{user}** has been **`UN-BANNED`** from the server.", "unbanFail": "Unable to **`UN-BAN`** member, because: `{message}`", - "ubanSuccess": "**{user}** has been **`UN-BANNED`** from the server." + "unbannedByString": "Un-banned by: {author}", + "usage": "{prefix}unban <id> [reason]" }, "unmute": { "description": "Unmute someone on the server", + "noMuted": "That member is not **`MUTED`**", "slashMemberDescription": "Who do you like to unmute?", "slashReasonDescription": "Un-mute reason", - "usage": "{prefix}unmute <@mention | id> [reason]", - "noMuted": "That member is not **`MUTED`**", - "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**", - "unmutedByString": "Un-muted by: {author}", "unmuteFail": "Unable to **`UN-MUTE`** member, because: `{message}`", - "unmuteSuccess": "**{user}** has been **`UN-MUTED`** on the server." + "unmuteSuccess": "**{user}** has been **`UN-MUTED`** on the server.", + "unmutedByString": "Un-muted by: {author}", + "usage": "{prefix}unmute <@mention | id> [reason]", + "userUnmuted": "You have been **`UN-MUTED`** on **{guildName}**" }, "warn": { "description": "Warn member on the server", + "noDM": "Unable to create a DM with that user, but I'll keep warning 'em.", "slashMemberDescription": "Who do you like to warn?", "slashReasonDescription": "Warn reason", "usage": "{prefix}warn <@mention | id> [reason]", "userNoPermission": "Sorry, but you don't have **`MANAGE SERVER`** permission to use this command.", - "noDM": "Unable to create a DM with that user, but I'll keep warning 'em.", "userWarned": "You have been **`WARNED`** on **{guildName}**", - "warnedByString": "Warned by: {author}", - "warnSuccess": "**{user}** has been **`WARNED`** on the server." + "warnSuccess": "**{user}** has been **`WARNED`** on the server.", + "warnedByString": "Warned by: {author}" } }, "music": { "categoryName": "MUSIC", "dj": { "description": "Change DJ feature settings", - "slashRoleDescription": "View or change the DJ role", - "slashRoleNewRoleOption": "New role for the DJ", - "slashEnableDescription": "Enable the DJ feature", - "slashDisableDescription": "Disable the DJ feature", + "disable": "Disabled", + "disableText": "DJ feature has been **`DISABLED`**", + "embedTitle": "DJ feature", + "enable": "Enabled", + "enableText": "DJ feature has been **`ENABLED`**", + "newRoleText": "new role", "role": { "current": "Current DJ role: <@&{role}>", - "noRole": "DJ role hasn't been set, please set it with `{prefix}dj role`", "invalid": "Invalid role.", + "noRole": "DJ role hasn't been set, please set it with `{prefix}dj role`", "success": "DJ role has been set to <@&{role}>" }, - "embedTitle": "DJ feature", - "newRoleText": "new role", - "disableText": "DJ feature has been **`DISABLED`**", - "enableText": "DJ feature has been **`ENABLED`**", - "disable": "Disabled", - "enable": "Enabled" + "slashDisableDescription": "Disable the DJ feature", + "slashEnableDescription": "Enable the DJ feature", + "slashRoleDescription": "View or change the DJ role", + "slashRoleNewRoleOption": "New role for the DJ" }, "lyrics": { + "apiError": "The API could not find the song **{song}**, because: `{message}`", "description": "Show the lyrics from the song", - "slashDescription": "Song to search", - "usage": "{prefix}lyrics [song]", "noQuery": "There is nothing playing, or no arguments are provided.", - "apiError": "The API could not find the song **{song}**, because: `{message}`" + "slashDescription": "Song to search", + "usage": "{prefix}lyrics [song]" }, "nowplaying": { "description": "Show the media player status", - "emptyQueue": "Queue is empty.", - "disableButton": "Previous buttons is no longer active and removed." + "disableButton": "Previous buttons is no longer active and removed.", + "emptyQueue": "Queue is empty." }, "pause": { - "description": "Pause the music player", "alreadyPause": "The music player is already paused.", + "description": "Pause the music player", "pauseMessage": "The music player has been paused." }, "play": { + "alreadyPlaying": "The music player is already playing to **`{voiceChannel}`** voice channel.", "description": "Play some music", + "noSongData": "That URL doesn't have any song data.", "slashQueryDescription": "Query to search", - "usage": "{prefix}play <query | url>", - "alreadyPlaying": "The music player is already playing to **`{voiceChannel}`** voice channel.", - "noSongData": "That URL doesn't have any song data." + "usage": "{prefix}play <query | url>" }, "queue": { "description": "Show the queue list" }, "remove": { "description": "Remove song(s) from the queue", - "slashPositionsDescription": "Position of the songs to remove separated by comma or space", - "usage": "{prefix}remove <positions>", "noPermission": "You don't have permission to use this command.", "noPositions": "Please specify the song positions to remove.", + "slashPositionsDescription": "Position of the songs to remove separated by comma or space", + "songSkip": "The current song was removed, song skipped.\n\n", "songsRemoved": "Removed {removed, plural, one {1 song} other {# songs}} from the queue", - "songSkip": "The current song was removed, song skipped.\n\n" + "usage": "{prefix}remove <positions>" }, "repeat": { + "actualMode": "Current repeat mode is **`{mode}`**", "description": "Repeat current music or the queue", + "footer": "To change mode, see {prefix}help repeat", + "newMode": "The repeat mode has been set to **`{mode}`**", + "slashDisable": "Disable repeat mode", "slashQueue": "Set repeat mode to **`QUEUE`**", "slashSong": "Set repeat mode to **`SONG`**", - "slashDisable": "Disable repeat mode", - "usage": "'{prefix}'repeat <{options}>", - "actualMode": "Current repeat mode is **`{mode}`**", - "footer": "To change mode, see {prefix}help repeat", - "newMode": "The repeat mode has been set to **`{mode}`**" + "usage": "'{prefix}'repeat <{options}>" }, "resume": { - "description": "Resume the music player", "alreadyResume": "The music player is not paused.", + "description": "Resume the music player", "resumeMessage": "The music player has been resumed." }, "search": { + "cancelMessage": "Type {cancel} or c to cancel music selection.", + "canceledMessage": "Music selection canceled.", "description": "Play some music using provided query", - "slashDescription": "Search the specified music", - "slashQueryDescription": "Query to search", - "slashSourceDescription": "Where the music should be taken?", - "usage": "{prefix}search <query> [source]", + "interactionContent": "Please select some music", + "interactionPlaceholder": "Please select some music", "noQuery": "Please provide some query to search.", + "noSelection": "No or invalid value entered, music selection canceled.", "noTracks": "I can't obtain any search results.", "queueEmbed": "Please select some music; you can choose more than one using blank space or {separator}.\n", + "slashDescription": "Search the specified music", + "slashQueryDescription": "Query to search", + "slashSourceDescription": "Where the music should be taken?", "trackSelectionMessage": "Music Selection", - "cancelMessage": "Type {cancel} or c to cancel music selection.", - "noSelection": "No or invalid value entered, music selection canceled.", - "canceledMessage": "Music selection canceled.", - "interactionContent": "Please select some music", - "interactionPlaceholder": "Please select some music" + "usage": "{prefix}search <query> [source]" }, "shuffle": { - "description": "Set mode for shuffle feature", "actualState": "Current shuffle mode is **`{state}`**", + "description": "Set mode for shuffle feature", "newState": "Shuffle mode is now set to **`{state}`**" }, "skip": { "description": "Skip the music", - "voteResultMessage": "{length}/{required} voted to skip the current song", - "skipMessage": "Skipped **{song}**" + "skipMessage": "Skipped **{song}**", + "voteResultMessage": "{length}/{required} voted to skip the current song" }, "skipTo": { + "cantPlay": "You can't skip to current music.", "description": "Skip to specific position in the queue", + "noPermission": "You don't have permission to use this command.", + "noSongPosition": "Unable to find a song in that position.", + "skipMessage": "Skipped to **{song}**", "slashFirstDescription": "Rewind to the first song in the queue", "slashLastDescription": "Skip to the last song in the queue", - "slashSpecificDescription": "Skip to a specific position in the queue", "slashPositionDescription": "Song position in the queue", - "usage": "'{prefix}'skipto <{options} | number>", - "noPermission": "You don't have permission to use this command.", - "noSongPosition": "Unable to find a song in that position.", - "cantPlay": "You can't skip to current music.", - "skipMessage": "Skipped to **{song}**" + "slashSpecificDescription": "Skip to a specific position in the queue", + "usage": "'{prefix}'skipto <{options} | number>" }, "stayInQueue": { - "description": "Makes the bot stay in the voice channel when the queue has ended", - "slashDescription": "Turns mode for stay-in-voice feature", "247Disabled": "Stay-in-voice command is disabled.", "actualState": "Stay-in-voice is **`{state}`**", - "newState": "Stay-in-voice is now set to **`{state}`**" + "description": "Makes the bot stay in the voice channel when the queue has ended", + "newState": "Stay-in-voice is now set to **`{state}`**", + "slashDescription": "Turns mode for stay-in-voice feature" }, "stop": { "description": "Stop the music player", "stoppedMessage": "The music player has been stopped." }, "volume": { + "changeVolume": "To change the volume, provide volume number when using this command.", + "currentVolume": "The current volume is **`{volume}`**", "description": "Change the media player volume", + "newVolume": "Volume has been set to **`{volume}`**", + "plsPause": "Please pause the music instead of setting the volume to **`{volume}`**", "slashDescription": "New volume", "usage": "{prefix}volume [new volume]", - "currentVolume": "The current volume is **`{volume}`**", - "changeVolume": "To change the volume, provide volume number when using this command.", - "plsPause": "Please pause the music instead of setting the volume to **`{volume}`**", - "volumeLimit": "I can't set the volume above **`{maxVol}`**", - "newVolume": "Volume has been set to **`{volume}`**" + "volumeLimit": "I can't set the volume above **`{maxVol}`**" } } }, - "utils": { - "musicDecorator": { - "noQueue": "There is nothing playing.", - "noInVC": "Sorry, but you need to be in a voice channel to do that.", - "validVCJoinable": "Sorry, but I can't **`CONNECT`** to your voice channel, make sure I have the proper permissions.", - "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel; make sure I have the proper permissions.", - "sameVC": "You need to be in the same voice channel as mine." - }, - "generalHandler": { - "handleVideoInitial": "Added {length} songs to the queue", - "errorJoining": "Error while joining the voice channel, because: `{message}`", - "queueEnded": "Queue has ended, use **`{usage}`** to play more music.", - "leftVC": "Left from the voice channel because I've been inactive for too long.", - "startPlaying": "Started playing **{song}**", - "stopPlaying": "Stopped playing **{song}**", - "errorPlaying": "An error occurred while trying to play music, because: `{message}`" - }, - "cooldownMessage": "{author}, please wait **`{timeleft}`** of cooldown time." - }, "events": { "channelUpdate": { - "reconfigureConnection": "Voice channel region changed, re-configuring connection...", "connectionReconfigured": "Connection successfully re-configured.", + "reconfigureConnection": "Voice channel region changed, re-configuring connection...", "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted." }, "createInteraction": { @@ -337,23 +318,42 @@ }, "createMessage": "Hi {author}, my prefix is **`{prefix}`**", "voiceStateUpdate": { - "disconnectFromVCMessage": "Disconnected from the voice channel, the queue has been deleted.", - "reconfigureConnection": "Moved to a voice channel with a different region, re-configuring connection...", "connectionReconfigured": "Connection successfully re-configured.", - "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted.", - "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", - "unableJoinStageMessage": "Unable to join as Speaker, the queue has been deleted.", - "joinStageMessage": "Successfully joined the stage channel as Speaker.", "deleteQueue": "**`{duration}`** has been passed and there's no one who joined the voice channel, the queue has been deleted.", "deleteQueueFooter": "Queue Deleted", + "disconnectFromVCMessage": "Disconnected from the voice channel, the queue has been deleted.", + "joinStageMessage": "Successfully joined the stage channel as Speaker.", + "joiningAsSpeaker": "Moved to the stage channel, trying to join as Speaker...", "pauseQueue": "Everyone has left the voice channel. To save resources, the queue has been paused.\nIf no one joins the voice channel in the next **`{duration}`**, the queue will be deleted.", "pauseQueueFooter": "Queue Paused", + "reconfigureConnection": "Moved to a voice channel with a different region, re-configuring connection...", "resumeQueue": "Someone has joined the voice channel.\nResuming **{song}**", - "resumeQueueFooter": "Queue Resumed" + "resumeQueueFooter": "Queue Resumed", + "unableJoinStageMessage": "Unable to join as Speaker, the queue has been deleted.", + "unableReconfigureConnection": "Unable to re-configure connection, the queue has been deleted." } }, "reusable": { - "pageFooter": "Page {actual} of {total}", - "invalidUsage": "Invalid usage, please use **`{prefix} {name}`** for more information." + "invalidUsage": "Invalid usage, please use **`{prefix} {name}`** for more information.", + "pageFooter": "Page {actual} of {total}" + }, + "utils": { + "cooldownMessage": "{author}, please wait **`{timeleft}`** of cooldown time.", + "generalHandler": { + "errorJoining": "Error while joining the voice channel, because: `{message}`", + "errorPlaying": "An error occurred while trying to play music, because: `{message}`", + "handleVideoInitial": "Added {length} songs to the queue", + "leftVC": "Left from the voice channel because I've been inactive for too long.", + "queueEnded": "Queue has ended, use **`{usage}`** to play more music.", + "startPlaying": "Started playing **{song}**", + "stopPlaying": "Stopped playing **{song}**" + }, + "musicDecorator": { + "noInVC": "Sorry, but you need to be in a voice channel to do that.", + "noQueue": "There is nothing playing.", + "sameVC": "You need to be in the same voice channel as mine.", + "validVCJoinable": "Sorry, but I can't **`CONNECT`** to your voice channel, make sure I have the proper permissions.", + "validVCPermission": "Sorry, but I can't **`SPEAK`** in this voice channel; make sure I have the proper permissions." + } } } diff --git a/lang/es.json b/lang/es.json index d8f528a42..c8fe41fed 100644 --- a/lang/es.json +++ b/lang/es.json @@ -4,46 +4,46 @@ "categoryName": "DESARROLLADOR", "eval": { "description": "Evaluar al bot", - "usage": "{prefix}eval <código>", + "errorString": "Error", "noCode": "No se ingresó código.", "outputString": "Salida", - "errorString": "Error" + "usage": "{prefix}eval <código>" } }, "general": { - "categoryName": "GENERAL", "about": { - "description": "Muestra la información del bot", - "osUptimeString": "Tiempo de actividad del S.O.", - "processUptimeString": "Tiempo de actividad del proceso", + "aboutFooter": "Información del bot {botname}", "botUptimeString": "Tiempo de actividad del bot", - "nodeVersionString": "Versión de Node.js", + "botVersionString": "Versión del bot", + "description": "Muestra la información del bot", "discordJSVersionString": "Versión de Discord.js", "ffmpegVersionString": "Versión de FFmpeg", - "botVersionString": "Versión del bot", - "sourceCodeString": "Código Fuente", - "aboutFooter": "Información del bot {botname}" + "nodeVersionString": "Versión de Node.js", + "osUptimeString": "Tiempo de actividad del S.O.", + "processUptimeString": "Tiempo de actividad del proceso", + "sourceCodeString": "Código Fuente" }, + "categoryName": "GENERAL", "help": { - "description": "Muestra la lista de comandos o la información de un comando específico", - "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", - "usage": "{prefix}help [comando]", + "aliasesString": "Alias", "authorString": "Lista de comandos de {username}", - "footerString": "{prefix}help <comando> para obtener más información de un comando específico", - "noCommand": "No se puede encontrar el comando.", - "commandSelectionString": "Por favor selecciona un comando", - "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", "commandDetailTitle": "{username} - Información del comando {command}", - "nameString": "Nombre", + "commandSelectionString": "Por favor selecciona un comando", + "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}", + "description": "Muestra la lista de comandos o la información de un comando específico", "descriptionString": "Descripción", - "aliasesString": "Alias", - "usageString": "Uso", - "commandUsageFooter": "<> = requerido | [] = opcional {devOnly}" + "footerString": "{prefix}help <comando> para obtener más información de un comando específico", + "nameString": "Nombre", + "noCommanSuggest": "No se puede encontrar el comando. Quisiste decir este?", + "noCommand": "No se puede encontrar el comando.", + "slashDescription": "Nombre del comando para ver información específica acerca de dicho comando", + "usage": "{prefix}help [comando]", + "usageString": "Uso" }, "invite": { + "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor.", "description": "Obtén el enlace de invitación para el bot", - "inviteTitle": "{bot} - Enlace De Invitación", - "clickURL": "**[Haga click]({url})** aquí para invitar a este bot a su servidor." + "inviteTitle": "{bot} - Enlace De Invitación" }, "ping": { "description": "Muestra el ping actual del bot", @@ -51,284 +51,265 @@ } }, "moderation": { - "categoryName": "MODERACIÓN", - "common": { - "noUserSpecified": "Por favor especifica un usuario.", - "noReasonString": "[No especificado]", - "reasonString": "**Razón**" - }, "ban": { + "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", + "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor.", + "bannedByString": "Baneado por: {author}", + "botNoPermission": "Lo siento, pero no tengo el permiso **`BANEAR MIEMBROS`**.", "description": "Banea a alguien en el servidor", "slashMemberIDDescription": "¿A quién quisieras banear?", "slashReasonDescription": "Razón del ban", "usage": "{prefix}ban <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`BANEAR MIEMBROS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`BANEAR MIEMBROS`**.", - "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", "userBanned": "Haz sido **`BANEADO`** de **{guildName}**", - "bannedByString": "Baneado por: {author}", - "banFail": "No se pudo **`BANEAR`** al miembro, razón: `{message}`", - "banSuccess": "**{user}** ha sido **`BANEADO`** del servidor." + "userNoBannable": "Lo siento, no puedo **`BANEAR`** a ese miembro.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`BANEAR MIEMBROS`** para usar este comando." + }, + "categoryName": "MODERACIÓN", + "common": { + "noReasonString": "[No especificado]", + "noUserSpecified": "Por favor especifica un usuario.", + "reasonString": "**Razón**" }, "infractions": { "description": "Muestra las infracciones de un usuario", - "slashMemberDescription": "¿De quién quisieras ver las infracciones?", - "usage": "{prefix}infractions [@mención | id]", "embedAuthorText": "{user} - Infracciones", - "noInfractions": "No hay infracciones." + "noInfractions": "No hay infracciones.", + "slashMemberDescription": "¿De quién quisieras ver las infracciones?", + "usage": "{prefix}infractions [@mención | id]" }, "kick": { + "botNoPermission": "Lo siento, pero no tengo el permiso **`EXPULSAR MIEMBROS`**.", "description": "Expulsa a alguien del servidor", + "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", + "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor.", + "kickedByString": "Expulsado por: {author}", "slashMemberDescription": "¿A quién quisieras expulsar?", "slashReasonDescription": "Razón de expulsión", "usage": "{prefix}kick <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`EXPULSAR MIEMBROS`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`EXPULSAR MIEMBROS`**.", - "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", "userKicked": "Haz sido **`EXPULSADO`** de **{guildName}**", - "kickedByString": "Expulsado por: {author}", - "kickFail": "No se pudo **`EXPULSAR`** al miembro, razón: `{message}`", - "kickSuccess": "**{user}** ha sido **`EXPULSADO`** del servidor." + "userNoKickable": "Lo siento, no puedo **`EXPULSAR`** a ese miembro.", + "userNoPermission": "Lo siento, pero no tienes el permiso **`EXPULSAR MIEMBROS`** para usar este comando." }, "modlogs": { - "description": "Cambia los ajustes del registro de moderación", - "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", - "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", - "slashEnableDescription": "Activa el registro de moderación", - "slashDisableDescription": "Desactiva el registro de moderación", - "usage": "modlogs", "channel": { "current": "Canal de registro de moderación actual: <#{channel}>", - "noChannel": "El canal de registro de moderación aún no ha sido establecido.", "invalid": "Canal no válido, asegúrate que sea un canal de texto.", + "noChannel": "El canal de registro de moderación aún no ha sido establecido.", "success": "El canal de registro de moderación ha sido establecido: <#{channel}>" }, + "description": "Cambia los ajustes del registro de moderación", + "disable": "Registro de moderación está **`DESACTIVADO`**", "embedTitle": "Registro de Moderación", + "enable": "Registro de moderación está **`ACTIVADO`**", "newChannelText": "Nuevo canal", - "disable": "Registro de moderación está **`DESACTIVADO`**", - "enable": "Registro de moderación está **`ACTIVADO`**" + "slashChannelDescription": "Ver o cambiar el canal de registro de moderación", + "slashChannelNewChannelOption": "Nuevo canal para el registro de moderación", + "slashDisableDescription": "Desactiva el registro de moderación", + "slashEnableDescription": "Activa el registro de moderación", + "usage": "modlogs" }, "mute": { + "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", + "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR ROLES`**", + "cantMuteOwner": "No puedes **`SILENCIAR`** al propietario del servidor.", "description": "Silencia a alguien en el servidor", + "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", + "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor.", + "mutedByString": "Silenciado por: {author}", + "noRole": "El rol para usuario silenciado no ha sido establecido, por favor usa `{prefix}setmute` para establecerlo.", "slashMemberDescription": "¿A quién quisieras silenciar?", "slashReasonDescription": "Razón de silencio", "usage": "{prefix}mute <@mención | id> [razón]", - "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR ROLES`** para usar este comando.", - "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR ROLES`**", - "cantMuteOwner": "No puedes **`SILENCIAR`** al propietario del servidor.", - "noRole": "El rol para usuario silenciado no ha sido establecido, por favor usa `{prefix}setmute` para establecerlo.", - "alreadyMuted": "Ese miembro ya ha sido **`SILENCIADO`** previamente.", "userMuted": "Haz sido **`SILENCIADO`** en **{guildName}**", - "mutedByString": "Silenciado por: {author}", - "muteFail": "No se pudo **`SILENCIAR`** al miembro, razón: `{message}`", - "muteSuccess": "**{user}** ha sido **`SILENCIADO`** en el servidor." + "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR ROLES`** para usar este comando." }, "purge": { - "description": "Eliminar mensajes", - "slashAmountDescription": "Cantidad de mensajes a eliminar", - "usage": "{prefix}purge <monto>", - "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", "botNoPermission": "Lo siento, pero no tengo el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", + "description": "Eliminar mensajes", "invalidAmount": "Por favor, especifica un número válido de mensajes a borrar.", "purgeFail": "No se pudo **`BORRAR`** mensajes, razón: `{message}`", - "purgeSuccess": "**`{amount}`** mensaje(s) han sido **`BORRADOS`**" + "purgeSuccess": "**`{amount}`** mensaje(s) han sido **`BORRADOS`**", + "slashAmountDescription": "Cantidad de mensajes a eliminar", + "usage": "{prefix}purge <monto>", + "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR SERVIDOR`** para usar este comando." }, "setmute": { "description": "Establece el rol de usuario silencio", - "slashRoleDescription": "El rol a ser usado como usuario silenciado", - "usage": "{prefix}setmute <rol>", "invalidRole": "Rol no válido.", - "success": "<@&{role}> ha sido establecido como rol de usuario silenciado." + "slashRoleDescription": "El rol a ser usado como usuario silenciado", + "success": "<@&{role}> ha sido establecido como rol de usuario silenciado.", + "usage": "{prefix}setmute <rol>" }, "unban": { + "alreadyUnban": "Este usuario no está **`BANEADO`**", "description": "Desbanea a alguien del servidor", "slashMemberDescription": "¿A quién quisieras desbanear?", "slashReasonDescription": "Razón de desbaneo", - "usage": "{prefix}unban <id> [razón]", - "alreadyUnban": "Este usuario no está **`BANEADO`**", - "unbannedByString": "Desbaneado por: {author}", + "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor.", "unbanFail": "No se pudo **`DESBANEAR`** al miembro, razón: `{message}`", - "ubanSuccess": "**{user}** ha sido **`DESBANEADO`** del servidor." + "unbannedByString": "Desbaneado por: {author}", + "usage": "{prefix}unban <id> [razón]" }, "unmute": { "description": "Desilenciar a alguien del servidor", + "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", "slashMemberDescription": "¿A quién quisieras desilenciar?", "slashReasonDescription": "Razón del desilencio", - "usage": "{prefix}unmute <@mención | id> [razón]", - "noMuted": "Ese miembro no ha sido **`SILENCIADO`**", - "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**", - "unmutedByString": "Desilenciado por: {author}", "unmuteFail": "No se pudo **`DESILENCIAR`** al miembro, razón: `{message}`", - "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor." + "unmuteSuccess": "**{user}** ha sido **`DESILENCIADO`** en el servidor.", + "unmutedByString": "Desilenciado por: {author}", + "usage": "{prefix}unmute <@mención | id> [razón]", + "userUnmuted": "Haz sido **`DESILENCIADO`** en **{guildName}**" }, "warn": { "description": "Advierte a un miembro en el servidor", + "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", "slashMemberDescription": "¿A quién quisieras advertir?", "slashReasonDescription": "Razón de advertencia", "usage": "{prefix}warn <@mención | id> [razón]", "userNoPermission": "Lo siento, pero no tienes el permiso **`GESTIONAR SERVIDOR`** para usar este comando.", - "noDM": "No se pudo enviar advertencia al DM del usuario, pero igual ha sido advertido.", "userWarned": "Haz sido **`ADVERTIDO`** en **{guildName}**", - "warnedByString": "Advertido por: {author}", - "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor." + "warnSuccess": "**{user}** ha sido **`ADVERTIDO`** en el servidor.", + "warnedByString": "Advertido por: {author}" } }, "music": { "categoryName": "MÚSICA", "dj": { "description": "Cambia la configuración del DJ", - "slashRoleDescription": "Mira o cambia la configuración del rol DJ", - "slashRoleNewRoleOption": "Nuevo rol DJ", - "slashEnableDescription": "Activa la función DJ", - "slashDisableDescription": "Desactiva la función DJ", + "disable": "Desactivado", + "disableText": "La función DJ ha sido **`DESACTIVADA`**", + "embedTitle": "DJ", + "enable": "Activado", + "enableText": "La función DJ ha sido **`ACTIVADA`**", + "newRoleText": "Nuevo rol", "role": { "current": "<@&{role}> es el rol DJ actualmente.", - "noRole": "No hay rol DJ establecido actualmente, por favor usa `{prefix}dj role` para establecerlo.", "invalid": "Rol no válido.", + "noRole": "No hay rol DJ establecido actualmente, por favor usa `{prefix}dj role` para establecerlo.", "success": "<@&{role}> ha sido establecido como rol DJ." }, - "embedTitle": "DJ", - "newRoleText": "Nuevo rol", - "disableText": "La función DJ ha sido **`DESACTIVADA`**", - "enableText": "La función DJ ha sido **`ACTIVADA`**", - "disable": "Desactivado", - "enable": "Activado" + "slashDisableDescription": "Desactiva la función DJ", + "slashEnableDescription": "Activa la función DJ", + "slashRoleDescription": "Mira o cambia la configuración del rol DJ", + "slashRoleNewRoleOption": "Nuevo rol DJ" }, "lyrics": { + "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}", "description": "Muestra la letra de una canción", - "slashDescription": "Canción a buscar", - "usage": "{prefix}lyrics [canción]", "noQuery": "No se está reproduciendo nada o no se ingresaró ninguna canción a buscar.", - "apiError": "El API no pudo encontrar la letra de la canción **{song}**, razón: {message}" + "slashDescription": "Canción a buscar", + "usage": "{prefix}lyrics [canción]" }, "nowplaying": { "description": "Muestra la canción que se está reproduciendo", - "emptyQueue": "La cola está vacía.", - "disableButton": "Este botón ya no está activo y ha sido eliminado." + "disableButton": "Este botón ya no está activo y ha sido eliminado.", + "emptyQueue": "La cola está vacía." }, "pause": { - "description": "Pausa la reproducción de música", "alreadyPause": "El reproductor de música ya está en pausa.", + "description": "Pausa la reproducción de música", "pauseMessage": "Se ha pausado el reproductor de música." }, "play": { + "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", "description": "Reproduce algo de música", + "noSongData": "Este URL no tiene datos de canciones.", "slashQueryDescription": "Canción a reproducir", - "usage": "{prefix}play <consulta / url>", - "alreadyPlaying": "El reproductor de música ya está reproduciendo en el canal de voz **`{voiceChannel}`**.", - "noSongData": "Este URL no tiene datos de canciones." + "usage": "{prefix}play <consulta / url>" }, "queue": { "description": "Muestra la cola de reproducción" }, "remove": { "description": "Quita canciones de la cola", - "slashPositionsDescription": "Posición de la cancion(es) a quitar, separadas por comas o espacios", - "usage": "{prefix}remove <posiciones>", "noPermission": "No tienes permiso para usar este comando.", "noPositions": "Por favor, especifica una posición válida.", + "slashPositionsDescription": "Posición de la cancion(es) a quitar, separadas por comas o espacios", + "songSkip": "La canción actual ha sido saltada.\n\n", "songsRemoved": "Removida(s) {removed, plural, one {1 canción} other {# canciones}} de la cola", - "songSkip": "La canción actual ha sido saltada.\n\n" + "usage": "{prefix}remove <posiciones>" }, "repeat": { + "actualMode": "El modo de repetición actual es **`{mode}`**", "description": "Repite la canción actual o la cola completa", - "slashQueue": "Establece el mode repetición a **`COLA`**", - "slashSong": "Establece el mode repetición a **`UNA`**", "footer": "Para cambiar el modo, revisa '{prefix}help repeat'", + "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**", "slashDisable": "Desactiva el modo repetición", - "usage": "{prefix}repeat <{options}>", - "actualMode": "El modo de repetición actual es **`{mode}`**", - "newMode": "El modo de reproducción ha sido establecido a **`{mode}`**" + "slashQueue": "Establece el mode repetición a **`COLA`**", + "slashSong": "Establece el mode repetición a **`UNA`**", + "usage": "{prefix}repeat <{options}>" }, "resume": { - "description": "Reanuda el reproductor de música", "alreadyResume": "El reproductor de música no está en pausa.", + "description": "Reanuda el reproductor de música", "resumeMessage": "El reproductor de música ha sido reanudado." }, "search": { + "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", + "canceledMessage": "Selección de canciones cancelada.", "description": "Reproduce alguna canción usando una fuente específica", - "slashDescription": "Busca una canción específica", - "slashQueryDescription": "Canción a buscar", - "slashSourceDescription": "¿De dónde debería tomar la canción?", - "usage": "{prefix}search <canción> [fuente]", + "interactionContent": "Por favor selecciona una canción", + "interactionPlaceholder": "Por favor selecciona una canción", "noQuery": "Por favor ingresa alguna canción para buscar.", + "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", "noTracks": "No pude obtener resultados.", "queueEmbed": "Por favor selecciona la canción, puedes seleccionar más de una usando un espacio en blanco o {separator}.\n", + "slashDescription": "Busca una canción específica", + "slashQueryDescription": "Canción a buscar", + "slashSourceDescription": "¿De dónde debería tomar la canción?", "trackSelectionMessage": "Selección de canciones", - "cancelMessage": "Escribe {cancel} o c para cancelar la selección de música.", - "noSelection": "No se ingresó un valor o este fue inválido, búsqueda de canciones cancelada.", - "canceledMessage": "Selección de canciones cancelada.", - "interactionContent": "Por favor selecciona una canción", - "interactionPlaceholder": "Por favor selecciona una canción" + "usage": "{prefix}search <canción> [fuente]" }, "shuffle": { - "description": "Aleatoriza la cola", "actualState": "El modo aleatorio está **`{state}`**", + "description": "Aleatoriza la cola", "newState": "El modo aleatorio se estableció ahora a **`{state}`**" }, "skip": { "description": "Salta la canción actual", - "voteResultMessage": "{length}/{required} han votado para saltar la canción", - "skipMessage": "Se ha saltado **{song}**" + "skipMessage": "Se ha saltado **{song}**", + "voteResultMessage": "{length}/{required} han votado para saltar la canción" }, "skipTo": { + "cantPlay": "No puedes saltar la canción actual.", "description": "Salta a una posición específica de la cola", + "noPermission": "No tienes permiso para usar este comando.", + "noSongPosition": "No se pudo encontrar la canción en esta posición.", + "skipMessage": "Se ha saltado a **{song}**", "slashFirstDescription": "Regresa a la primera canción de la cola", "slashLastDescription": "Salta a la última canción de la cola", - "slashSpecificDescription": "Salta a una posición específica en la cola", "slashPositionDescription": "Posición de la canción en la cola", - "usage": "{prefix}skipto <{options} | número>", - "noPermission": "No tienes permiso para usar este comando.", - "noSongPosition": "No se pudo encontrar la canción en esta posición.", - "cantPlay": "No puedes saltar la canción actual.", - "skipMessage": "Se ha saltado a **{song}**" + "slashSpecificDescription": "Salta a una posición específica en la cola", + "usage": "{prefix}skipto <{options} | número>" }, "stayInQueue": { - "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", - "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`", "247Disabled": "La característica `Permanecer-Conectado` está desactivada.", "actualState": "`Permanecer-Conectado` está **`{state}`**", - "newState": "`Permanecer-Conectado` se estableció **`{state}`**" + "description": "Haz que el bot permanezca en el canal de voz cuando la cola termine", + "newState": "`Permanecer-Conectado` se estableció **`{state}`**", + "slashDescription": "Alterna el modo de la característica `Permanecer-Conectado`" }, "stop": { "description": "Para el reproductor de música", "stoppedMessage": "El reproductor de música se ha detenido." }, "volume": { + "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", + "currentVolume": "El volúmen actual es **`{volume}`**", "description": "Cambia el volúmen del reproductor de música", + "newVolume": "Volúmen establecido en **`{volume}`**", + "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", "slashDescription": "Nuevo volúmen", "usage": "{prefix}volume [volumen]", - "currentVolume": "El volúmen actual es **`{volume}`**", - "changeVolume": "Para cambiar el volúmen, ingresa un número usando este comando.", - "plsPause": "Por favor pausa la música en lugar de establecer el volúmen en **`{volume}`**", - "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**", - "newVolume": "Volúmen establecido en **`{volume}`**" + "volumeLimit": "No puedo establecer el volúmen por encima de **`{maxVol}`**" } } }, - "utils": { - "musicDecorator": { - "noQueue": "No se está reproduciendo nada.", - "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", - "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONECTAR`** en tu servidor.", - "validVCPermission": "Lo siento, pero no tengo el permiso **`HABLAR`** en tu servidor.", - "sameVC": "Necesitas estar en el mismo canal de voz que yo." - }, - "generalHandler": { - "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", - "errorJoining": "Error al unirse al canal de voz, razón: {message}", - "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", - "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", - "startPlaying": "Se empezó a reproducir **{song}**", - "stopPlaying": "Se detuvo la reproducción **{song}**", - "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}" - }, - "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso." - }, "events": { "channelUpdate": { - "reconfigureConnection": "Se ha cambiado la región del canal de voz, reconfigurando conexión...", "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", + "reconfigureConnection": "Se ha cambiado la región del canal de voz, reconfigurando conexión...", "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." }, "createInteraction": { @@ -338,22 +319,41 @@ "createMessage": "Hola {author}, mi prefix es **`{prefix}`**", "voiceStateUpdate": { "connectionReconfigured": "La conexión se ha reconfigurado con éxito.", - "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", - "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", - "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", - "joinStageMessage": "Me uní al canal escenario con éxito como orador.", "deleteQueue": "Ha pasado **`{duration}`** y nadie se ha unido al canal de voz, la cola ha sido eliminada.", "deleteQueueFooter": "Cola eliminada", + "disconnectFromVCMessage": "Desconectado del canal de voz, la cola ha sido eliminada.", + "joinStageMessage": "Me uní al canal escenario con éxito como orador.", + "joiningAsSpeaker": "Movido a un canal de escenario, intentando unirse como Orador...", "pauseQueue": "Todos han dejado el canal de voz. Para ahorrar recursos, se ha pausado la cola.\nSi nadie se une al canal de voz en **`{duration}`**, la cola se eliminará.", "pauseQueueFooter": "Cola pausada", "reconfigureConnection": "He sido movido a un canal de voz en una región diferente, reconfigurando conexión...", "resumeQueue": "Alguien se ha unido al canal de voz.\nReanudando **{song}**", "resumeQueueFooter": "Cola reanudada", + "unableJoinStageMessage": "No se pudo unir como orador, la cola ha sido eliminada.", "unableReconfigureConnection": "No se pudo reconfigurar la conexión, la cola ha sido eliminada." } }, "reusable": { - "pageFooter": "Página {actual} de {total}", - "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información." + "invalidUsage": "Uso inválido, por favor usa **`{prefix} {name}`** para más información.", + "pageFooter": "Página {actual} de {total}" + }, + "utils": { + "cooldownMessage": "{author}, por favor espera **`{timeleft}`** para poder hacer eso.", + "generalHandler": { + "errorJoining": "Error al unirse al canal de voz, razón: {message}", + "errorPlaying": "Ocurrió un error al tratar de reproducir música, razón: ${message}", + "handleVideoInitial": "Se han añadido {length} canciones a la cola\n\n", + "leftVC": "Dejando el canal de voz porque he estado inactivo mucho tiempo.", + "queueEnded": "La cola ha terminado, usa **`{usage}`** para reproducir más música.", + "startPlaying": "Se empezó a reproducir **{song}**", + "stopPlaying": "Se detuvo la reproducción **{song}**" + }, + "musicDecorator": { + "noInVC": "Lo siento, pero debes estar en un canal de voz para hacer eso.", + "noQueue": "No se está reproduciendo nada.", + "sameVC": "Necesitas estar en el mismo canal de voz que yo.", + "validVCJoinable": "Lo siento, pero no tengo el permiso **`CONECTAR`** en tu servidor.", + "validVCPermission": "Lo siento, pero no tengo el permiso **`HABLAR`** en tu servidor." + } } -} \ No newline at end of file +} diff --git a/lang/id.json b/lang/id.json index 80ceef519..cc9cfc44e 100644 --- a/lang/id.json +++ b/lang/id.json @@ -4,46 +4,46 @@ "categoryName": "PENGEMBANG", "eval": { "description": "Evaluasi kode", - "usage": "{prefix}eval <kode>", + "errorString": "Error", "noCode": "Tidak ada kode yang diberikan.", "outputString": "Output", - "errorString": "Error" + "usage": "{prefix}eval <kode>" } }, "general": { - "categoryName": "UMUM", "about": { - "description": "Menampilkan informasi bot", - "osUptimeString": "Uptime OS", - "processUptimeString": "Uptime Process", + "aboutFooter": "{botname} - Informasi Bot", "botUptimeString": "Uptime Bot", - "nodeVersionString": "Versi Node.js", + "botVersionString": "Versi Bot", + "description": "Menampilkan informasi bot", "discordJSVersionString": "Versi Discord.js", "ffmpegVersionString": "Versi FFmpeg", - "botVersionString": "Versi Bot", - "sourceCodeString": "Kode sumber", - "aboutFooter": "{botname} - Informasi Bot" + "nodeVersionString": "Versi Node.js", + "osUptimeString": "Uptime OS", + "processUptimeString": "Uptime Process", + "sourceCodeString": "Kode sumber" }, + "categoryName": "UMUM", "help": { - "description": "Menampilkan daftar perintah atau informasi tentang perintah tertentu", - "slashDescription": "Nama perintah untuk melihat informasi tentang perintah tertentu", - "usage": "{prefix}help [nama perintah]", + "aliasesString": "Alias", "authorString": "{username} - Daftar Perintah", - "footerString": "{prefix}help <perintah> untuk mendapatkan informasi tentang perintah tertentu", - "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut.", - "commandSelectionString": "Silahkan pilih perintah yang kamu tuju", - "noCommanSuggest": "Tidak dapat menemukan perintah dengan nama tersebut. Mungkin maksudmu ini?", "commandDetailTitle": "{username} - Informasi tentang perintah {command}", - "nameString": "Nama", + "commandSelectionString": "Silahkan pilih perintah yang kamu tuju", + "commandUsageFooter": "<> = dibutuhkan | [] = opsional {devOnly}", + "description": "Menampilkan daftar perintah atau informasi tentang perintah tertentu", "descriptionString": "Deskripsi", - "aliasesString": "Alias", - "usageString": "Penggunaan", - "commandUsageFooter": "<> = dibutuhkan | [] = opsional {devOnly}" + "footerString": "{prefix}help <perintah> untuk mendapatkan informasi tentang perintah tertentu", + "nameString": "Nama", + "noCommanSuggest": "Tidak dapat menemukan perintah dengan nama tersebut. Mungkin maksudmu ini?", + "noCommand": "Tidak dapat menemukan perintah dengan nama tersebut.", + "slashDescription": "Nama perintah untuk melihat informasi tentang perintah tertentu", + "usage": "{prefix}help [nama perintah]", + "usageString": "Penggunaan" }, "invite": { + "clickURL": "**[Klik disini]({url})** untung meng-invite bot ini ke server anda.", "description": "Dapatkan link invite untuk bot", - "inviteTitle": "{bot} - Link invite", - "clickURL": "**[Klik disini]({url})** untung meng-invite bot ini ke server anda." + "inviteTitle": "{bot} - Link invite" }, "ping": { "description": "Menunjukkan ping bot", @@ -51,283 +51,264 @@ } }, "moderation": { - "categoryName": "MODERASI", - "common": { - "noUserSpecified": "Mohon mention seseorang.", - "noReasonString": "[Tidak disebutkan]", - "reasonString": "**Alasan**" - }, "ban": { + "banFail": "Tidak dapat **`BAN`** member, dikarenakan: `{message}`", + "banSuccess": "**{user}** telah di **`BAN`** dari server ini.", + "bannedByString": "Di ban oleh: {author}", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`BAN MEMBERS`**.", "description": "Ban seseorang dari server", "slashMemberIDDescription": "Siapa yang ingin anda ban?", "slashReasonDescription": "Alasan ban", "usage": "{prefix}ban <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`BAN MEMBERS`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`BAN MEMBERS`**.", - "userNoBannable": "Mohon maaf, tetapi saya tidak dapat **`BAN`** kepada member tersebut.", "userBanned": "Anda telah di **`BAN`** dari **{guildName}**", - "bannedByString": "Di ban oleh: {author}", - "banFail": "Tidak dapat **`BAN`** member, dikarenakan: `{message}`", - "banSuccess": "**{user}** telah di **`BAN`** dari server ini." + "userNoBannable": "Mohon maaf, tetapi saya tidak dapat **`BAN`** kepada member tersebut.", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`BAN MEMBERS`** untuk menggunakan perintah ini." + }, + "categoryName": "MODERASI", + "common": { + "noReasonString": "[Tidak disebutkan]", + "noUserSpecified": "Mohon mention seseorang.", + "reasonString": "**Alasan**" }, "infractions": { "description": "Menampilkan pelanggaran seorang member", - "slashMemberDescription": "Siapa yang ingin anda lihat?", - "usage": "{prefix}infractions <@mention | id>", "embedAuthorText": "{user} - Pelanggaran", - "noInfractions": "Tidak ada pelanggaran." + "noInfractions": "Tidak ada pelanggaran.", + "slashMemberDescription": "Siapa yang ingin anda lihat?", + "usage": "{prefix}infractions <@mention | id>" }, "kick": { + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`KICK MEMBERS`**.", "description": "Kick seseorang dari server", + "kickFail": "Tidak dapat **`KICK`** member, dikarenakan: `{message}`", + "kickSuccess": "**{user}** telah di **`KICK`** dari server ini.", + "kickedByString": "Di kick oleh: {author}", "slashMemberDescription": "Siapa yang ingin anda kick?", "slashReasonDescription": "Alasan kick", "usage": "{prefix}kick <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`KICK MEMBERS`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`KICK MEMBERS`**.", - "userNoKickable": "Mohon maaf, tetapi saya tidak dapat **`KICK`** kepada member tersebut.", "userKicked": "Anda telah di **`KICK`** dari **{guildName}**", - "kickedByString": "Di kick oleh: {author}", - "kickFail": "Tidak dapat **`KICK`** member, dikarenakan: `{message}`", - "kickSuccess": "**{user}** telah di **`KICK`** dari server ini." + "userNoKickable": "Mohon maaf, tetapi saya tidak dapat **`KICK`** kepada member tersebut.", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`KICK MEMBERS`** untuk menggunakan perintah ini." }, "modlogs": { - "description": "Mengubah setelah fitur moderation logs", - "slashChannelDescription": "Lihat atau ubah channel moderation logs", - "slashChannelNewChannelOption": "Channel baru untuk moderation logs", - "slashEnableDescription": "Menyalakan fitur moderation logs", - "slashDisableDescription": "Mematikan fitur moderation logs", - "usage": "modlogs", "channel": { "current": "Channel moderation logs saat ini: <#{channel}>", - "noChannel": "Channel moderation logs belum ditentukan.", "invalid": "Channel tidak valid, channel harus berupa text channel.", + "noChannel": "Channel moderation logs belum ditentukan.", "success": "Channel moderation logs telah diubah menjadi <#{channel}>." }, + "description": "Mengubah setelah fitur moderation logs", + "disable": "Fitur moderation logs telah di **`MATIKAN`**.", "embedTitle": "Moderation Logs", + "enable": "Fitur moderation logs telah di **`NYALAKAN`**.", "newChannelText": "channel baru", - "disable": "Fitur moderation logs telah di **`MATIKAN`**.", - "enable": "Fitur moderation logs telah di **`NYALAKAN`**." + "slashChannelDescription": "Lihat atau ubah channel moderation logs", + "slashChannelNewChannelOption": "Channel baru untuk moderation logs", + "slashDisableDescription": "Mematikan fitur moderation logs", + "slashEnableDescription": "Menyalakan fitur moderation logs", + "usage": "modlogs" }, "mute": { + "alreadyMuted": "Member tersebut sedang di **`MUTE`**", + "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", + "cantMuteOwner": "Anda tidak bisa **`MUTE`** owner server.", "description": "Mute seseorang di server", + "muteFail": "Tidak dapat **`MUTE`** member, dikarenakan: `{message}`", + "muteSuccess": "**{user}** telah di **`MUTE`** di server ini.", + "mutedByString": "Di mute oleh: {author}", + "noRole": "Role untuk mute belum diatur, silahkan atur dengan perintah `{prefix}muterole`", "slashMemberDescription": "Siapa yang ingin anda mute?", "slashReasonDescription": "Alasan mute", "usage": "{prefix}mute <@mention | id> [alasan]", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini.", - "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE ROLES`**.", - "cantMuteOwner": "Anda tidak bisa **`MUTE`** owner server.", - "noRole": "Role untuk mute belum diatur, silahkan atur dengan perintah `{prefix}muterole`", - "alreadyMuted": "Member tersebut sedang di **`MUTE`**", "userMuted": "Anda telah di **`MUTE`** di **{guildName}**", - "mutedByString": "Di mute oleh: {author}", - "muteFail": "Tidak dapat **`MUTE`** member, dikarenakan: `{message}`", - "muteSuccess": "**{user}** telah di **`MUTE`** di server ini." + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE ROLES`** untuk menggunakan perintah ini." }, "purge": { - "description": "Hapus pesan", - "slashAmountDescription": "Jumlah pesan yang ingin dihapus", - "usage": "{prefix}purge <jumlah>", - "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE MESSAGES`** untuk menggunakan perintah ini.", "botNoPermission": "Mohon maaf, tetapi saya tidak memiliki izin **`MANAGE MESSAGES`**.", + "description": "Hapus pesan", "invalidAmount": "Mohon berikan jumlah yang benar.", "purgeFail": "Tidak dapat **`PURGE`** pesan, dikarenakan: `{message}`", - "purgeSuccess": "**`{amount}`** pesan telah di **`PURGE`**" + "purgeSuccess": "**`{amount}`** pesan telah di **`PURGE`**", + "slashAmountDescription": "Jumlah pesan yang ingin dihapus", + "usage": "{prefix}purge <jumlah>", + "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE MESSAGES`** untuk menggunakan perintah ini." }, "setmute": { "description": "Mengatur role mute", - "slashRoleDescription": "Role yang akan digunakan untuk mute", - "usage": "{prefix}setmute <role>", "invalidRole": "Role tidak valid.", - "success": "Role mute telah diubah menjadi <@&{role}>" + "slashRoleDescription": "Role yang akan digunakan untuk mute", + "success": "Role mute telah diubah menjadi <@&{role}>", + "usage": "{prefix}setmute <role>" }, "unban": { + "alreadyUnban": "Orang itu sedang tidak di **`BAN`**", "description": "Unban seseorang dari server", "slashMemberDescription": "Siapa yang ingin anda un-ban?", "slashReasonDescription": "Alasan un-ban", - "usage": "{prefix}unban <id> [alasan]", - "alreadyUnban": "Orang itu sedang tidak di **`BAN`**", + "ubanSuccess": "**{user}** telah di **`UN-BAN`** dari server ini.", "unbanFail": "Tidak dapat **`UN-BAN`** member, dikarenakan: `{message}`", - "ubanSuccess": "**{user}** telah di **`UN-BAN`** dari server ini." + "usage": "{prefix}unban <id> [alasan]" }, "unmute": { "description": "Unmute seseorang di server", + "noMuted": "Member tersebut sedang tidak di **`MUTE`**", "slashMemberDescription": "Siapa yang ingin anda un-mute?", "slashReasonDescription": "Alasan un-mute", - "usage": "{prefix}unmute <@mention | id> [alasan]", - "noMuted": "Member tersebut sedang tidak di **`MUTE`**", - "userUnmuted": "Anda telah di **`UN-MUTE`** di **{guildName}**", - "unmutedByString": "Di unmute oleh: {author}", "unmuteFail": "Tidak dapat **`UN-MUTE`** member, dikarenakan: `{message}`", - "unmuteSuccess": "**{user}** telah di **`UN-MUTE`** di server ini." + "unmuteSuccess": "**{user}** telah di **`UN-MUTE`** di server ini.", + "unmutedByString": "Di unmute oleh: {author}", + "usage": "{prefix}unmute <@mention | id> [alasan]", + "userUnmuted": "Anda telah di **`UN-MUTE`** di **{guildName}**" }, "warn": { "description": "Warn seseorang di server", + "noDM": "Tidak dapat membuka DM dengan pengguna tersebut, tetapi akan tetap saya warn.", "slashMemberDescription": "Siapa yang ingin anda warn?", "slashReasonDescription": "Alasan warn", "usage": "{prefix}warn <@mention | id> [alasan]", "userNoPermission": "Mohon maaf, tetapi anda tidak memiliki izin **`MANAGE SERVER`** untuk menggunakan perintah ini.", - "noDM": "Tidak dapat membuka DM dengan pengguna tersebut, tetapi akan tetap saya warn.", "userWarned": "Kamu telah di **`WARN`** di **{guildName}**", - "warnedByString": "Di warn oleh: {author}", - "warnSuccess": "**{user}** telah di **`WARN`** di server ini." + "warnSuccess": "**{user}** telah di **`WARN`** di server ini.", + "warnedByString": "Di warn oleh: {author}" } }, "music": { "categoryName": "MUSIK", "dj": { "description": "Mengubah pengaturan fitur DJ", - "slashRoleDescription": "Lihat atau ubah role DJ", - "slashRoleNewRoleOption": "Role baru untuk DJ", - "slashEnableDescription": "Menyalakan fitur DJ", - "slashDisableDescription": "Mematikan fitur DJ", + "disable": "Disabled", + "disableText": "Fitur DJ telah di **`MATIKAN`**", + "embedTitle": "Fitur DJ", + "enable": "Enabled", + "enableText": "Fitur DJ telah di **`NYALAKAN`**", + "newRoleText": "role baru", "role": { "current": "Role DJ saat ini: <@&{role}>", - "noRole": "Role DJ belum ditentukan, silahkan atur dengan perintah `{prefix}dj role`", "invalid": "Role tidak valid.", + "noRole": "Role DJ belum ditentukan, silahkan atur dengan perintah `{prefix}dj role`", "success": "Role DJ telah diubah menjadi <@&{role}>" }, - "embedTitle": "Fitur DJ", - "newRoleText": "role baru", - "disableText": "Fitur DJ telah di **`MATIKAN`**", - "enableText": "Fitur DJ telah di **`NYALAKAN`**", - "disable": "Disabled", - "enable": "Enabled" + "slashDisableDescription": "Mematikan fitur DJ", + "slashEnableDescription": "Menyalakan fitur DJ", + "slashRoleDescription": "Lihat atau ubah role DJ", + "slashRoleNewRoleOption": "Role baru untuk DJ" }, "lyrics": { + "apiError": "Tidak dapat menemukan lagu **{song}**, dikarenakan: `{message}`", "description": "Menampilkan lirik lagu", - "slashDescription": "Judul lagu untuk dicari", - "usage": "{prefix}lyrics [song]", "noQuery": "Tidak ada yang sedang dimainkan atau tidak ada argumen yang diberikan.", - "apiError": "Tidak dapat menemukan lagu **{song}**, dikarenakan: `{message}`" + "slashDescription": "Judul lagu untuk dicari", + "usage": "{prefix}lyrics [song]" }, "nowplaying": { "description": "Menunjukkan status media player", - "emptyQueue": "Antrian sedang kosong.", - "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus." + "disableButton": "Tombol-tombol ini sudah tidak lagi aktif dan terhapus.", + "emptyQueue": "Antrian sedang kosong." }, "pause": { - "description": "Menjeda media player", "alreadyPause": "Media player sedang dijeda.", + "description": "Menjeda media player", "pauseMessage": "Media player telah dijeda." }, "play": { + "alreadyPlaying": "Media player sedang memainkan lagu di channel **`{voiceChannel}`**.", "description": "Memainkan beberapa lagu", + "noSongData": "Link tersebut tidak memiliki data lagu.", "slashQueryDescription": "Kata pencarian", - "usage": "{prefix}play <kata pencarian / link>", - "alreadyPlaying": "Media player sedang memainkan lagu di channel **`{voiceChannel}`**.", - "noSongData": "Link tersebut tidak memiliki data lagu." + "usage": "{prefix}play <kata pencarian / link>" }, "queue": { "description": "Menunjukkan daftar antrian" }, "remove": { "description": "Hapus lagu dari antrian", - "slashPositionsDescription": "Posisi lagu yang ingin dihapus (dipisahkan dengan koma atau spasi)", - "usage": "{prefix}remove <posisi>", "noPermission": "Anda tidak memiliki izin untuk menggunakan command ini.", "noPositions": "Mohon berikan posisi lagu yang ingin dihapus.", + "slashPositionsDescription": "Posisi lagu yang ingin dihapus (dipisahkan dengan koma atau spasi)", + "songSkip": "Lagu yang sedang dimainkan ikut terhapus, melewatkan lagu.", "songsRemoved": "{removed} lagu dihapus dari antrian\n\n", - "songSkip": "Lagu yang sedang dimainkan ikut terhapus, melewatkan lagu." + "usage": "{prefix}remove <posisi>" }, "repeat": { + "actualMode": "Mode pengulangan: **`{mode}`**", "description": "Mengulang lagu yang sedang dimainkan atau setelahnya", + "footer": "Untuk mengubah mode, lihat {prefix}help repeat", + "newMode": "Mode pengulangan telah diatur ke **`{mode}`**", + "slashDisable": "Mematikan mode pengulangan", "slashQueue": "Mengatur mode pengulangan ke **`QUEUE`**", "slashSong": "Mengatur mode pengulangan ke **`SONG`**", - "slashDisable": "Mematikan mode pengulangan", - "usage": "{prefix}repeat <{opsi}>", - "actualMode": "Mode pengulangan: **`{mode}`**", - "footer": "Untuk mengubah mode, lihat {prefix}help repeat", - "newMode": "Mode pengulangan telah diatur ke **`{mode}`**" + "usage": "{prefix}repeat <{opsi}>" }, "resume": { - "description": "Melanjutkan media player", "alreadyResume": "Media player sedang tidak dijeda.", + "description": "Melanjutkan media player", "resumeMessage": "Media player telah dilanjutkan." }, "search": { + "cancelMessage": "Ketik {cancel} atau c untuk membatalkan pemilihan lagu.", + "canceledMessage": "Pemilihan lagu dibatalkan.", "description": "Memainkan beberapa lagu dengan kata pencarian yang diberikan", - "slashDescription": "Mencari lagu yang diberikan", - "slashQueryDescription": "Kata pencarian", - "slashSourceDescription": "Dari mana lagu harus di ambil?", - "usage": "{prefix}search <kata pencarian> [sumber]", + "interactionContent": "Silahkan pilih beberapa lagu", + "interactionPlaceholder": "Silahkan pilih beberapa lagu", "noQuery": "Mohon berikan kata pencarian untuk dicari.", + "noSelection": "Angka yang diberikan tidak valid, pemilihan lagu dibatalkan.", "noTracks": "Saya tidak dapat menemukan hasil pencarian.", "queueEmbed": "Silahkan pilih beberapa lagu, kamu bisa memilih lebih dari satu menggunakan spasi atau {separator}.\n", + "slashDescription": "Mencari lagu yang diberikan", + "slashQueryDescription": "Kata pencarian", + "slashSourceDescription": "Dari mana lagu harus di ambil?", "trackSelectionMessage": "Pemilihan lagu", - "cancelMessage": "Ketik {cancel} atau c untuk membatalkan pemilihan lagu.", - "noSelection": "Angka yang diberikan tidak valid, pemilihan lagu dibatalkan.", - "canceledMessage": "Pemilihan lagu dibatalkan.", - "interactionContent": "Silahkan pilih beberapa lagu", - "interactionPlaceholder": "Silahkan pilih beberapa lagu" + "usage": "{prefix}search <kata pencarian> [sumber]" }, "shuffle": { - "description": "Acak antrian", "actualState": "Mode acak saat ini adalah **`{state}`**", + "description": "Acak antrian", "newState": "Mode acak telah diatur ke **`{state}`**" }, "skip": { "description": "Lewatkan lagu", - "voteResultMessage": "{length}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan", - "skipMessage": "**{song}** dilewatkan" + "skipMessage": "**{song}** dilewatkan", + "voteResultMessage": "{length}/{required} telah vote untuk melewatkan lagu yang sedang dimainkan" }, "skipTo": { + "cantPlay": "Tidak dapat melompat ke lagu yang sedang dimainkan.", "description": "Lompat ke posisi tertentu pada antrian", + "noPermission": "Kamu tidak dapat menggunakan perintah ini.", + "noSongPosition": "Tidak dapat mencari lagu pada posisi tersebut.", + "skipMessage": "Melompat ke lagu **{song}**", "slashFirstDescription": "Mundur ke lagu pertama pada antrian", "slashLastDescription": "Lompat ke lagu terakhir pada antrian", - "slashSpecificDescription": "Lompat ke posisi tertentu pada antrian", "slashPositionDescription": "Posisi lagu pada antrian", - "usage": "{prefix}skipto <{options} | angka>", - "noPermission": "Kamu tidak dapat menggunakan perintah ini.", - "noSongPosition": "Tidak dapat mencari lagu pada posisi tersebut.", - "cantPlay": "Tidak dapat melompat ke lagu yang sedang dimainkan.", - "skipMessage": "Melompat ke lagu **{song}**" + "slashSpecificDescription": "Lompat ke posisi tertentu pada antrian", + "usage": "{prefix}skipto <{options} | angka>" }, "stayInQueue": { - "description": "Membuat bot menetap di voice channel saat antrian lagu sudah berakhir", - "slashDescription": "Mengganti mode fitur Stay-in-voice", "247Disabled": "Perintah Stay-in-voice dimatikan.", "actualState": "Stay-in-voice: **{state}**", - "newState": "Stay-in-voice telah diatur ke **{state}**" + "description": "Membuat bot menetap di voice channel saat antrian lagu sudah berakhir", + "newState": "Stay-in-voice telah diatur ke **{state}**", + "slashDescription": "Mengganti mode fitur Stay-in-voice" }, "stop": { "description": "Menghentikan media player", "stoppedMessage": "Media player telah dihentikan." }, "volume": { + "changeVolume": "Untuk mengganti volume, berikan angka volume baru saat menggunakan perintah ini.", + "currentVolume": "Volume saat ini adalah **`{volume}`**", "description": "Mengganti volume media player", + "newVolume": "Volume diatur ke **`{volume}`**", + "plsPause": "Mohon menjeda media player nya saja daripada mengatur volume ke **`{volume}`**", "slashDescription": "Volume baru", "usage": "{prefix}volume [volume baru]", - "currentVolume": "Volume saat ini adalah **`{volume}`**", - "changeVolume": "Untuk mengganti volume, berikan angka volume baru saat menggunakan perintah ini.", - "plsPause": "Mohon menjeda media player nya saja daripada mengatur volume ke **`{volume}`**", - "volumeLimit": "Saya tidak dapat mengatur volume di atas **`{maxVol}`**", - "newVolume": "Volume diatur ke **`{volume}`**" + "volumeLimit": "Saya tidak dapat mengatur volume di atas **`{maxVol}`**" } } }, - "utils": { - "musicDecorator": { - "noQueue": "Antrian media player sedang kosong.", - "noInVC": "Mohon maaf, tetapi anda harus berada di sebuah voice channel untuk melakukannya.", - "validVCJoinable": "Mohon maaf, tetapi saya tidak dapat **`CONNECT`** ke voice channel anda, pastikan saya memiliki izin yang tepat.", - "validVCPermission": "Mohon maaf, tetapi saya tidak dapat **`SPEAK`** di voice channel, pastikan saya memiliki izin yang tepat.", - "sameVC": "Anda harus berada di voice channel yang sama dengan saya." - }, - "generalHandler": { - "handleVideoInitial": "{length} lagu telah ditambahkan ke antrian\n\n", - "errorJoining": "Error saat memasuki voice channel, dikarenakan: `{message}`", - "queueEnded": "Antrian sudah berakhir, gunakan **{usage}** untuk memainkan lagu lagi.", - "leftVC": "Keluar dari voice channel karena tidak ada lagi aktivitas.", - "startPlaying": "Mulai memainkan **{song}**", - "stopPlaying": "Selesai memainkan **{song}**", - "errorPlaying": "Sebuah error terjadi saat mencoba memainkan lagu, dikarenakan: `{message}`" - }, - "cooldownMessage": "{author}, mohon tunggu selama **`{timeleft}`** detik." - }, "events": { "channelUpdate": { - "reconfigureConnection": "Region voice channel telah diganti, melakukan konfigurasi koneksi...", "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", + "reconfigureConnection": "Region voice channel telah diganti, melakukan konfigurasi koneksi...", "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus." }, "createInteraction": { @@ -336,23 +317,42 @@ }, "createMessage": "Hai {author}, prefix-ku adalah **`{prefix}`**", "voiceStateUpdate": { - "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", - "reconfigureConnection": "Dipindahkan ke voice channel dengan region yang berbeda, melakukan konfigurasi koneksi...", "connectionReconfigured": "Koneksi berhasil ter-konfigurasi.", - "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus.", - "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", - "unableJoinStageMessage": "Tidak dapat bergabung sebagai Speaker, antrian telah dihapus.", - "joinStageMessage": "Berhasil bergabung ke stage channel sebagai Speaker.", "deleteQueue": "**`{duration}`** telah berlalu dan belum ada yang memasuki voice channel, antrian telah dihapus.", "deleteQueueFooter": "Antrian dihapus", + "disconnectFromVCMessage": "Terputus dari voice channel, antrian telah dihapus.", + "joinStageMessage": "Berhasil bergabung ke stage channel sebagai Speaker.", + "joiningAsSpeaker": "Dipindahkan ke stage channel, mencoba bergabung sebagai Speaker...", "pauseQueue": "Semua orang telah keluar dari voice channel. Untuk menyimpan penggunaan, antrian telah dijeda.\nJika masih tidak ada yang memasuki voice channel dalam **`{duration}`**, antrian akan dihapus.", "pauseQueueFooter": "Antrian dijeda", + "reconfigureConnection": "Dipindahkan ke voice channel dengan region yang berbeda, melakukan konfigurasi koneksi...", "resumeQueue": "Seseorang telah memasuki voice channel.\nMelanjutkan **{song}**", - "resumeQueueFooter": "Antrian dilanjutkan" + "resumeQueueFooter": "Antrian dilanjutkan", + "unableJoinStageMessage": "Tidak dapat bergabung sebagai Speaker, antrian telah dihapus.", + "unableReconfigureConnection": "Tidak dapat melakukan konfigurasi koneksi, antrian telah dihapus." } }, "reusable": { - "pageFooter": "Halaman {actual} dari {total}", - "invalidUsage": "Penggunaan tidak valid, gunakan **`{prefix} {name}`** untuk informasi lebih lanjut." + "invalidUsage": "Penggunaan tidak valid, gunakan **`{prefix} {name}`** untuk informasi lebih lanjut.", + "pageFooter": "Halaman {actual} dari {total}" + }, + "utils": { + "cooldownMessage": "{author}, mohon tunggu selama **`{timeleft}`** detik.", + "generalHandler": { + "errorJoining": "Error saat memasuki voice channel, dikarenakan: `{message}`", + "errorPlaying": "Sebuah error terjadi saat mencoba memainkan lagu, dikarenakan: `{message}`", + "handleVideoInitial": "{length} lagu telah ditambahkan ke antrian\n\n", + "leftVC": "Keluar dari voice channel karena tidak ada lagi aktivitas.", + "queueEnded": "Antrian sudah berakhir, gunakan **{usage}** untuk memainkan lagu lagi.", + "startPlaying": "Mulai memainkan **{song}**", + "stopPlaying": "Selesai memainkan **{song}**" + }, + "musicDecorator": { + "noInVC": "Mohon maaf, tetapi anda harus berada di sebuah voice channel untuk melakukannya.", + "noQueue": "Antrian media player sedang kosong.", + "sameVC": "Anda harus berada di voice channel yang sama dengan saya.", + "validVCJoinable": "Mohon maaf, tetapi saya tidak dapat **`CONNECT`** ke voice channel anda, pastikan saya memiliki izin yang tepat.", + "validVCPermission": "Mohon maaf, tetapi saya tidak dapat **`SPEAK`** di voice channel, pastikan saya memiliki izin yang tepat." + } } } From 383bb62fc9cdd941d99c1b8a7ef689db0d738df5 Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 28 May 2022 12:12:13 +0700 Subject: [PATCH 409/411] chore(tsconfig): change moduleResolution --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 7788550be..86752a7ea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "ES2021", "module": "ESNext", - "moduleResolution": "Node", + "moduleResolution": "node", "lib": ["ES2021"], "strict": true, "outDir": "dist", From b913cea2da6e0870c13611007ef1b0aa96d57900 Mon Sep 17 00:00:00 2001 From: Orchit07 <orchitiadi@gmail.com> Date: Sat, 28 May 2022 13:17:24 +0700 Subject: [PATCH 410/411] chore(*): prettier --- package-lock.json | 8848 +++++++++-------- package.json | 153 +- src/bot.ts | 10 +- src/commands/developers/EvalCommand.ts | 46 +- src/commands/general/AboutCommand.ts | 17 +- src/commands/general/HelpCommand.ts | 168 +- src/commands/general/InviteCommand.ts | 27 +- src/commands/general/PingCommand.ts | 33 +- src/commands/moderation/BanCommand.ts | 46 +- src/commands/moderation/InfractionsCommand.ts | 49 +- src/commands/moderation/KickCommand.ts | 55 +- src/commands/moderation/ModLogsCommand.ts | 66 +- src/commands/moderation/MuteCommand.ts | 48 +- src/commands/moderation/PurgeCommand.ts | 26 +- src/commands/moderation/SetMuteCommand.ts | 8 +- src/commands/moderation/UnBanCommand.ts | 33 +- src/commands/moderation/UnMuteCommand.ts | 77 +- src/commands/moderation/WarnCommand.ts | 24 +- src/commands/music/DJCommand.ts | 68 +- src/commands/music/LyricsCommand.ts | 43 +- src/commands/music/NowPlayingCommand.ts | 127 +- src/commands/music/PlayCommand.ts | 46 +- src/commands/music/QueueCommand.ts | 32 +- src/commands/music/RemoveCommand.ts | 57 +- src/commands/music/RepeatCommand.ts | 46 +- src/commands/music/SearchCommand.ts | 138 +- src/commands/music/ShuffleCommand.ts | 24 +- src/commands/music/SkipCommand.ts | 39 +- src/commands/music/SkipToCommand.ts | 42 +- src/commands/music/StayInQueueCommand.ts | 25 +- src/commands/music/VolumeCommand.ts | 45 +- src/config/env.ts | 9 +- src/config/index.ts | 6 +- src/events/ChannelUpdateEvent.ts | 17 +- src/events/InteractionCreateEvent.ts | 62 +- src/events/MessageCreateEvent.ts | 27 +- src/events/ReadyEvent.ts | 22 +- src/events/VoiceStateUpdateEvent.ts | 116 +- src/index.ts | 19 +- src/structures/CommandContext.ts | 115 +- src/structures/Rawon.ts | 4 +- src/structures/ServerQueue.ts | 147 +- src/typings/index.d.ts | 31 +- src/utils/decorators/Command.ts | 10 +- src/utils/decorators/CommonUtil.ts | 8 +- src/utils/decorators/Event.ts | 10 +- src/utils/decorators/MusicUtil.ts | 20 +- src/utils/decorators/createMethodDecorator.ts | 5 +- src/utils/functions/createEmbed.ts | 3 +- src/utils/functions/createTable.ts | 23 +- src/utils/functions/parseEnvValue.ts | 19 +- src/utils/functions/parseHTMLElements.ts | 2 +- src/utils/handlers/SpotifyUtil.ts | 24 +- src/utils/handlers/YTDLUtil.ts | 3 +- src/utils/handlers/general/checkQuery.ts | 13 +- src/utils/handlers/general/handleVideos.ts | 60 +- src/utils/handlers/general/play.ts | 59 +- src/utils/handlers/general/searchTrack.ts | 208 +- src/utils/structures/ButtonPagination.ts | 75 +- src/utils/structures/ClientUtils.ts | 58 +- src/utils/structures/CommandManager.ts | 165 +- src/utils/structures/ModerationLogs.ts | 37 +- src/utils/structures/OperationManager.ts | 7 +- src/utils/structures/SongManager.ts | 16 +- 64 files changed, 6306 insertions(+), 5560 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97b3baf94..803d2e20e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4373 +1,4479 @@ { - "name": "rawon", - "version": "3.0.0-dev", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "rawon", - "version": "3.0.0-dev", - "license": "BSD-3-Clause", - "dependencies": { - "@discordjs/voice": "0.9.0", - "@swc/cli": "0.1.57", - "@swc/core": "1.2.194", - "date-fns": "2.28.0", - "discord.js": "13.7.0", - "dotenv": "16.0.1", - "got": "12.1.0", - "i18n": "0.15.0", - "opusscript": "0.0.8", - "prism-media": "1.3.2", - "soundcloud.ts": "0.4.6", - "tslib": "2.4.0", - "tweetnacl": "1.0.3", - "youtubei": "0.0.1-rc.35" - }, - "devDependencies": { - "@clytage-pkg/eslint-config": "1.1.0", - "@types/i18n": "0.13.2", - "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.26.0", - "@typescript-eslint/parser": "5.26.0", - "eslint": "8.16.0", - "rimraf": "^3.0.2", - "typescript": "4.7.2" - }, - "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" - }, - "optionalDependencies": { - "play-dl": "^1.9.4" - } - }, - "node_modules/@clytage-pkg/eslint-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", - "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", - "dev": true, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5.26.0", - "@typescript-eslint/parser": ">=5.26.0", - "eslint": ">=8.16.0", - "typescript": ">=3.3.1 <4.7.3" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "@typescript-eslint/parser": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@discordjs/builders": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", - "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", - "dependencies": { - "@sapphire/shapeshift": "^2.0.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.31.1", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", - "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" - }, - "node_modules/@discordjs/collection": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", - "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==", - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/voice": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", - "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", - "dependencies": { - "@types/ws": "^8.5.3", - "discord-api-types": "^0.29.0", - "prism-media": "^1.3.2", - "tiny-typed-emitter": "^2.1.0", - "tslib": "^2.3.1", - "ws": "^8.5.0" - }, - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@messageformat/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", - "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", - "dependencies": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", - "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" - }, - "node_modules/@messageformat/number-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", - "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" - }, - "node_modules/@messageformat/parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", - "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", - "dependencies": { - "moo": "^0.5.1" - } - }, - "node_modules/@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "dependencies": { - "make-plural": "^7.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/shapeshift": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", - "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==", - "engines": { - "node": ">=v15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@swc/cli": { - "version": "0.1.57", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", - "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", - "dependencies": { - "commander": "^7.1.0", - "fast-glob": "^3.2.5", - "slash": "3.0.0", - "source-map": "^0.7.3" - }, - "bin": { - "spack": "bin/spack.js", - "swc": "bin/swc.js" - }, - "engines": { - "node": ">= 12.13" - }, - "peerDependencies": { - "@swc/core": "^1.2.66", - "chokidar": "^3.5.1" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@swc/core": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", - "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", - "bin": { - "swcx": "run_swcx.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.194", - "@swc/core-android-arm64": "1.2.194", - "@swc/core-darwin-arm64": "1.2.194", - "@swc/core-darwin-x64": "1.2.194", - "@swc/core-freebsd-x64": "1.2.194", - "@swc/core-linux-arm-gnueabihf": "1.2.194", - "@swc/core-linux-arm64-gnu": "1.2.194", - "@swc/core-linux-arm64-musl": "1.2.194", - "@swc/core-linux-x64-gnu": "1.2.194", - "@swc/core-linux-x64-musl": "1.2.194", - "@swc/core-win32-arm64-msvc": "1.2.194", - "@swc/core-win32-ia32-msvc": "1.2.194", - "@swc/core-win32-x64-msvc": "1.2.194" - } - }, - "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", - "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-android-arm64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", - "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", - "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", - "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", - "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", - "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", - "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", - "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", - "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", - "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", - "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", - "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", - "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "node_modules/@types/i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", - "dev": true - }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", - "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", - "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/type-utils": "5.26.0", - "@typescript-eslint/utils": "5.26.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", - "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/typescript-estree": "5.26.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", - "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/visitor-keys": "5.26.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", - "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.26.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", - "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", - "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/visitor-keys": "5.26.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", - "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/typescript-estree": "5.26.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", - "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.26.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/audioconcat": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", - "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", - "dependencies": { - "fluent-ffmpeg": "^2.0.0", - "lodash.merge": "^4.6.2" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-lookup": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", - "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "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", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - }, - "node_modules/discord.js": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", - "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", - "dependencies": { - "@discordjs/builders": "^0.13.0", - "@discordjs/collection": "^0.6.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", - "@types/ws": "^8.5.3", - "discord-api-types": "^0.30.0", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.6.0" - }, - "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" - } - }, - "node_modules/discord.js/node_modules/discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "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": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-printf": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", - "dependencies": { - "boolean": "^3.1.4" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/fluent-ffmpeg": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", - "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", - "dependencies": { - "async": ">=0.2.9", - "which": "^1.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fluent-ffmpeg/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "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", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http2-wrapper": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", - "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/i18n": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", - "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", - "dependencies": { - "@messageformat/core": "^3.0.0", - "debug": "^4.3.3", - "fast-printf": "^1.6.9", - "make-plural": "^7.0.0", - "math-interval-parser": "^2.0.1", - "mustache": "^4.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/mashpie" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/keyv": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", - "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", - "dependencies": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "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", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-plural": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", - "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" - }, - "node_modules/math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/opusscript": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", - "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/play-audio": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", - "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", - "optional": true - }, - "node_modules/play-dl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", - "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", - "optional": true, - "dependencies": { - "play-audio": "^0.5.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prism-media": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", - "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", - "peerDependencies": { - "@discordjs/opus": "^0.5.0", - "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", - "node-opus": "^0.3.3", - "opusscript": "^0.0.8" - }, - "peerDependenciesMeta": { - "@discordjs/opus": { - "optional": true - }, - "ffmpeg-static": { - "optional": true - }, - "node-opus": { - "optional": true - }, - "opusscript": { - "optional": true - } - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/soundcloud.ts": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", - "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", - "dependencies": { - "audioconcat": "^0.1.4", - "axios": "^0.21.1" - } - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/ts-mixer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", - "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", - "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/youtubei": { - "version": "0.0.1-rc.35", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", - "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" - } - }, - "dependencies": { - "@clytage-pkg/eslint-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", - "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", - "dev": true, - "requires": {} - }, - "@discordjs/builders": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", - "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", - "requires": { - "@sapphire/shapeshift": "^2.0.0", - "@sindresorhus/is": "^4.6.0", - "discord-api-types": "^0.31.1", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.1", - "tslib": "^2.3.1" - }, - "dependencies": { - "discord-api-types": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", - "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" - } - } - }, - "@discordjs/collection": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", - "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==" - }, - "@discordjs/voice": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", - "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", - "requires": { - "@types/ws": "^8.5.3", - "discord-api-types": "^0.29.0", - "prism-media": "^1.3.2", - "tiny-typed-emitter": "^2.1.0", - "tslib": "^2.3.1", - "ws": "^8.5.0" - } - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@messageformat/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", - "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", - "requires": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.0.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "@messageformat/date-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", - "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" - }, - "@messageformat/number-skeleton": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", - "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" - }, - "@messageformat/parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", - "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", - "requires": { - "moo": "^0.5.1" - } - }, - "@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "requires": { - "make-plural": "^7.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sapphire/async-queue": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", - "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" - }, - "@sapphire/shapeshift": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", - "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==" - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" - }, - "@swc/cli": { - "version": "0.1.57", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", - "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", - "requires": { - "commander": "^7.1.0", - "fast-glob": "^3.2.5", - "slash": "3.0.0", - "source-map": "^0.7.3" - } - }, - "@swc/core": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", - "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", - "requires": { - "@swc/core-android-arm-eabi": "1.2.194", - "@swc/core-android-arm64": "1.2.194", - "@swc/core-darwin-arm64": "1.2.194", - "@swc/core-darwin-x64": "1.2.194", - "@swc/core-freebsd-x64": "1.2.194", - "@swc/core-linux-arm-gnueabihf": "1.2.194", - "@swc/core-linux-arm64-gnu": "1.2.194", - "@swc/core-linux-arm64-musl": "1.2.194", - "@swc/core-linux-x64-gnu": "1.2.194", - "@swc/core-linux-x64-musl": "1.2.194", - "@swc/core-win32-arm64-msvc": "1.2.194", - "@swc/core-win32-ia32-msvc": "1.2.194", - "@swc/core-win32-x64-msvc": "1.2.194" - } - }, - "@swc/core-android-arm-eabi": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", - "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", - "optional": true - }, - "@swc/core-android-arm64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", - "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", - "optional": true - }, - "@swc/core-darwin-arm64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", - "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", - "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", - "optional": true - }, - "@swc/core-freebsd-x64": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", - "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", - "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", - "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", - "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", - "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", - "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", - "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", - "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", - "optional": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.2.194", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", - "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", - "optional": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", - "dev": true - }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", - "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" - }, - "@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", - "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/type-utils": "5.26.0", - "@typescript-eslint/utils": "5.26.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", - "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/typescript-estree": "5.26.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", - "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/visitor-keys": "5.26.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", - "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.26.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", - "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", - "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/visitor-keys": "5.26.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", - "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.26.0", - "@typescript-eslint/types": "5.26.0", - "@typescript-eslint/typescript-estree": "5.26.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", - "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.26.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "audioconcat": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", - "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", - "requires": { - "fluent-ffmpeg": "^2.0.0", - "lodash.merge": "^4.6.2" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "cacheable-lookup": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", - "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "discord-api-types": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", - "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" - }, - "discord.js": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", - "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", - "requires": { - "@discordjs/builders": "^0.13.0", - "@discordjs/collection": "^0.6.0", - "@sapphire/async-queue": "^1.3.1", - "@types/node-fetch": "^2.6.1", - "@types/ws": "^8.5.3", - "discord-api-types": "^0.30.0", - "form-data": "^4.0.0", - "node-fetch": "^2.6.1", - "ws": "^8.6.0" - }, - "dependencies": { - "discord-api-types": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", - "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" - } - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "requires": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-printf": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", - "requires": { - "boolean": "^3.1.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "fluent-ffmpeg": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", - "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", - "requires": { - "async": ">=0.2.9", - "which": "^1.1.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http2-wrapper": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", - "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "i18n": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", - "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", - "requires": { - "@messageformat/core": "^3.0.0", - "debug": "^4.3.3", - "fast-printf": "^1.6.9", - "make-plural": "^7.0.0", - "math-interval-parser": "^2.0.1", - "mustache": "^4.2.0" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "keyv": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", - "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", - "requires": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-plural": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", - "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" - }, - "math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "opusscript": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", - "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "play-audio": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", - "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", - "optional": true - }, - "play-dl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", - "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", - "optional": true, - "requires": { - "play-audio": "^0.5.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prism-media": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", - "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", - "requires": {} - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "soundcloud.ts": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", - "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", - "requires": { - "audioconcat": "^0.1.4", - "axios": "^0.21.1" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "ts-mixer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", - "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", - "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "requires": {} - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "youtubei": { - "version": "0.0.1-rc.35", - "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", - "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" - } - } + "name": "rawon", + "version": "3.0.0-dev", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "rawon", + "version": "3.0.0-dev", + "license": "BSD-3-Clause", + "dependencies": { + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.194", + "date-fns": "2.28.0", + "discord.js": "13.7.0", + "dotenv": "16.0.1", + "got": "12.1.0", + "i18n": "0.15.0", + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.6", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" + }, + "devDependencies": { + "@clytage-pkg/eslint-config": "1.1.0", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.26.0", + "@typescript-eslint/parser": "5.26.0", + "eslint": "8.16.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "prettier": "^2.6.2", + "rimraf": "^3.0.2", + "typescript": "4.7.2" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + }, + "optionalDependencies": { + "play-dl": "^1.9.4" + } + }, + "node_modules/@clytage-pkg/eslint-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", + "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", + "dev": true, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">=5.26.0", + "@typescript-eslint/parser": ">=5.26.0", + "eslint": ">=8.16.0", + "typescript": ">=3.3.1 <4.7.3" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@discordjs/builders": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", + "dependencies": { + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + }, + "node_modules/@discordjs/collection": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/voice": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", + "dependencies": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", + "prism-media": "^1.3.2", + "tiny-typed-emitter": "^2.1.0", + "tslib": "^2.3.1", + "ws": "^8.5.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.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" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@messageformat/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", + "dependencies": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" + } + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "node_modules/@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "node_modules/@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "dependencies": { + "make-plural": "^7.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==", + "engines": { + "node": ">=v15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@swc/cli": { + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", + "dependencies": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js" + }, + "engines": { + "node": ">= 12.13" + }, + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^3.5.1" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@swc/core": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", + "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", + "bin": { + "swcx": "run_swcx.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-android-arm-eabi": "1.2.194", + "@swc/core-android-arm64": "1.2.194", + "@swc/core-darwin-arm64": "1.2.194", + "@swc/core-darwin-x64": "1.2.194", + "@swc/core-freebsd-x64": "1.2.194", + "@swc/core-linux-arm-gnueabihf": "1.2.194", + "@swc/core-linux-arm64-gnu": "1.2.194", + "@swc/core-linux-arm64-musl": "1.2.194", + "@swc/core-linux-x64-gnu": "1.2.194", + "@swc/core-linux-x64-musl": "1.2.194", + "@swc/core-win32-arm64-msvc": "1.2.194", + "@swc/core-win32-ia32-msvc": "1.2.194", + "@swc/core-win32-x64-msvc": "1.2.194" + } + }, + "node_modules/@swc/core-android-arm-eabi": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", + "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-android-arm64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", + "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", + "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", + "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-freebsd-x64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", + "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", + "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", + "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", + "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", + "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", + "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", + "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", + "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", + "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/i18n": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", + "dev": true + }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/audioconcat": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", + "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", + "dependencies": { + "fluent-ffmpeg": "^2.0.0", + "lodash.merge": "^4.6.2" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-lookup": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "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", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + }, + "node_modules/discord.js": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", + "dependencies": { + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.1", + "ws": "^8.6.0" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "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-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "dependencies": { + "boolean": "^3.1.4" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/fluent-ffmpeg": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", + "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", + "dependencies": { + "async": ">=0.2.9", + "which": "^1.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fluent-ffmpeg/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", + "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http2-wrapper": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", + "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/i18n": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", + "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", + "dependencies": { + "@messageformat/core": "^3.0.0", + "debug": "^4.3.3", + "fast-printf": "^1.6.9", + "make-plural": "^7.0.0", + "math-interval-parser": "^2.0.1", + "mustache": "^4.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/mashpie" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/keyv": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", + "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", + "dependencies": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "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", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-plural": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" + }, + "node_modules/math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/opusscript": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", + "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/play-audio": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", + "optional": true + }, + "node_modules/play-dl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", + "optional": true, + "dependencies": { + "play-audio": "^0.5.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prism-media": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "peerDependencies": { + "@discordjs/opus": "^0.5.0", + "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.8" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/soundcloud.ts": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", + "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", + "dependencies": { + "audioconcat": "^0.1.4", + "axios": "^0.21.1" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/ts-mixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/youtubei": { + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" + } + }, + "dependencies": { + "@clytage-pkg/eslint-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@clytage-pkg/eslint-config/-/eslint-config-1.1.0.tgz", + "integrity": "sha512-44ak3+VCpSiPqBYqthVYfCkkd7L+lPV2v/C3DuXx6dQeVqh0mP3t4bCTqiX3LoRtI0MMiHd0QpxNUq1FqaQbbg==", + "dev": true, + "requires": {} + }, + "@discordjs/builders": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.13.0.tgz", + "integrity": "sha512-4L9y26KRNNU8Y7J78SRUN1Uhava9D8jfit/YqEaKi8gQRc7PdqKqk2poybo6RXaiyt/BgKYPfcjxT7WvzGfYCA==", + "requires": { + "@sapphire/shapeshift": "^2.0.0", + "@sindresorhus/is": "^4.6.0", + "discord-api-types": "^0.31.1", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.3.1" + }, + "dependencies": { + "discord-api-types": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.2.tgz", + "integrity": "sha512-gpzXTvFVg7AjKVVJFH0oJGC0q0tO34iJGSHZNz9u3aqLxlD6LfxEs9wWVVikJqn9gra940oUTaPFizCkRDcEiA==" + } + } + }, + "@discordjs/collection": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.6.0.tgz", + "integrity": "sha512-Ieaetb36l0nmAS5X9Upqk4W7euAO6FdXPxn3I8vBAKEcoIzEZI1mcVcPfCfagGJZSgBKpENnAnKkP4GAn+MV8w==" + }, + "@discordjs/voice": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.9.0.tgz", + "integrity": "sha512-fSAYtPCEfIyG56hC2cRJuyfvQGr+aawSssLCqYg70vZ51dKO4spEKOB8V6vNMP5HnEplbhmxkB3YbshFKtnCQQ==", + "requires": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.29.0", + "prism-media": "^1.3.2", + "tiny-typed-emitter": "^2.1.0", + "tslib": "^2.3.1", + "ws": "^8.5.0" + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.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" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@messageformat/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.0.1.tgz", + "integrity": "sha512-yxj2+0e46hcZqJfNf0ZYbC2q6WlcGoh4g11mCyRtTueR0AD8F9z4JMYAS1aOiFG8Vl1LZg/h5hZHKmWTAyZq8g==", + "requires": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.0.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" + } + }, + "@messageformat/date-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz", + "integrity": "sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw==" + }, + "@messageformat/number-skeleton": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz", + "integrity": "sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig==" + }, + "@messageformat/parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.0.0.tgz", + "integrity": "sha512-WiDKhi8F0zQaFU8cXgqq69eYFarCnTVxKcvhAONufKf0oUxbqLMW6JX6rV4Hqh+BEQWGyKKKHY4g1XA6bCLylA==", + "requires": { + "moo": "^0.5.1" + } + }, + "@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "requires": { + "make-plural": "^7.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sapphire/async-queue": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.1.tgz", + "integrity": "sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g==" + }, + "@sapphire/shapeshift": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-2.2.0.tgz", + "integrity": "sha512-UEnKgMlQyI0yY/q+lCMX0VJft9y86IsesgbIQj6e62FBYSaMVr+IaMNpi4z45Q14VnuMACbK0yrbHISNqgUYcQ==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@swc/cli": { + "version": "0.1.57", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.57.tgz", + "integrity": "sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==", + "requires": { + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "slash": "3.0.0", + "source-map": "^0.7.3" + } + }, + "@swc/core": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.194.tgz", + "integrity": "sha512-+Jg3qxad32CqnFmw4pqwm/5JCVWGkoM8P5pqPlyj5sokHFUJluMkCeaikuvIZhJCabR9q84lEnXlIjMu42ZfKA==", + "requires": { + "@swc/core-android-arm-eabi": "1.2.194", + "@swc/core-android-arm64": "1.2.194", + "@swc/core-darwin-arm64": "1.2.194", + "@swc/core-darwin-x64": "1.2.194", + "@swc/core-freebsd-x64": "1.2.194", + "@swc/core-linux-arm-gnueabihf": "1.2.194", + "@swc/core-linux-arm64-gnu": "1.2.194", + "@swc/core-linux-arm64-musl": "1.2.194", + "@swc/core-linux-x64-gnu": "1.2.194", + "@swc/core-linux-x64-musl": "1.2.194", + "@swc/core-win32-arm64-msvc": "1.2.194", + "@swc/core-win32-ia32-msvc": "1.2.194", + "@swc/core-win32-x64-msvc": "1.2.194" + } + }, + "@swc/core-android-arm-eabi": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.194.tgz", + "integrity": "sha512-Hv/k9KN2Aab8jO/SmSlzKpzS941IXfdr9XEQRl/rc5Nj4neVW8AWS4+AJnl4u7MiJrfM0No6ZRQx32Ke+APmLQ==", + "optional": true + }, + "@swc/core-android-arm64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.194.tgz", + "integrity": "sha512-/r2iah0khiv3xUbOT6upf1fdeGdKrVa8sghyTI0jPRpQ5GKD01nuEq+FlmieTwkQ0pQbgVKun0zyriAOXjLqWA==", + "optional": true + }, + "@swc/core-darwin-arm64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.194.tgz", + "integrity": "sha512-pLsxgi985iSu+wqskJAO+kr0QwNqYQSyfdQEjCtWi5oYp3wIBPHLccIPVcIUfD6YAqXdqnQJg9RtA4scpdrQNg==", + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.194.tgz", + "integrity": "sha512-WLFhotRbGqMKg9HwB0RF0Ycz6B6uSMEHcblAdBhiyL4fIp+CMUhkvC8jTs0xij/yJj96B6Xf9UH/Q5MFUQrJEw==", + "optional": true + }, + "@swc/core-freebsd-x64": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.194.tgz", + "integrity": "sha512-UNG8G5TlYWvfyB7+Fc1h5hoSwEY1LLLth7V8DFMljd0dm2hcSpukuWaQk/GE3EANCE40nq3y4THEAlSu4lauSg==", + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.194.tgz", + "integrity": "sha512-mbk4MMgBf9BWFV0yqvReT29xZ6N6CLNgiG2UFnmXkLrrEBrAz5c3W8so5VqdyK52yWMS5Vs0a6VOvlimh057KA==", + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.194.tgz", + "integrity": "sha512-vdr2zUJnd67oQfXn1Ix0ueND+iEnCTwA4dobT4s0KsZCusJKuJlkm97p7rgk3Cxn2sHm/8BBQX4KpdXwNEL3Tw==", + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.194.tgz", + "integrity": "sha512-wocEG55mu/KAFs1B9l1E0FbfU9nKaY3ULuT/isELHqDNZB23nNFRa+ymez/NqBhqVPhX4B0L+7j2r4tipXiI2A==", + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.194.tgz", + "integrity": "sha512-PA7kudCtpGy1m40LKTeIsSse0zkmMyHthYjfn7q8pUWlo2b9o9RxO5zsnLxLsgATsoPwfMmVl9m3+1xSkxJp+g==", + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.194.tgz", + "integrity": "sha512-2CdLXLpdKqtZmFgcEOyw9Gu/24ku5/4NabSdYg58XGarrPS96lQk80rzaMYxs6AzfsfhHGmsp3se07jnLwSlXQ==", + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.194.tgz", + "integrity": "sha512-7NpBJ1fgeP8Y2H0aCTZR8nx0BEHXdSuFwBAwKrb4kaP0d2qVAVIv/rOk7L/MwsuXmlsISQ13JnUtQYjYPGJsUg==", + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.194.tgz", + "integrity": "sha512-1TP+kS32uFSgBHOJGmLNfxcqU7e85FZZTKAVAQgEPmHH0lJ/9BcViMDhMOdnyEWjIluD5aj6WdPdeAz1YlXDng==", + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.2.194", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.194.tgz", + "integrity": "sha512-c3tiShCGY03XbJqXpliHRHMBBB/KGWS1kcbKn2GhaZN4fY8UgD5kZk3XJDwDJ6oqwlgkBdWXRAgD5Td2aAKMRg==", + "optional": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/i18n": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg==", + "dev": true + }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==" + }, + "@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.26.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "audioconcat": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/audioconcat/-/audioconcat-0.1.4.tgz", + "integrity": "sha512-RH7f6n1kfQTathHadWJp8b/hz7y9GYdhKDtkqany8qYxkv0RQamY+7dFBbJOxLh86ouMTYmKYenSdkxSbubmOA==", + "requires": { + "fluent-ffmpeg": "^2.0.0", + "lodash.merge": "^4.6.2" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-lookup": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "discord-api-types": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.29.0.tgz", + "integrity": "sha512-Ekq1ICNpOTVajXKZguNFrsDeTmam+ZeA38txsNLZnANdXUjU6QBPIZLUQTC6MzigFGb0Tt8vk4xLnXmzv0shNg==" + }, + "discord.js": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.7.0.tgz", + "integrity": "sha512-iV/An3FEB/CiBGdjWHRtgskM4UuWPq5vjhjKsrQhdVU16dbKrBxA+eIV2HWA07B3tXUGM6eco1wkr42gxxV1BA==", + "requires": { + "@discordjs/builders": "^0.13.0", + "@discordjs/collection": "^0.6.0", + "@sapphire/async-queue": "^1.3.1", + "@types/node-fetch": "^2.6.1", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.30.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.1", + "ws": "^8.6.0" + }, + "dependencies": { + "discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-printf": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", + "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", + "requires": { + "boolean": "^3.1.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "fluent-ffmpeg": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", + "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", + "requires": { + "async": ">=0.2.9", + "which": "^1.1.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "follow-redirects": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", + "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "requires": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http2-wrapper": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", + "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "i18n": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.0.tgz", + "integrity": "sha512-TUOkuFbl8Y/q7zF0tHdtpk1/TtxH0T+Drp2NFrHhmN1Qs0Sob9/0uVLS2BPVkEXNh2jZrimOiFJk+tkaOumzog==", + "requires": { + "@messageformat/core": "^3.0.0", + "debug": "^4.3.3", + "fast-printf": "^1.6.9", + "make-plural": "^7.0.0", + "math-interval-parser": "^2.0.1", + "mustache": "^4.2.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "keyv": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.9.tgz", + "integrity": "sha512-vqRBrN4xQHud7UMAGzGGFbt96MtGB9pb0OOg8Dhtq5RtiswCb1pCFq878iqC4hdeOP6eDPnCoFxA+2TXx427Ow==", + "requires": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-plural": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.1.0.tgz", + "integrity": "sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg==" + }, + "math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "moo": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "opusscript": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", + "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==" + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "play-audio": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/play-audio/-/play-audio-0.5.2.tgz", + "integrity": "sha512-ZAqHUKkQLix2Iga7pPbsf1LpUoBjcpwU93F1l3qBIfxYddQLhxS6GKmS0d3jV8kSVaUbr6NnOEcEMFvuX93SWQ==", + "optional": true + }, + "play-dl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/play-dl/-/play-dl-1.9.4.tgz", + "integrity": "sha512-/NiD3rpZw/5zbtUhF87AQEmHYLBD5QhtCD/9c3b47xvZMxCO3eHLEN5G1h/b/lC1lCp+xj5BpdYefOrIbDhBUQ==", + "optional": true, + "requires": { + "play-audio": "^0.5.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "prism-media": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "requires": {} + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "soundcloud.ts": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.4.6.tgz", + "integrity": "sha512-h0Y0n7J/Ubzhnr5497/Co3k3ZB0h6bB6n2x5PhNNX2E/+lizMPu9VGYSGcgZROihZxGUQ1711iGlFVnHFeOvng==", + "requires": { + "audioconcat": "^0.1.4", + "axios": "^0.21.1" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "ts-mixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "requires": {} + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "youtubei": { + "version": "0.0.1-rc.35", + "resolved": "https://registry.npmjs.org/youtubei/-/youtubei-0.0.1-rc.35.tgz", + "integrity": "sha512-OXq3/7s6rhT0ejwbQm5r3uW0qCs6PUhboMFy3ZdUx4JdSY2WDr44DOdKtzPh4D8prHhqB/Q2NZMyEiFNHZFPlA==" + } + } } diff --git a/package.json b/package.json index 7dce60f0d..f34156eb0 100644 --- a/package.json +++ b/package.json @@ -1,70 +1,87 @@ { - "name": "rawon", - "version": "3.0.0-dev", - "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", - "main": "index.js", - "type": "module", - "scripts": { - "build": "npm run lint && npm run compile", - "compile": "npx swc src -d dist", - "tscompile": "tsc --build tsconfig.json", - "lint": "eslint . --ignore-path .gitignore --ext .ts", - "lint:fix": "eslint . --ignore-path .gitignore --ext .ts --fix", - "start": "node --es-module-specifier-resolution=node -r dotenv/config .", - "start:dev": "rimraf ./dist && npm run compile && npm start" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Clytage/rawon.git" - }, - "author": "Clytage <support@clytage.org>", - "license": "BSD-3-Clause", - "bugs": { - "url": "https://github.com/Clytage/rawon/issues" - }, - "homepage": "https://github.com/Clytage/rawon#readme", - "engines": { - "node": ">=16.6.0", - "npm": ">=7.0.0" - }, - "eslintConfig": { - "extends": "@clytage-pkg/eslint-config/typescript", - "ignorePatterns": [ - "dist/*", - "index.js", - "yt-dlp-utils/" - ], - "rules": { - "@typescript-eslint/no-extra-parens": "off" - } - }, - "dependencies": { - "@discordjs/voice": "0.9.0", - "@swc/cli": "0.1.57", - "@swc/core": "1.2.194", - "date-fns": "2.28.0", - "discord.js": "13.7.0", - "dotenv": "16.0.1", - "got": "12.1.0", - "i18n": "0.15.0", - "opusscript": "0.0.8", - "prism-media": "1.3.2", - "soundcloud.ts": "0.4.6", - "tslib": "2.4.0", - "tweetnacl": "1.0.3", - "youtubei": "0.0.1-rc.35" - }, - "devDependencies": { - "@clytage-pkg/eslint-config": "1.1.0", - "@types/i18n": "0.13.2", - "@types/node": "17.0.33", - "@typescript-eslint/eslint-plugin": "5.26.0", - "@typescript-eslint/parser": "5.26.0", - "eslint": "8.16.0", - "rimraf": "^3.0.2", - "typescript": "4.7.2" - }, - "optionalDependencies": { - "play-dl": "^1.9.4" - } + "name": "rawon", + "version": "3.0.0-dev", + "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", + "main": "index.js", + "type": "module", + "scripts": { + "build": "npm run lint && npm run compile", + "compile": "npx swc src -d dist", + "tscompile": "tsc --build tsconfig.json", + "lint": "eslint . --ignore-path .gitignore --ext .ts", + "lint:fix": "eslint . --ignore-path .gitignore --ext .ts --fix", + "pretty": "prettier --check src/**/*.ts", + "pretty:write": "prettier --write src/**/*.ts", + "start": "node --es-module-specifier-resolution=node -r dotenv/config .", + "start:dev": "rimraf ./dist && npm run compile && npm start" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Clytage/rawon.git" + }, + "author": "Clytage <support@clytage.org>", + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/Clytage/rawon/issues" + }, + "homepage": "https://github.com/Clytage/rawon#readme", + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + }, + "eslintConfig": { + "extends": [ + "@clytage-pkg/eslint-config/typescript", + "prettier" + ], + "plugins": [ + "prettier" + ], + "ignorePatterns": [ + "dist/*", + "index.js", + "yt-dlp-utils/" + ], + "rules": { + "@typescript-eslint/no-extra-parens": "off" + } + }, + "prettier": { + "tabWidth": 4, + "trailingComma": "none", + "arrowParens": "avoid", + "printWidth": 120 + }, + "dependencies": { + "@discordjs/voice": "0.9.0", + "@swc/cli": "0.1.57", + "@swc/core": "1.2.194", + "date-fns": "2.28.0", + "discord.js": "13.7.0", + "dotenv": "16.0.1", + "got": "12.1.0", + "i18n": "0.15.0", + "opusscript": "0.0.8", + "prism-media": "1.3.2", + "soundcloud.ts": "0.4.6", + "tslib": "2.4.0", + "tweetnacl": "1.0.3", + "youtubei": "0.0.1-rc.35" + }, + "devDependencies": { + "@clytage-pkg/eslint-config": "1.1.0", + "@types/i18n": "0.13.2", + "@types/node": "17.0.33", + "@typescript-eslint/eslint-plugin": "5.26.0", + "@typescript-eslint/parser": "5.26.0", + "eslint": "8.16.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "prettier": "^2.6.2", + "rimraf": "^3.0.2", + "typescript": "4.7.2" + }, + "optionalDependencies": { + "play-dl": "^1.9.4" + } } diff --git a/src/bot.ts b/src/bot.ts index 51fbc35ae..09a0bc54a 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -6,7 +6,12 @@ const client = new Rawon(clientOptions); process .on("exit", code => client.logger.info(`NodeJS process exited with code ${code}`)) - .on("unhandledRejection", reason => client.logger.error("UNHANDLED_REJECTION:", (reason as Error).stack ? reason : new NoStackError(reason as string))) + .on("unhandledRejection", reason => + client.logger.error( + "UNHANDLED_REJECTION:", + (reason as Error).stack ? reason : new NoStackError(reason as string) + ) + ) .on("warning", (...args) => client.logger.warn(...args)) .on("uncaughtException", err => { client.logger.error("UNCAUGHT_EXCEPTION:", err); @@ -14,5 +19,4 @@ process process.exit(1); }); -client.build() - .catch(e => client.logger.error("PROMISE_ERR:", e)); +client.build().catch(e => client.logger.error("PROMISE_ERR:", e)); diff --git a/src/commands/developers/EvalCommand.ts b/src/commands/developers/EvalCommand.ts index d26788a39..863273406 100644 --- a/src/commands/developers/EvalCommand.ts +++ b/src/commands/developers/EvalCommand.ts @@ -20,13 +20,10 @@ export class EvalCommand extends BaseCommand { const msg = ctx; const client = this.client; - const code = ctx.args.join(" ") - .replace( - /^\s*\n?(```(?:[^\s]+\n)?(.*?)```|.*)$/s, - (_, a: string, b) => a.startsWith("```") ? b : a - ); - const embed = createEmbed("info") - .addField("Input", `\`\`\`js\n${code}\`\`\``); + const code = ctx.args + .join(" ") + .replace(/^\s*\n?(```(?:[^\s]+\n)?(.*?)```|.*)$/s, (_, a: string, b) => (a.startsWith("```") ? b : a)); + const embed = createEmbed("info").addField("Input", `\`\`\`js\n${code}\`\`\``); try { if (!code) { @@ -35,25 +32,18 @@ export class EvalCommand extends BaseCommand { }); } - const isAsync = (/.* --async( +)?(--silent)?$/).test(code); - const isSilent = (/.* --silent( +)?(--async)?$/).test(code); - const toExecute = isAsync || isSilent - ? code.replace(/--(async|silent)( +)?(--(silent|async))?$/, "") - : code; - const evaled = inspect( - await eval( - isAsync - ? `(async () => {\n${toExecute}\n})()` - : toExecute - ), { depth: 0 } - ); + const isAsync = /.* --async( +)?(--silent)?$/.test(code); + const isSilent = /.* --silent( +)?(--async)?$/.test(code); + const toExecute = + isAsync || isSilent ? code.replace(/--(async|silent)( +)?(--(silent|async))?$/, "") : code; + const evaled = inspect(await eval(isAsync ? `(async () => {\n${toExecute}\n})()` : toExecute), { + depth: 0 + }); if (isSilent) return; const cleaned = this.clean(evaled); - const output = cleaned.length > 1024 - ? `${await this.hastebin(cleaned)}.js` - : `\`\`\`js\n${cleaned}\`\`\``; + const output = cleaned.length > 1024 ? `${await this.hastebin(cleaned)}.js` : `\`\`\`js\n${cleaned}\`\`\``; embed.addField(i18n.__("commands.developers.eval.outputString"), output); ctx.send({ @@ -65,9 +55,7 @@ export class EvalCommand extends BaseCommand { } catch (e) { const cleaned = this.clean(String(e)); const isTooLong = cleaned.length > 1024; - const error = isTooLong - ? `${await this.hastebin(cleaned)}.js` - : `\`\`\`js\n${cleaned}\`\`\``; + const error = isTooLong ? `${await this.hastebin(cleaned)}.js` : `\`\`\`js\n${cleaned}\`\`\``; embed.setColor("RED").addField(i18n.__("commands.developers.eval.errorString"), error); ctx.send({ @@ -88,9 +76,11 @@ export class EvalCommand extends BaseCommand { } private async hastebin(text: string): Promise<string> { - const result = await this.client.request.post("https://bin.clytage.org/documents", { - body: text - }).json<{ key: string }>(); + const result = await this.client.request + .post("https://bin.clytage.org/documents", { + body: text + }) + .json<{ key: string }>(); return `https://bin.clytage.org/${result.key}`; } diff --git a/src/commands/general/AboutCommand.ts b/src/commands/general/AboutCommand.ts index 1147e2f28..928657012 100644 --- a/src/commands/general/AboutCommand.ts +++ b/src/commands/general/AboutCommand.ts @@ -36,13 +36,16 @@ export class AboutCommand extends BaseCommand { ]; const value = createTable(values); - void ctx.reply({ - embeds: [createEmbed("info", `\`\`\`asciidoc\n${value}\n\`\`\``) - .setAuthor({ - name: i18n.__mf("commands.general.about.aboutFooter", { - botname: this.client.user?.username ?? "Unknown" + void ctx + .reply({ + embeds: [ + createEmbed("info", `\`\`\`asciidoc\n${value}\n\`\`\``).setAuthor({ + name: i18n.__mf("commands.general.about.aboutFooter", { + botname: this.client.user?.username ?? "Unknown" + }) }) - })] - }).catch(e => this.client.logger.error("ABOUT_CMD_ERR:", e)); + ] + }) + .catch(e => this.client.logger.error("ABOUT_CMD_ERR:", e)); } } diff --git a/src/commands/general/HelpCommand.ts b/src/commands/general/HelpCommand.ts index 028b7b78a..6d4bb513f 100644 --- a/src/commands/general/HelpCommand.ts +++ b/src/commands/general/HelpCommand.ts @@ -4,7 +4,13 @@ import { createEmbed } from "../../utils/functions/createEmbed"; import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; -import { Message, MessageActionRow, MessageSelectMenu, MessageSelectOptionData, SelectMenuInteraction } from "discord.js"; +import { + Message, + MessageActionRow, + MessageSelectMenu, + MessageSelectOptionData, + SelectMenuInteraction +} from "discord.js"; @Command<typeof HelpCommand>({ aliases: ["h", "command", "commands", "cmd", "cmds"], @@ -36,70 +42,69 @@ export class HelpCommand extends BaseCommand { iconURL: "https://api.clytage.org/assets/images/information.png" }); - private readonly infoEmbed = createEmbed("info") - .setThumbnail("https://api.clytage.org/assets/images/question_mark.png"); + private readonly infoEmbed = createEmbed("info").setThumbnail( + "https://api.clytage.org/assets/images/question_mark.png" + ); public async execute(ctx: CommandContext): Promise<Message | undefined> { if (ctx.isInteraction() && !ctx.deferred) await ctx.deferReply(); this.infoEmbed.fields = []; - const val = ctx.args[0] ?? + const val = + ctx.args[0] ?? ctx.options?.getString("command") ?? - ( - ctx.additionalArgs.get("values") - ? (ctx.additionalArgs.get("values") as string[])[0] - : null - ); - const command = this.client.commands.get(val) ?? - this.client.commands.get(this.client.commands.aliases.get(val)!); + (ctx.additionalArgs.get("values") ? (ctx.additionalArgs.get("values") as string[])[0] : null); + const command = + this.client.commands.get(val) ?? this.client.commands.get(this.client.commands.aliases.get(val)!); if (!val) { - const embed = this.listEmbed - .setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })!); + const embed = this.listEmbed.setThumbnail( + ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })! + ); this.listEmbed.fields = []; for (const category of this.client.commands.categories.values()) { const isDev = this.client.config.devs.includes(ctx.author.id); - const cmds = category.cmds - .filter(c => (isDev ? true : !c.meta.devOnly)) - .map(c => `\`${c.meta.name}\``); + const cmds = category.cmds.filter(c => (isDev ? true : !c.meta.devOnly)).map(c => `\`${c.meta.name}\``); if (cmds.length === 0) continue; if (category.hide && !isDev) continue; embed.addField(`**${category.name}**`, cmds.join(", ")); } - ctx.send({ embeds: [embed] }, "editReply") - .catch(e => this.client.logger.error("PROMISE_ERR:", e)); + ctx.send({ embeds: [embed] }, "editReply").catch(e => this.client.logger.error("PROMISE_ERR:", e)); return; } if (!command) { const matching = this.generateSelectMenu(val, ctx.author.id); if (!matching.length) { - return ctx.send({ - embeds: [createEmbed("error", i18n.__("commands.general.help.noCommand"), true)] - }, "editReply"); + return ctx.send( + { + embeds: [createEmbed("error", i18n.__("commands.general.help.noCommand"), true)] + }, + "editReply" + ); } - return ctx.send({ - components: [ - new MessageActionRow() - .addComponents( + return ctx.send( + { + components: [ + new MessageActionRow().addComponents( new MessageSelectMenu() .setMinValues(1) .setMaxValues(1) - .setCustomId( - Buffer.from(`${ctx.author.id}_${this.meta.name}`) - .toString("base64") - ) + .setCustomId(Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64")) .addOptions(matching) .setPlaceholder(i18n.__("commands.general.help.commandSelectionString")) ) - ], - embeds: [createEmbed("error", i18n.__("commands.general.help.noCommanSuggest"), true)] - }, "editReply"); + ], + embeds: [createEmbed("error", i18n.__("commands.general.help.noCommanSuggest"), true)] + }, + "editReply" + ); } // Disable selection menu if (ctx.isSelectMenu()) { const channel = ctx.channel; - const msg = await channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id) + const msg = await channel!.messages + .fetch((ctx.context as SelectMenuInteraction).message.id) .catch(() => undefined); if (msg !== undefined) { const selection = msg.components[0].components.find(x => x.type === "SELECT_MENU"); @@ -108,60 +113,63 @@ export class HelpCommand extends BaseCommand { } } // Return information embed - return ctx.send({ - embeds: [this.infoEmbed - .setAuthor({ - name: i18n.__mf("commands.general.help.commandDetailTitle", { - username: this.client.user!.username, - command: command.meta.name - }), - iconURL: this.client.user?.displayAvatarURL()! - }) - .addField( - i18n.__("commands.general.help.nameString"), - `**\`${command.meta.name}\`**`, - false - ) - .addField( - i18n.__("commands.general.help.descriptionString"), - `${command.meta.description!}`, - true - ) - .addField( - i18n.__("commands.general.help.aliasesString"), - Number(command.meta.aliases?.length) > 0 - ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! - : "None." - , false - ) - .addField( - i18n.__("commands.general.help.usageString"), - `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, - true - ) - .setFooter({ - text: i18n.__mf("commands.general.help.commandUsageFooter", { - devOnly: command.meta.devOnly ? "(developer-only command)" : "" - }), - iconURL: "https://api.clytage.org/assets/images/information.png" - })] - }, "editReply"); + return ctx.send( + { + embeds: [ + this.infoEmbed + .setAuthor({ + name: i18n.__mf("commands.general.help.commandDetailTitle", { + username: this.client.user!.username, + command: command.meta.name + }), + iconURL: this.client.user?.displayAvatarURL()! + }) + .addField(i18n.__("commands.general.help.nameString"), `**\`${command.meta.name}\`**`, false) + .addField( + i18n.__("commands.general.help.descriptionString"), + `${command.meta.description!}`, + true + ) + .addField( + i18n.__("commands.general.help.aliasesString"), + Number(command.meta.aliases?.length) > 0 + ? command.meta.aliases?.map(c => `**\`${c}\`**`).join(", ")! + : "None.", + false + ) + .addField( + i18n.__("commands.general.help.usageString"), + `**\`${command.meta.usage!.replace(/{prefix}/g, this.client.config.mainPrefix)}\`**`, + true + ) + .setFooter({ + text: i18n.__mf("commands.general.help.commandUsageFooter", { + devOnly: command.meta.devOnly ? "(developer-only command)" : "" + }), + iconURL: "https://api.clytage.org/assets/images/information.png" + }) + ] + }, + "editReply" + ); } private generateSelectMenu(cmd: string, author: string): MessageSelectOptionData[] { const emojis = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟"]; - const matching = [...this.client.commands.values()].filter(x => { - const isDev = this.client.config.devs.includes(author); - if (isDev) return x.meta.name.includes(cmd); - return x.meta.name.includes(cmd) && !x.meta.devOnly; - }).slice(0, 10).map((x, i) => ( - { + const matching = [...this.client.commands.values()] + .filter(x => { + const isDev = this.client.config.devs.includes(author); + if (isDev) return x.meta.name.includes(cmd); + return x.meta.name.includes(cmd) && !x.meta.devOnly; + }) + .slice(0, 10) + .map((x, i) => ({ label: x.meta.name, emoji: emojis[i], - description: x.meta.description!.length > 47 ? `${x.meta.description!.slice(0, 47)}...` : x.meta.description!, + description: + x.meta.description!.length > 47 ? `${x.meta.description!.slice(0, 47)}...` : x.meta.description!, value: x.meta.name - } - )); + })); return matching; } } diff --git a/src/commands/general/InviteCommand.ts b/src/commands/general/InviteCommand.ts index 873a5139a..3889ee493 100644 --- a/src/commands/general/InviteCommand.ts +++ b/src/commands/general/InviteCommand.ts @@ -35,15 +35,22 @@ export class InviteCommand extends BaseCommand { ], scopes: ["bot", "applications.commands"] }); - await ctx.send({ - embeds: [createEmbed("info", i18n.__mf("commands.general.invite.clickURL", { - url: invite - })).setAuthor({ - name: i18n.__mf("commands.general.invite.inviteTitle", { - bot: this.client.user?.username - }), - iconURL: this.client.user!.displayAvatarURL() - })] - }).catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); + await ctx + .send({ + embeds: [ + createEmbed( + "info", + i18n.__mf("commands.general.invite.clickURL", { + url: invite + }) + ).setAuthor({ + name: i18n.__mf("commands.general.invite.inviteTitle", { + bot: this.client.user?.username + }), + iconURL: this.client.user!.displayAvatarURL() + }) + ] + }) + .catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); } } diff --git a/src/commands/general/PingCommand.ts b/src/commands/general/PingCommand.ts index 15c1ad901..4f71b292b 100644 --- a/src/commands/general/PingCommand.ts +++ b/src/commands/general/PingCommand.ts @@ -28,26 +28,29 @@ export class PingCommand extends BaseCommand { name: "🏓 PONG", iconURL: this.client.user!.displayAvatarURL() }) - .addFields({ - name: "📶 **|** API", - value: `**\`${latency}\`** ms`, - inline: true - }, { - name: "🌐 **|** WebSocket", - value: `**\`${wsLatency}\`** ms`, - inline: true - }, { - name: "🔊 **|** Voice", - value: `**\`${vcLatency}\`** ms`, - inline: true - }) + .addFields( + { + name: "📶 **|** API", + value: `**\`${latency}\`** ms`, + inline: true + }, + { + name: "🌐 **|** WebSocket", + value: `**\`${wsLatency}\`** ms`, + inline: true + }, + { + name: "🔊 **|** Voice", + value: `**\`${vcLatency}\`** ms`, + inline: true + } + ) .setFooter({ text: i18n.__mf("commands.general.ping.footerString", { user: this.client.user!.tag }), iconURL: this.client.user!.displayAvatarURL() }) .setTimestamp(); - msg.edit({ content: " ", embeds: [embed] }) - .catch(e => this.client.logger.error("PROMISE_ERR:", e)); + msg.edit({ content: " ", embeds: [embed] }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); } // eslint-disable-next-line class-methods-use-this diff --git a/src/commands/moderation/BanCommand.ts b/src/commands/moderation/BanCommand.ts index ff876763d..c3e8d8a0f 100644 --- a/src/commands/moderation/BanCommand.ts +++ b/src/commands/moderation/BanCommand.ts @@ -34,7 +34,8 @@ export class BanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.guild) return; - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + const memberId = + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getString("memberid"); const user = await this.client.users.fetch(memberId!, { force: false }).catch(() => undefined); @@ -51,35 +52,40 @@ export class BanCommand extends BaseCommand { }); } - const reason = ctx.options?.getString("reason") ?? ( - ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") - ); + const reason = + ctx.options?.getString("reason") ?? + (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); if (ctx.guild.members.cache.has(user.id)) { const dm = await user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [createEmbed("error", i18n.__mf("commands.moderation.ban.userBanned", { - guildName: ctx.guild.name - })) - .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf( - "commands.moderation.ban.bannedByString", { + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.ban.userBanned", { + guildName: ctx.guild.name + }) + ) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.ban.bannedByString", { author: ctx.author.tag - } - ), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now())] + }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now()) + ] }); } } - const ban = await ctx.guild.members.ban(user, { - reason - }).catch(err => new Error(err as string | undefined)); + const ban = await ctx.guild.members + .ban(user, { + reason + }) + .catch(err => new Error(err as string | undefined)); if (ban instanceof Error) { return ctx.reply({ embeds: [ diff --git a/src/commands/moderation/InfractionsCommand.ts b/src/commands/moderation/InfractionsCommand.ts index 8e6aada50..b4df04423 100644 --- a/src/commands/moderation/InfractionsCommand.ts +++ b/src/commands/moderation/InfractionsCommand.ts @@ -27,15 +27,15 @@ import i18n from "../../config"; export class InfractionsCommand extends BaseCommand { @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) public async execute(ctx: CommandContext): Promise<void> { - const user = ctx.guild?.members.resolve( - ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "" - )?.user ?? ctx.options?.getUser("member", false) ?? ctx.author; - const embed = createEmbed("info") - .setAuthor({ - name: i18n.__mf("commands.moderation.infractions.embedAuthorText", { - user: user.tag - }) - }); + const user = + ctx.guild?.members.resolve(ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "")?.user ?? + ctx.options?.getUser("member", false) ?? + ctx.author; + const embed = createEmbed("info").setAuthor({ + name: i18n.__mf("commands.moderation.infractions.embedAuthorText", { + user: user.tag + }) + }); let infractions: { on: number; reason: string | null }[]; try { @@ -47,39 +47,40 @@ export class InfractionsCommand extends BaseCommand { if (!infractions.length) { await ctx.reply({ - embeds: [ - embed - .setDescription(i18n.__("commands.moderation.infractions.noInfractions")) - ] + embeds: [embed.setDescription(i18n.__("commands.moderation.infractions.noInfractions"))] }); return; } const pages = await Promise.all( chunk(infractions, 10).map(async (s, n) => { - const infracts = await Promise.all(s.map( - (inf, i) => `${(n * 10) + (i + 1)}. ${formatTime(inf.on)} - ${inf.reason ?? i18n.__("commands.moderation.common.noReasonString")}` - )); + const infracts = await Promise.all( + s.map( + (inf, i) => + `${n * 10 + (i + 1)}. ${formatTime(inf.on)} - ${ + inf.reason ?? i18n.__("commands.moderation.common.noReasonString") + }` + ) + ); return infracts.join("\n"); }) ); const msg = await ctx.reply({ embeds: [ - embed.setDescription(pages[0]) - .setFooter({ - text: i18n.__mf("reusable.pageFooter", { - actual: 1, - total: pages.length - }) + embed.setDescription(pages[0]).setFooter({ + text: i18n.__mf("reusable.pageFooter", { + actual: 1, + total: pages.length }) + }) ] }); return new ButtonPagination(msg, { author: ctx.author.id, - edit: (i, e, p) => e.setDescription(p) - .setFooter({ + edit: (i, e, p) => + e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length diff --git a/src/commands/moderation/KickCommand.ts b/src/commands/moderation/KickCommand.ts index 73d3a0636..c51765385 100644 --- a/src/commands/moderation/KickCommand.ts +++ b/src/commands/moderation/KickCommand.ts @@ -34,7 +34,8 @@ export class KickCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.guild) return; - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + const memberId = + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); @@ -50,28 +51,50 @@ export class KickCommand extends BaseCommand { }); } - const reason = ctx.options?.getString("reason") ?? ( - ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") - ); + const reason = + ctx.options?.getString("reason") ?? + (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [createEmbed("error", i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name })) - .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.kick.kickedByString", { - author: ctx.author.tag - }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now())] + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.kick.userKicked", { guildName: ctx.guild.name }) + ) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.kick.kickedByString", { + author: ctx.author.tag + }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now()) + ] }); } const kick = await member.kick(reason).catch(err => new Error(err as string | undefined)); - if (kick instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.kick.kickFail", { message: kick.message }), true)] }); + if (kick instanceof Error) + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.kick.kickFail", { message: kick.message }), + true + ) + ] + }); - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.kick.kickSuccess", { user: member.user.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.kick.kickSuccess", { user: member.user.tag }), + true + ) + ] + }); } } diff --git a/src/commands/moderation/ModLogsCommand.ts b/src/commands/moderation/ModLogsCommand.ts index ebdfa32e1..950d35015 100644 --- a/src/commands/moderation/ModLogsCommand.ts +++ b/src/commands/moderation/ModLogsCommand.ts @@ -6,11 +6,7 @@ import { Command } from "../../utils/decorators/Command"; import i18n from "../../config"; @Command<typeof ModLogsCommand>({ - aliases: [ - "modlog", - "moderationlogs", - "moderationlog" - ], + aliases: ["modlog", "moderationlogs", "moderationlog"], description: i18n.__("commands.moderation.modlogs.description"), name: "modlogs", slash: { @@ -45,8 +41,7 @@ import i18n from "../../config"; export class ModLogsCommand extends BaseCommand { private readonly options: Record<string, BaseCommand["execute"]> = { channel: async ctx => { - const newCh = ctx.options?.getChannel("newchannel")?.id ?? - ctx.args.shift()?.replace(/[^0-9]/g, ""); + const newCh = ctx.options?.getChannel("newchannel")?.id ?? ctx.args.shift()?.replace(/[^0-9]/g, ""); if (!newCh) { let ch: string | null; @@ -60,9 +55,12 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("info", ch - ? i18n.__mf("commands.moderation.modlogs.channel.current", { channel: ch }) - : i18n.__("commands.moderation.modlogs.channel.noChannel")) + createEmbed( + "info", + ch + ? i18n.__mf("commands.moderation.modlogs.channel.current", { channel: ch }) + : i18n.__("commands.moderation.modlogs.channel.noChannel") + ) ] }); } @@ -70,9 +68,7 @@ export class ModLogsCommand extends BaseCommand { const ch = await ctx.guild?.channels.fetch(newCh).catch(() => undefined); if (!ch?.isText()) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.modlogs.channel.invalid")) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.modlogs.channel.invalid"))] }); } @@ -95,19 +91,35 @@ export class ModLogsCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.moderation.modlogs.channel.success", { channel: newCh }), true) + createEmbed( + "success", + i18n.__mf("commands.moderation.modlogs.channel.success", { channel: newCh }), + true + ) ] }); }, - default: ctx => ctx.reply({ - embeds: [ - createEmbed("info") - .setAuthor(i18n.__("commands.moderation.modlogs.embedTitle")) - .addField(`${this.client.config.mainPrefix}modlogs enable`, i18n.__("commands.moderation.modlogs.slashEnableDescription")) - .addField(`${this.client.config.mainPrefix}modlogs disable`, i18n.__("commands.moderation.modlogs.slashDisableDescription")) - .addField(`${this.client.config.mainPrefix}modlogs channel [${i18n.__("commands.moderation.modlogs.newChannelText")}]`, i18n.__("commands.moderation.modlogs.slashChannelDescription")) - ] - }), + default: ctx => + ctx.reply({ + embeds: [ + createEmbed("info") + .setAuthor(i18n.__("commands.moderation.modlogs.embedTitle")) + .addField( + `${this.client.config.mainPrefix}modlogs enable`, + i18n.__("commands.moderation.modlogs.slashEnableDescription") + ) + .addField( + `${this.client.config.mainPrefix}modlogs disable`, + i18n.__("commands.moderation.modlogs.slashDisableDescription") + ) + .addField( + `${this.client.config.mainPrefix}modlogs channel [${i18n.__( + "commands.moderation.modlogs.newChannelText" + )}]`, + i18n.__("commands.moderation.modlogs.slashChannelDescription") + ) + ] + }), disable: async ctx => { await this.client.data.save(() => { const data = this.client.data.data; @@ -127,9 +139,7 @@ export class ModLogsCommand extends BaseCommand { }); return ctx.reply({ - embeds: [ - createEmbed("success", i18n.__("commands.moderation.modlogs.disable"), true) - ] + embeds: [createEmbed("success", i18n.__("commands.moderation.modlogs.disable"), true)] }); }, enable: async ctx => { @@ -151,9 +161,7 @@ export class ModLogsCommand extends BaseCommand { }); return ctx.reply({ - embeds: [ - createEmbed("success", i18n.__("commands.moderation.modlogs.enable"), true) - ] + embeds: [createEmbed("success", i18n.__("commands.moderation.modlogs.enable"), true)] }); } }; diff --git a/src/commands/moderation/MuteCommand.ts b/src/commands/moderation/MuteCommand.ts index 7670340fb..f25dff52d 100644 --- a/src/commands/moderation/MuteCommand.ts +++ b/src/commands/moderation/MuteCommand.ts @@ -34,7 +34,8 @@ export class MuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.guild) return; - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + const memberId = + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); @@ -54,9 +55,12 @@ export class MuteCommand extends BaseCommand { if (!muteRole) { return ctx.reply({ embeds: [ - createEmbed("warn", i18n.__mf("commands.moderation.mute.noRole", { - prefix: this.client.config.mainPrefix - })) + createEmbed( + "warn", + i18n.__mf("commands.moderation.mute.noRole", { + prefix: this.client.config.mainPrefix + }) + ) ] }); } @@ -66,20 +70,32 @@ export class MuteCommand extends BaseCommand { }); } - const reason = ctx.options?.getString("reason") ?? ( - ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") - ); + const reason = + ctx.options?.getString("reason") ?? + (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); const mute = await member.roles.add(muteRole, reason).catch(err => new Error(err as string | undefined)); - if (mute instanceof Error) return ctx.reply({ embeds: [createEmbed("error", i18n.__mf("commands.moderation.mute.muteFail", { message: mute.message }), true)] }); + if (mute instanceof Error) + return ctx.reply({ + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.mute.muteFail", { message: mute.message }), + true + ) + ] + }); const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ embeds: [ - createEmbed("error", i18n.__mf("commands.moderation.mute.userMuted", { - guildName: ctx.guild.name - })) + createEmbed( + "error", + i18n.__mf("commands.moderation.mute.userMuted", { + guildName: ctx.guild.name + }) + ) .setColor("LIGHT_GREY") .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) .addField(i18n.__("commands.moderation.common.reasonString"), reason) @@ -94,6 +110,14 @@ export class MuteCommand extends BaseCommand { }); } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.mute.muteSuccess", { user: member.user.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.mute.muteSuccess", { user: member.user.tag }), + true + ) + ] + }); } } diff --git a/src/commands/moderation/PurgeCommand.ts b/src/commands/moderation/PurgeCommand.ts index 61333a28b..cc9061a9b 100644 --- a/src/commands/moderation/PurgeCommand.ts +++ b/src/commands/moderation/PurgeCommand.ts @@ -33,16 +33,32 @@ export class PurgeCommand extends BaseCommand { } await (ctx.context as Message).delete(); - const purge = await (ctx.channel as TextChannel).bulkDelete(amount, true) + const purge = await (ctx.channel as TextChannel) + .bulkDelete(amount, true) .catch(err => new Error(err as string | undefined)); if (purge instanceof Error) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__mf("commands.moderation.purge.purgeFail", { - message: purge.message - }), true)] + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.moderation.purge.purgeFail", { + message: purge.message + }), + true + ) + ] }); } - await ctx.reply({ embeds: [createEmbed("success", `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}`)] }).then(msg => setTimeout(() => msg.delete(), 3500)); + await ctx + .reply({ + embeds: [ + createEmbed( + "success", + `🧹 **|** ${i18n.__mf("commands.moderation.purge.purgeSuccess", { amount: purge.size })}` + ) + ] + }) + .then(msg => setTimeout(() => msg.delete(), 3500)); } } diff --git a/src/commands/moderation/SetMuteCommand.ts b/src/commands/moderation/SetMuteCommand.ts index 505d94e44..9c7ad65dd 100644 --- a/src/commands/moderation/SetMuteCommand.ts +++ b/src/commands/moderation/SetMuteCommand.ts @@ -26,9 +26,7 @@ export class SetMuteCommand extends BaseCommand { const role = await ctx.guild?.roles.fetch(id).catch(() => undefined); if (!role) { await ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.moderation.setmute.invalidRole")) - ] + embeds: [createEmbed("error", i18n.__("commands.moderation.setmute.invalidRole"))] }); return; @@ -48,9 +46,7 @@ export class SetMuteCommand extends BaseCommand { }; }); await ctx.reply({ - embeds: [ - createEmbed("success", i18n.__mf("commands.moderation.setmute.success", { role: role.id })) - ] + embeds: [createEmbed("success", i18n.__mf("commands.moderation.setmute.success", { role: role.id }))] }); } } diff --git a/src/commands/moderation/UnBanCommand.ts b/src/commands/moderation/UnBanCommand.ts index 92f4542f5..b291c3f57 100644 --- a/src/commands/moderation/UnBanCommand.ts +++ b/src/commands/moderation/UnBanCommand.ts @@ -33,7 +33,8 @@ export class UnBanCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.guild) return; - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + const memberId = + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getString("memberid"); const user = await this.client.users.fetch(memberId!, { force: false }).catch(() => undefined); @@ -50,23 +51,31 @@ export class UnBanCommand extends BaseCommand { }); } - const unban = await ctx.guild.bans.remove( - user.id, - ctx.options?.getString("reason") ?? ( - ctx.args.length - ? ctx.args.join(" ") - : i18n.__("commands.moderation.common.noReasonString") + const unban = await ctx.guild.bans + .remove( + user.id, + ctx.options?.getString("reason") ?? + (ctx.args.length ? ctx.args.join(" ") : i18n.__("commands.moderation.common.noReasonString")) ) - ) .catch(err => new Error(err as string | undefined)); if (unban instanceof Error) { return ctx.reply({ - embeds: [createEmbed("error", i18n.__mf("commands.moderation.unban.unbanFail", { - message: unban.message - }), true)] + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.unban.unbanFail", { + message: unban.message + }), + true + ) + ] }); } - return ctx.reply({ embeds: [createEmbed("success", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: user.tag }), true)] }); + return ctx.reply({ + embeds: [ + createEmbed("success", i18n.__mf("commands.moderation.unban.ubanSuccess", { user: user.tag }), true) + ] + }); } } diff --git a/src/commands/moderation/UnMuteCommand.ts b/src/commands/moderation/UnMuteCommand.ts index 0a406c053..9ecc41114 100644 --- a/src/commands/moderation/UnMuteCommand.ts +++ b/src/commands/moderation/UnMuteCommand.ts @@ -34,7 +34,8 @@ export class UnMuteCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<Message | undefined> { if (!ctx.guild) return; - const memberId = ctx.args.shift()?.replace(/[^0-9]/g, "") ?? + const memberId = + ctx.args.shift()?.replace(/[^0-9]/g, "") ?? ctx.options?.getUser("user")?.id ?? ctx.options?.getUser("member")?.id; const member = ctx.guild.members.resolve(memberId!); @@ -48,12 +49,14 @@ export class UnMuteCommand extends BaseCommand { const muteRole = await this.client.utils.fetchMuteRole(ctx.guild); if (!muteRole) { return ctx.reply({ - embeds: [createEmbed( - "warn", - i18n.__mf("commands.moderation.mute.noRole", { - prefix: this.client.config.mainPrefix - }) - )] + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.moderation.mute.noRole", { + prefix: this.client.config.mainPrefix + }) + ) + ] }); } if (!member.roles.cache.has(muteRole.id)) { @@ -62,43 +65,55 @@ export class UnMuteCommand extends BaseCommand { }); } - const reason = ctx.options?.getString("reason") ?? ( - ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString") - ); + const reason = + ctx.options?.getString("reason") ?? + (ctx.args.join(" ") || i18n.__("commands.moderation.common.noReasonString")); const unmute = await member.roles.remove(muteRole, reason).catch(err => new Error(err as string | undefined)); if (unmute instanceof Error) { return ctx.reply({ - embeds: [createEmbed( - "error", - i18n.__mf("commands.moderation.unmute.unmuteFail", { - message: unmute.message - }), - true - )] + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.moderation.unmute.unmuteFail", { + message: unmute.message + }), + true + ) + ] }); } const dm = await member.user.createDM().catch(() => undefined); if (dm) { await dm.send({ - embeds: [createEmbed("info", - i18n.__mf("commands.moderation.unmute.userUnmuted", { - guildName: ctx.guild.name - })) - .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) - .addField(i18n.__("commands.moderation.common.reasonString"), reason) - .setFooter({ - text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), - iconURL: ctx.author.displayAvatarURL({ dynamic: true }) - }) - .setTimestamp(Date.now())] + embeds: [ + createEmbed( + "info", + i18n.__mf("commands.moderation.unmute.userUnmuted", { + guildName: ctx.guild.name + }) + ) + .setThumbnail(ctx.guild.iconURL({ dynamic: true, format: "png", size: 1024 })!) + .addField(i18n.__("commands.moderation.common.reasonString"), reason) + .setFooter({ + text: i18n.__mf("commands.moderation.unmute.unmutedByString", { author: ctx.author.tag }), + iconURL: ctx.author.displayAvatarURL({ dynamic: true }) + }) + .setTimestamp(Date.now()) + ] }); } return ctx.reply({ - embeds: [createEmbed("success", i18n.__mf("commands.moderation.unmute.unmuteSuccess", { - user: member.user.tag - }), true)] + embeds: [ + createEmbed( + "success", + i18n.__mf("commands.moderation.unmute.unmuteSuccess", { + user: member.user.tag + }), + true + ) + ] }); } } diff --git a/src/commands/moderation/WarnCommand.ts b/src/commands/moderation/WarnCommand.ts index eaaa49f9e..c1839a5b8 100644 --- a/src/commands/moderation/WarnCommand.ts +++ b/src/commands/moderation/WarnCommand.ts @@ -31,9 +31,9 @@ import { Message } from "discord.js"; export class WarnCommand extends BaseCommand { @memberReqPerms(["MANAGE_GUILD"], i18n.__("commands.moderation.warn.userNoPermission")) public async execute(ctx: CommandContext): Promise<Message | undefined> { - const member = ctx.guild?.members.resolve( - ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "" - )?.user ?? ctx.options?.getUser("member", true); + const member = + ctx.guild?.members.resolve(ctx.args.shift()?.replace(/[^0-9]/g, "") ?? "")?.user ?? + ctx.options?.getUser("member", true); if (!member) { return ctx.reply({ embeds: [createEmbed("warn", i18n.__("commands.moderation.common.noUserSpecified"))] @@ -90,15 +90,19 @@ export class WarnCommand extends BaseCommand { return newData; }); - void this.client.modlogs.handleWarn({ - author: ctx.author, - guild: ctx.guild!, - reason, - user: member - }).catch(() => null); + void this.client.modlogs + .handleWarn({ + author: ctx.author, + guild: ctx.guild!, + reason, + user: member + }) + .catch(() => null); return ctx.reply({ - embeds: [createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true)] + embeds: [ + createEmbed("success", i18n.__mf("commands.moderation.warn.warnSuccess", { user: member.tag }), true) + ] }); } } diff --git a/src/commands/music/DJCommand.ts b/src/commands/music/DJCommand.ts index 6aae49de2..597be4d3c 100644 --- a/src/commands/music/DJCommand.ts +++ b/src/commands/music/DJCommand.ts @@ -39,15 +39,25 @@ import i18n from "../../config"; }) export class DJCommand extends BaseCommand { private readonly options: Record<string, BaseCommand["execute"]> = { - default: ctx => ctx.reply({ - embeds: [ - createEmbed("info") - .setAuthor(i18n.__("commands.music.dj.embedTitle")) - .addField(`${this.client.config.mainPrefix}dj enable`, i18n.__("commands.music.dj.slashEnableDescription")) - .addField(`${this.client.config.mainPrefix}dj disable`, i18n.__("commands.music.dj.slashDisableDescription")) - .addField(`${this.client.config.mainPrefix}dj role [${i18n.__("commands.music.dj.newRoleText")}]`, i18n.__("commands.music.dj.slashRoleDescription")) - ] - }), + default: ctx => + ctx.reply({ + embeds: [ + createEmbed("info") + .setAuthor(i18n.__("commands.music.dj.embedTitle")) + .addField( + `${this.client.config.mainPrefix}dj enable`, + i18n.__("commands.music.dj.slashEnableDescription") + ) + .addField( + `${this.client.config.mainPrefix}dj disable`, + i18n.__("commands.music.dj.slashDisableDescription") + ) + .addField( + `${this.client.config.mainPrefix}dj role [${i18n.__("commands.music.dj.newRoleText")}]`, + i18n.__("commands.music.dj.slashRoleDescription") + ) + ] + }), disable: async ctx => { await this.client.data.save(() => { const data = this.client.data.data; @@ -67,9 +77,7 @@ export class DJCommand extends BaseCommand { }); return ctx.reply({ - embeds: [ - createEmbed("success", i18n.__("commands.music.dj.disableText"), true) - ] + embeds: [createEmbed("success", i18n.__("commands.music.dj.disableText"), true)] }); }, enable: async ctx => { @@ -91,14 +99,11 @@ export class DJCommand extends BaseCommand { }); return ctx.reply({ - embeds: [ - createEmbed("success", i18n.__("commands.music.dj.enableText"), true) - ] + embeds: [createEmbed("success", i18n.__("commands.music.dj.enableText"), true)] }); }, role: async ctx => { - const newRole = ctx.options?.getRole("newrole")?.id ?? - ctx.args.shift()?.replace(/[^0-9]/g, ""); + const newRole = ctx.options?.getRole("newrole")?.id ?? ctx.args.shift()?.replace(/[^0-9]/g, ""); const txt = this.client.data.data?.[ctx.guild?.id ?? ""]?.dj?.enable ? "enable" : "disable"; const footer = `${i18n.__("commands.music.dj.embedTitle")}: ${i18n.__(`commands.music.dj.${txt}`)}`; @@ -114,12 +119,14 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("info", role - ? i18n.__mf("commands.music.dj.role.current", { role }) - : i18n.__("commands.music.dj.role.noRole")) - .setFooter({ - text: footer - }) + createEmbed( + "info", + role + ? i18n.__mf("commands.music.dj.role.current", { role }) + : i18n.__("commands.music.dj.role.noRole") + ).setFooter({ + text: footer + }) ] }); } @@ -127,9 +134,7 @@ export class DJCommand extends BaseCommand { const role = await ctx.guild?.roles.fetch(newRole).catch(() => undefined); if (!role) { return ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("commands.music.dj.role.invalid"), true) - ] + embeds: [createEmbed("error", i18n.__("commands.music.dj.role.invalid"), true)] }); } @@ -152,10 +157,13 @@ export class DJCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", i18n.__mf("commands.music.dj.role.success", { role: newRole }), true) - .setFooter({ - text: footer - }) + createEmbed( + "success", + i18n.__mf("commands.music.dj.role.success", { role: newRole }), + true + ).setFooter({ + text: footer + }) ] }); } diff --git a/src/commands/music/LyricsCommand.ts b/src/commands/music/LyricsCommand.ts index 3f20a16f3..89d14b5fb 100644 --- a/src/commands/music/LyricsCommand.ts +++ b/src/commands/music/LyricsCommand.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-nested-ternary */ import { ButtonPagination } from "../../utils/structures/ButtonPagination"; import { CommandContext } from "../../structures/CommandContext"; import { createEmbed } from "../../utils/functions/createEmbed"; @@ -27,12 +28,18 @@ import { Message } from "discord.js"; }) export class LyricsCommand extends BaseCommand { public execute(ctx: CommandContext): Promise<Message> | undefined { - // eslint-disable-next-line no-nested-ternary - const query = ctx.args.length >= 1 - ? ctx.args.join(" ") - : ctx.options?.getString("query") + const query = + ctx.args.length >= 1 + ? ctx.args.join(" ") + : ctx.options?.getString("query") ? ctx.options.getString("query") - : (((ctx.guild?.queue?.player.state as AudioPlayerPlayingState).resource as AudioResource | undefined)?.metadata as QueueSong | undefined)?.song.title; + : ( + ( + (ctx.guild?.queue?.player.state as AudioPlayerPlayingState).resource as + | AudioResource + | undefined + )?.metadata as QueueSong | undefined + )?.song.title; if (!query) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.lyrics.noQuery"), true)] @@ -44,14 +51,22 @@ export class LyricsCommand extends BaseCommand { private getLyrics(ctx: CommandContext, song: string): void { const url = `https://api.lxndr.dev/lyrics?song=${encodeURI(song)}&from=DiscordRawon`; - this.client.request.get(url).json<LyricsAPIResult<false>>() + this.client.request + .get(url) + .json<LyricsAPIResult<false>>() .then(async data => { if ((data as { error: boolean }).error) { return ctx.reply({ - embeds: [createEmbed("error", i18n.__mf("commands.music.lyrics.apiError", { - song: `\`${song}\``, - message: `\`${(data as { message?: string }).message!}\`` - }), true)] + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.music.lyrics.apiError", { + song: `\`${song}\``, + message: `\`${(data as { message?: string }).message!}\`` + }), + true + ) + ] }); } @@ -59,17 +74,15 @@ export class LyricsCommand extends BaseCommand { const pages: string[] = chunk(data.lyrics!, 2048); const embed = createEmbed("info", pages[0]) .setAuthor({ - name: data.song && data.artist - ? `${data.song} - ${data.artist}` - : song.toUpperCase() + name: data.song && data.artist ? `${data.song} - ${data.artist}` : song.toUpperCase() }) .setThumbnail(albumArt); const msg = await ctx.reply({ embeds: [embed] }); return new ButtonPagination(msg, { author: ctx.author.id, - edit: (i, e, p) => e.setDescription(p) - .setFooter({ + edit: (i, e, p) => + e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length diff --git a/src/commands/music/NowPlayingCommand.ts b/src/commands/music/NowPlayingCommand.ts index f103dd243..541d8ddb2 100644 --- a/src/commands/music/NowPlayingCommand.ts +++ b/src/commands/music/NowPlayingCommand.ts @@ -21,44 +21,38 @@ export class NowPlayingCommand extends BaseCommand { @haveQueue public async execute(ctx: CommandContext): Promise<void> { function getEmbed(): MessageEmbed { - const song = ((ctx.guild?.queue?.player.state as (AudioPlayerState & { - resource: AudioResource | undefined; - }) | undefined)?.resource?.metadata as QueueSong | undefined)?.song; + const song = ( + ( + ctx.guild?.queue?.player.state as + | (AudioPlayerState & { + resource: AudioResource | undefined; + }) + | undefined + )?.resource?.metadata as QueueSong | undefined + )?.song; - return createEmbed("info", `${ - ctx.guild?.queue?.playing - ? "▶" - : "⏸" - } **|** ${ - song - ? `**[${song.title}](${song.url})**` - : i18n.__("commands.music.nowplaying.emptyQueue") - }`).setThumbnail(song?.thumbnail ?? "https://api.clytage.org/assets/images/icon.png"); + return createEmbed( + "info", + `${ctx.guild?.queue?.playing ? "▶" : "⏸"} **|** ${ + song ? `**[${song.title}](${song.url})**` : i18n.__("commands.music.nowplaying.emptyQueue") + }` + ).setThumbnail(song?.thumbnail ?? "https://api.clytage.org/assets/images/icon.png"); } - const buttons = new MessageActionRow() - .addComponents( - new MessageButton() - .setCustomId("TOGGLE_STATE_BUTTON") - .setLabel("Pause/Resume") - .setStyle("PRIMARY") - .setEmoji("⏯️"), - new MessageButton() - .setCustomId("SKIP_BUTTON") - .setLabel("Skip") - .setStyle("SECONDARY") - .setEmoji("⏭"), - new MessageButton() - .setCustomId("STOP_BUTTON") - .setLabel("Stop Player") - .setStyle("DANGER") - .setEmoji("⏹"), - new MessageButton() - .setCustomId("SHOW_QUEUE_BUTTON") - .setLabel("Show Queue") - .setStyle("SECONDARY") - .setEmoji("#️⃣") - ); + const buttons = new MessageActionRow().addComponents( + new MessageButton() + .setCustomId("TOGGLE_STATE_BUTTON") + .setLabel("Pause/Resume") + .setStyle("PRIMARY") + .setEmoji("⏯️"), + new MessageButton().setCustomId("SKIP_BUTTON").setLabel("Skip").setStyle("SECONDARY").setEmoji("⏭"), + new MessageButton().setCustomId("STOP_BUTTON").setLabel("Stop Player").setStyle("DANGER").setEmoji("⏹"), + new MessageButton() + .setCustomId("SHOW_QUEUE_BUTTON") + .setLabel("Show Queue") + .setStyle("SECONDARY") + .setEmoji("#️⃣") + ); const msg = await ctx.reply({ embeds: [getEmbed()], components: [buttons] }); const collector = msg.createMessageComponentCollector({ @@ -66,46 +60,45 @@ export class NowPlayingCommand extends BaseCommand { idle: 30000 }); - collector.on("collect", async i => { - const newCtx = new CommandContext(i); - let cmdName = ""; + collector + .on("collect", async i => { + const newCtx = new CommandContext(i); + let cmdName = ""; - switch (i.customId) { - case "TOGGLE_STATE_BUTTON": { - cmdName = ctx.guild?.queue?.playing - ? "pause" - : "resume"; - break; - } + switch (i.customId) { + case "TOGGLE_STATE_BUTTON": { + cmdName = ctx.guild?.queue?.playing ? "pause" : "resume"; + break; + } - case "SKIP_BUTTON": { - cmdName = "skip"; - break; - } + case "SKIP_BUTTON": { + cmdName = "skip"; + break; + } - case "SHOW_QUEUE_BUTTON": { - cmdName = "queue"; - break; - } + case "SHOW_QUEUE_BUTTON": { + cmdName = "queue"; + break; + } - case "STOP_BUTTON": { - cmdName = "stop"; - break; + case "STOP_BUTTON": { + cmdName = "stop"; + break; + } } - } - await this.client.commands.get(cmdName)?.execute(newCtx); + await this.client.commands.get(cmdName)?.execute(newCtx); - const embed = getEmbed(); + const embed = getEmbed(); - await msg.edit({ embeds: [embed] }); - }).on("end", () => { - const embed = getEmbed() - .setFooter({ text: i18n.__("commands.music.nowplaying.disableButton") }); + await msg.edit({ embeds: [embed] }); + }) + .on("end", () => { + const embed = getEmbed().setFooter({ text: i18n.__("commands.music.nowplaying.disableButton") }); - void msg.edit({ - embeds: [embed], - components: [] + void msg.edit({ + embeds: [embed], + components: [] + }); }); - }); } } diff --git a/src/commands/music/PlayCommand.ts b/src/commands/music/PlayCommand.ts index 6e506efa5..cede5ea60 100644 --- a/src/commands/music/PlayCommand.ts +++ b/src/commands/music/PlayCommand.ts @@ -38,8 +38,7 @@ export class PlayCommand extends BaseCommand { const toQueue: Song[] = []; for (const track of tracks) { - const song = await searchTrack(this.client, track as string) - .catch(() => null); + const song = await searchTrack(this.client, track as string).catch(() => null); if (!song) continue; toQueue.push(song.items[0]); @@ -48,32 +47,39 @@ export class PlayCommand extends BaseCommand { return handleVideos(this.client, ctx, toQueue, voiceChannel); } - const query = ( - ctx.args.join(" ") || ctx.options?.getString("query") - ) ?? ( - ctx.additionalArgs.get("values") + const query = + (ctx.args.join(" ") || ctx.options?.getString("query")) ?? + (ctx.additionalArgs.get("values") ? (ctx.additionalArgs.get("values") as (string | undefined)[])[0] : undefined); if (!query) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { - prefix: `${this.client.config.mainPrefix}help`, - name: `${this.meta.name}` - }))] + embeds: [ + createEmbed( + "warn", + i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }) + ) + ] }); } if (ctx.guild?.queue && voiceChannel.id !== ctx.guild.queue.connection?.joinConfig.channelId) { return ctx.reply({ - embeds: [createEmbed( - "warn", - i18n.__mf("commands.music.play.alreadyPlaying", { - voiceChannel: ctx.guild.channels.cache - .get((ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId)?.name ?? - "#unknown-channel" - }) - )] + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.music.play.alreadyPlaying", { + voiceChannel: + ctx.guild.channels.cache.get( + (ctx.guild.queue.connection?.joinConfig as { channelId: string }).channelId + )?.name ?? "#unknown-channel" + }) + ) + ] }); } @@ -88,9 +94,7 @@ export class PlayCommand extends BaseCommand { return handleVideos( this.client, ctx, - queryCheck.type === "playlist" - ? songs.items - : [songs.items[0]], + queryCheck.type === "playlist" ? songs.items : [songs.items[0]], voiceChannel ); } diff --git a/src/commands/music/QueueCommand.ts b/src/commands/music/QueueCommand.ts index e1191cbe9..b66bdfc7d 100644 --- a/src/commands/music/QueueCommand.ts +++ b/src/commands/music/QueueCommand.ts @@ -23,26 +23,30 @@ export class QueueCommand extends BaseCommand { public async execute(ctx: CommandContext): Promise<void> { const np = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; const full = ctx.guild!.queue!.songs.sortByIndex(); - const songs = ctx.guild?.queue?.loopMode === "QUEUE" - ? full - : full.filter(val => val.index >= np.index); - const pages = await Promise.all(chunk([...songs.values()], 10).map(async (s, n) => { - const names = await Promise.all(s.map((song, i) => { - const npKey = np.key; - const addition = song.key === npKey ? "**" : ""; + const songs = ctx.guild?.queue?.loopMode === "QUEUE" ? full : full.filter(val => val.index >= np.index); + const pages = await Promise.all( + chunk([...songs.values()], 10).map(async (s, n) => { + const names = await Promise.all( + s.map((song, i) => { + const npKey = np.key; + const addition = song.key === npKey ? "**" : ""; - return `${addition}${(n * 10) + (i + 1)} - [${song.song.title}](${song.song.url})${addition}`; - })); + return `${addition}${n * 10 + (i + 1)} - [${song.song.title}](${song.song.url})${addition}`; + }) + ); - return names.join("\n"); - })); - const embed = createEmbed("info", pages[0]).setThumbnail(ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })!); + return names.join("\n"); + }) + ); + const embed = createEmbed("info", pages[0]).setThumbnail( + ctx.guild!.iconURL({ dynamic: true, format: "png", size: 1024 })! + ); const msg = await ctx.reply({ embeds: [embed] }); return new ButtonPagination(msg, { author: ctx.author.id, - edit: (i, e, p) => e.setDescription(p) - .setFooter({ + edit: (i, e, p) => + e.setDescription(p).setFooter({ text: i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length diff --git a/src/commands/music/RemoveCommand.ts b/src/commands/music/RemoveCommand.ts index 1bea7cbd2..6c0de05d9 100644 --- a/src/commands/music/RemoveCommand.ts +++ b/src/commands/music/RemoveCommand.ts @@ -43,10 +43,7 @@ export class RemoveCommand extends BaseCommand { return; } - const positions = ( - ctx.options?.getString("positions") ?? - ctx.args.join(" ") - ).split(/[, ]/).filter(Boolean); + const positions = (ctx.options?.getString("positions") ?? ctx.args.join(" ")).split(/[, ]/).filter(Boolean); if (!positions.length) { void ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.remove.noPositions"), true)] @@ -60,7 +57,9 @@ export class RemoveCommand extends BaseCommand { ctx.guild!.queue!.songs.delete(song.key); } - const np = (ctx.guild?.queue?.player.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined)?.resource?.metadata as QueueSong | undefined; + const np = ( + ctx.guild?.queue?.player.state as (AudioPlayerState & { resource: AudioResource | undefined }) | undefined + )?.resource?.metadata as QueueSong | undefined; const isSkip = songs.map(x => x.key).includes(np?.key ?? ""); if (isSkip) { this.client.commands.get("skip")?.execute(ctx); @@ -69,35 +68,41 @@ export class RemoveCommand extends BaseCommand { const opening = `${i18n.__mf("commands.music.remove.songsRemoved", { removed: songs.length })}`; - const pages = await Promise.all(chunk(songs, 10).map(async (v, i) => { - const texts = await Promise.all(v.map( - (song, index) => `${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown( - parseHTMLElements(song.song.title) - )}` - )); + const pages = await Promise.all( + chunk(songs, 10).map(async (v, i) => { + const texts = await Promise.all( + v.map( + (song, index) => + `${isSkip ? i18n.__("commands.music.remove.songSkip") : ""}${ + i * 10 + (index + 1) + }.) ${Util.escapeMarkdown(parseHTMLElements(song.song.title))}` + ) + ); - return texts.join("\n"); - })); + return texts.join("\n"); + }) + ); const getText = (page: string): string => `\`\`\`\n${page}\`\`\``; - const embed = createEmbed("info", getText(pages[0])).setAuthor(opening).setFooter({ - text: `• ${i18n.__mf("reusable.pageFooter", { - actual: 1, - total: pages.length - })}` - }); + const embed = createEmbed("info", getText(pages[0])) + .setAuthor(opening) + .setFooter({ + text: `• ${i18n.__mf("reusable.pageFooter", { + actual: 1, + total: pages.length + })}` + }); const msg = await ctx.reply({ embeds: [embed] }).catch(() => undefined); if (!msg) return; void new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => { - e.setDescription(getText(p)) - .setFooter({ - text: `• ${i18n.__mf("reusable.pageFooter", { - actual: i + 1, - total: pages.length - })}` - }); + e.setDescription(getText(p)).setFooter({ + text: `• ${i18n.__mf("reusable.pageFooter", { + actual: i + 1, + total: pages.length + })}` + }); }, embed, pages diff --git a/src/commands/music/RepeatCommand.ts b/src/commands/music/RepeatCommand.ts index 3c780212d..5551f9e6b 100644 --- a/src/commands/music/RepeatCommand.ts +++ b/src/commands/music/RepeatCommand.ts @@ -51,28 +51,29 @@ export class RepeatCommand extends BaseCommand { emoji: "🔂" } }; - const selection = ctx.options?.getSubcommand() || - ctx.args[0] - ? Object.keys(mode).find( - key => mode[key as LoopMode].aliases.includes( - ctx.args[0] ?? ctx.options!.getSubcommand() - ) - ) - : undefined; + const selection = + ctx.options?.getSubcommand() || ctx.args[0] + ? Object.keys(mode).find(key => + mode[key as LoopMode].aliases.includes(ctx.args[0] ?? ctx.options!.getSubcommand()) + ) + : undefined; if (!selection) { return ctx.reply({ embeds: [ - createEmbed("info", `${mode[ - ctx.guild!.queue!.loopMode - ].emoji} **|** ${i18n.__mf("commands.music.repeat.actualMode", { - mode: `\`${ctx.guild!.queue!.loopMode}\`` - })}`) - .setFooter({ - text: i18n.__mf("commands.music.repeat.footer", { - prefix: this.client.config.mainPrefix - }) + createEmbed( + "info", + `${mode[ctx.guild!.queue!.loopMode].emoji} **|** ${i18n.__mf( + "commands.music.repeat.actualMode", + { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + } + )}` + ).setFooter({ + text: i18n.__mf("commands.music.repeat.footer", { + prefix: this.client.config.mainPrefix }) + }) ] }); } @@ -80,11 +81,12 @@ export class RepeatCommand extends BaseCommand { return ctx.reply({ embeds: [ - createEmbed("success", `${mode[ - ctx.guild!.queue!.loopMode - ].emoji} **|** ${i18n.__mf("commands.music.repeat.newMode", { - mode: `\`${ctx.guild!.queue!.loopMode}\`` - })}`) + createEmbed( + "success", + `${mode[ctx.guild!.queue!.loopMode].emoji} **|** ${i18n.__mf("commands.music.repeat.newMode", { + mode: `\`${ctx.guild!.queue!.loopMode}\`` + })}` + ) ] }); } diff --git a/src/commands/music/SearchCommand.ts b/src/commands/music/SearchCommand.ts index bde9473ac..4a7020fbd 100644 --- a/src/commands/music/SearchCommand.ts +++ b/src/commands/music/SearchCommand.ts @@ -7,7 +7,15 @@ import { BaseCommand } from "../../structures/BaseCommand"; import { Command } from "../../utils/decorators/Command"; import { Song } from "../../typings"; import i18n from "../../config"; -import { CommandInteractionOptionResolver, Message, MessageActionRow, MessageSelectOptionData, MessageSelectMenu, SelectMenuInteraction, Util } from "discord.js"; +import { + CommandInteractionOptionResolver, + Message, + MessageActionRow, + MessageSelectOptionData, + MessageSelectMenu, + SelectMenuInteraction, + Util +} from "discord.js"; @Command<typeof SearchCommand>({ aliases: ["sc"], @@ -59,8 +67,8 @@ export class SearchCommand extends BaseCommand { newCtx.additionalArgs.set("fromSearch", true); this.client.commands.get("play")!.execute(newCtx); - const msg = await ctx.channel!.messages - .fetch((ctx.context as SelectMenuInteraction).message.id) + const msg = await ctx + .channel!.messages.fetch((ctx.context as SelectMenuInteraction).message.id) .catch(() => undefined); if (msg !== undefined) { const selection = msg.components[0].components.find(x => x.type === "SELECT_MENU"); @@ -71,16 +79,12 @@ export class SearchCommand extends BaseCommand { return; } - const source = ctx.options?.getString("source") ?? ( - ["youtube", "soundcloud"].includes(ctx.args.slice(-1)[0]?.toLowerCase()) - ? ctx.args.pop()! - : "youtube" - ); - const query = ( - ctx.args.join(" ") || ctx.options?.getString("query") - ) ?? ( - ctx.options as CommandInteractionOptionResolver<"cached"> | null - )?.getMessage("message")?.content; + const source = + ctx.options?.getString("source") ?? + (["youtube", "soundcloud"].includes(ctx.args.slice(-1)[0]?.toLowerCase()) ? ctx.args.pop()! : "youtube"); + const query = + (ctx.args.join(" ") || ctx.options?.getString("query")) ?? + (ctx.options as CommandInteractionOptionResolver<"cached"> | null)?.getMessage("message")?.content; if (!query) { return ctx.send({ @@ -92,13 +96,9 @@ export class SearchCommand extends BaseCommand { return this.client.commands.get("play")!.execute(newCtx); } - const tracks = await searchTrack( - this.client, - query, - source as "soundcloud" | "youtube" - ).then( - x => ({ items: x.items.slice(0, 10), type: x.type }) - ).catch(() => undefined); + const tracks = await searchTrack(this.client, query, source as "soundcloud" | "youtube") + .then(x => ({ items: x.items.slice(0, 10), type: x.type })) + .catch(() => undefined); if (!tracks || tracks.items.length <= 0) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noTracks"), true)] @@ -108,63 +108,73 @@ export class SearchCommand extends BaseCommand { return ctx.send({ content: i18n.__("commands.music.search.interactionContent"), components: [ - new MessageActionRow() - .addComponents( - new MessageSelectMenu() - .setMinValues(1) - .setMaxValues(10) - .setCustomId( - Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64") - ) - .addOptions(this.generateSelectMenu(tracks.items)) - .setPlaceholder(i18n.__("commands.music.search.interactionPlaceholder")) - ) + new MessageActionRow().addComponents( + new MessageSelectMenu() + .setMinValues(1) + .setMaxValues(10) + .setCustomId(Buffer.from(`${ctx.author.id}_${this.meta.name}`).toString("base64")) + .addOptions(this.generateSelectMenu(tracks.items)) + .setPlaceholder(i18n.__("commands.music.search.interactionPlaceholder")) + ) ] }); } const msg = await ctx.send({ - embeds: [createEmbed("info", `${i18n.__mf("commands.music.search.queueEmbed", { - separator: "`,`", - example: "`1, 2, 3`" - })}\`\`\`\n${tracks.items.map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`).join("\n")}\`\`\``) - .setAuthor({ name: i18n.__("commands.music.search.trackSelectionMessage"), iconURL: this.client.user?.displayAvatarURL() }) - .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) })] + embeds: [ + createEmbed( + "info", + `${i18n.__mf("commands.music.search.queueEmbed", { + separator: "`,`", + example: "`1, 2, 3`" + })}\`\`\`\n${tracks.items + .map((x, i) => `${i + 1} - ${Util.escapeMarkdown(parseHTMLElements(x.title))}`) + .join("\n")}\`\`\`` + ) + .setAuthor({ + name: i18n.__("commands.music.search.trackSelectionMessage"), + iconURL: this.client.user?.displayAvatarURL() + }) + .setFooter({ text: i18n.__mf("commands.music.search.cancelMessage", { cancel: "cancel", c: "c" }) }) + ] }); - const respond = await msg.channel.awaitMessages({ - errors: ["time"], - filter: m => { - const nums = m.content.split(/, /) - .filter(x => Number(x) > 0 && Number(x) <= tracks.items.length); - - return m.author.id === ctx.author.id && ( - ["c", "cancel"].includes(m.content.toLowerCase()) || nums.length >= 1 - ); - }, - max: 1 - }).catch(() => undefined); + const respond = await msg.channel + .awaitMessages({ + errors: ["time"], + filter: m => { + const nums = m.content.split(/, /).filter(x => Number(x) > 0 && Number(x) <= tracks.items.length); + + return ( + m.author.id === ctx.author.id && + (["c", "cancel"].includes(m.content.toLowerCase()) || nums.length >= 1) + ); + }, + max: 1 + }) + .catch(() => undefined); if (!respond) { - msg.delete() - .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.search.noSelection"), true)] }); } if (["c", "cancel"].includes(respond.first()?.content.toLowerCase() ?? "")) { - msg.delete() - .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); return ctx.reply({ embeds: [createEmbed("info", i18n.__("commands.music.search.canceledMessage"), true)] }); } - msg.delete() - .catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); - respond.first()?.delete() + msg.delete().catch(err => this.client.logger.error("SEARCH_SELECTION_DELETE_MSG_ERR:", err)); + respond + .first() + ?.delete() .catch(err => this.client.logger.error("SEARCH_SELECTION_NUM_DELETE_MSG_ERR:", err)); - const songs = respond.first()!.content - .split(/, /).filter(x => Number(x) > 0 && Number(x) <= tracks.items.length) + const songs = respond + .first()! + .content.split(/, /) + .filter(x => Number(x) > 0 && Number(x) <= tracks.items.length) .sort((a, b) => Number(a) - Number(b)); const newCtx = new CommandContext(ctx.context, []); @@ -177,12 +187,10 @@ export class SearchCommand extends BaseCommand { private generateSelectMenu(tracks: Song[]): MessageSelectOptionData[] { const emojis = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟"]; - return tracks.slice(0, 10).map((x, i) => ( - { - label: x.title.length > 98 ? `${x.title.slice(0, 97)}...` : x.title, - emoji: emojis[i], - value: x.url - } - )); + return tracks.slice(0, 10).map((x, i) => ({ + label: x.title.length > 98 ? `${x.title.slice(0, 97)}...` : x.title, + emoji: emojis[i], + value: x.url + })); } } diff --git a/src/commands/music/ShuffleCommand.ts b/src/commands/music/ShuffleCommand.ts index c28bb6ff4..e6953f71e 100644 --- a/src/commands/music/ShuffleCommand.ts +++ b/src/commands/music/ShuffleCommand.ts @@ -35,12 +35,17 @@ export class ShuffleCommand extends BaseCommand { @haveQueue @sameVC public execute(ctx: CommandContext): void { - const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; + const newState = ctx.options?.getString("state") ?? (ctx.args[0] as string | undefined); if (!newState) { void ctx.reply({ - embeds: [createEmbed("info", `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { - state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` - })}`)] + embeds: [ + createEmbed( + "info", + `🔀 **|** ${i18n.__mf("commands.music.shuffle.actualState", { + state: `\`${ctx.guild?.queue?.shuffle ? "ENABLED" : "DISABLED"}\`` + })}` + ) + ] }); return; } @@ -49,9 +54,14 @@ export class ShuffleCommand extends BaseCommand { const isShuffle = ctx.guild?.queue?.shuffle; void ctx.reply({ - embeds: [createEmbed("success", `${isShuffle ? "🔀" : "▶"} **|** ${i18n.__mf("commands.music.shuffle.newState", { - state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` - })}`)] + embeds: [ + createEmbed( + "success", + `${isShuffle ? "🔀" : "▶"} **|** ${i18n.__mf("commands.music.shuffle.newState", { + state: `\`${isShuffle ? "ENABLED" : "DISABLED"}\`` + })}` + ) + ] }); } } diff --git a/src/commands/music/SkipCommand.ts b/src/commands/music/SkipCommand.ts index 0a5cf5106..2b184b4d1 100644 --- a/src/commands/music/SkipCommand.ts +++ b/src/commands/music/SkipCommand.ts @@ -28,9 +28,11 @@ export class SkipCommand extends BaseCommand { const song = (ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong; function ableToSkip(member: GuildMember): boolean { - return member.roles.cache.has(djRole?.id ?? "") || - member.permissions.has("MANAGE_GUILD") || - song.requester.id === member.id; + return ( + member.roles.cache.has(djRole?.id ?? "") || + member.permissions.has("MANAGE_GUILD") || + song.requester.id === member.id + ); } if (!ableToSkip(ctx.member!)) { @@ -38,16 +40,16 @@ export class SkipCommand extends BaseCommand { if (ctx.guild?.queue?.skipVoters.includes(ctx.author.id)) { await this.manager.add(() => { - ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter( - x => x !== ctx.author.id - ); + ctx.guild!.queue!.skipVoters = ctx.guild!.queue!.skipVoters.filter(x => x !== ctx.author.id); return undefined; }); - await ctx.reply(i18n.__mf("commands.music.skip.voteResultMessage", { - length: ctx.guild.queue.skipVoters.length, - required - })); + await ctx.reply( + i18n.__mf("commands.music.skip.voteResultMessage", { + length: ctx.guild.queue.skipVoters.length, + required + }) + ); return; } @@ -66,10 +68,17 @@ export class SkipCommand extends BaseCommand { if (!ctx.guild?.queue?.playing) ctx.guild!.queue!.playing = true; ctx.guild?.queue?.player.stop(true); - void ctx.reply({ - embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skip.skipMessage", { - song: `[${song.song.title}](${song.song.url}})` - })}`).setThumbnail(song.song.thumbnail)] - }).catch(e => this.client.logger.error("SKIP_CMD_ERR:", e)); + void ctx + .reply({ + embeds: [ + createEmbed( + "success", + `⏭ **|** ${i18n.__mf("commands.music.skip.skipMessage", { + song: `[${song.song.title}](${song.song.url}})` + })}` + ).setThumbnail(song.song.thumbnail) + ] + }) + .catch(e => this.client.logger.error("SKIP_CMD_ERR:", e)); } } diff --git a/src/commands/music/SkipToCommand.ts b/src/commands/music/SkipToCommand.ts index db94de6fd..01103af00 100644 --- a/src/commands/music/SkipToCommand.ts +++ b/src/commands/music/SkipToCommand.ts @@ -58,22 +58,28 @@ export class SkipToCommand extends BaseCommand { }); } - const targetType = (ctx.args[0] as string | undefined) ?? - ctx.options?.getSubcommand() ?? - ctx.options?.getNumber("position"); + const targetType = + (ctx.args[0] as string | undefined) ?? ctx.options?.getSubcommand() ?? ctx.options?.getNumber("position"); if (!targetType) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__mf("reusable.invalidUsage", { - prefix: `${this.client.config.mainPrefix}help`, - name: `${this.meta.name}` - }))] + embeds: [ + createEmbed( + "warn", + i18n.__mf("reusable.invalidUsage", { + prefix: `${this.client.config.mainPrefix}help`, + name: `${this.meta.name}` + }) + ) + ] }); } const songs = [...ctx.guild!.queue!.songs.sortByIndex().values()]; - if (!["first", "last"].includes(String(targetType).toLowerCase()) && ( - !isNaN(Number(targetType)) && !songs[Number(targetType) - 1] - )) { + if ( + !["first", "last"].includes(String(targetType).toLowerCase()) && + !isNaN(Number(targetType)) && + !songs[Number(targetType) - 1] + ) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.noSongPosition"), true)] }); @@ -88,7 +94,10 @@ export class SkipToCommand extends BaseCommand { song = songs[Number(targetType) - 1]; } - if (song.key === ((ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).key) { + if ( + song.key === + ((ctx.guild!.queue!.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).key + ) { return ctx.reply({ embeds: [createEmbed("error", i18n.__("commands.music.skipTo.cantPlay"), true)] }); @@ -97,9 +106,14 @@ export class SkipToCommand extends BaseCommand { void play(ctx.guild!, song.key); return ctx.reply({ - embeds: [createEmbed("success", `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { - song: `[${song.song.title}](${song.song.url})` - })}`).setThumbnail(song.song.thumbnail)] + embeds: [ + createEmbed( + "success", + `⏭ **|** ${i18n.__mf("commands.music.skipTo.skipMessage", { + song: `[${song.song.title}](${song.song.url})` + })}` + ).setThumbnail(song.song.thumbnail) + ] }); } } diff --git a/src/commands/music/StayInQueueCommand.ts b/src/commands/music/StayInQueueCommand.ts index f62a3ebe4..b1c368d77 100644 --- a/src/commands/music/StayInQueueCommand.ts +++ b/src/commands/music/StayInQueueCommand.ts @@ -43,22 +43,33 @@ export class StayInQueueCommand extends BaseCommand { }); } - const newState = ctx.options?.getString("state") ?? ctx.args[0] as string | undefined; + const newState = ctx.options?.getString("state") ?? (ctx.args[0] as string | undefined); if (!newState) { return ctx.reply({ - embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.actualState", { - state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - })}`)] + embeds: [ + createEmbed( + "info", + `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.actualState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + })}` + ) + ] }); } ctx.guild!.queue!.stayInVC = newState === "enable"; return ctx.reply({ - embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.newState", { - state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` - })}`, true)] + embeds: [ + createEmbed( + "success", + `🔊 **|** ${i18n.__mf("commands.music.stayInQueue.newState", { + state: `\`${ctx.guild?.queue?.stayInVC ? "ENABLED" : "DISABLED"}\`` + })}`, + true + ) + ] }); } } diff --git a/src/commands/music/VolumeCommand.ts b/src/commands/music/VolumeCommand.ts index caf554b7b..a4a5a3d3f 100644 --- a/src/commands/music/VolumeCommand.ts +++ b/src/commands/music/VolumeCommand.ts @@ -32,31 +32,52 @@ export class VolumeCommand extends BaseCommand { if (isNaN(volume)) { return ctx.reply({ - embeds: [createEmbed("info", `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { - volume: `\`${current}\`` - })}`).setFooter({ text: i18n.__("commands.music.volume.changeVolume") })] + embeds: [ + createEmbed( + "info", + `🔊 **|** ${i18n.__mf("commands.music.volume.currentVolume", { + volume: `\`${current}\`` + })}` + ).setFooter({ text: i18n.__("commands.music.volume.changeVolume") }) + ] }); } if (volume <= 0) { return ctx.reply({ - embeds: [createEmbed("warn", i18n.__mf("commands.music.volume.plsPause", { - volume: `\`${volume}\`` - }))] + embeds: [ + createEmbed( + "warn", + i18n.__mf("commands.music.volume.plsPause", { + volume: `\`${volume}\`` + }) + ) + ] }); } if (volume > 100) { return ctx.reply({ - embeds: [createEmbed("error", i18n.__mf("commands.music.volume.volumeLimit", { - maxVol: "`100`" - }), true)] + embeds: [ + createEmbed( + "error", + i18n.__mf("commands.music.volume.volumeLimit", { + maxVol: "`100`" + }), + true + ) + ] }); } ctx.guild!.queue!.volume = volume; return ctx.reply({ - embeds: [createEmbed("success", `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { - volume - })}`)] + embeds: [ + createEmbed( + "success", + `🔊 **|** ${i18n.__mf("commands.music.volume.newVolume", { + volume + })}` + ) + ] }); } } diff --git a/src/config/env.ts b/src/config/env.ts index 5812a5972..bacb7194a 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -33,13 +33,18 @@ export const yesEmoji = process.env.YES_EMOJI! || "✅"; export const noEmoji = process.env.NO_EMOJI! || "❌"; // Multiple values -export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter((x, i, a) => a.indexOf(x) === i && x !== mainPrefix); +export const altPrefixes: string[] = parseEnvValue(process.env.ALT_PREFIX! || "{mention}").filter( + (x, i, a) => a.indexOf(x) === i && x !== mainPrefix +); export const devs: string[] = parseEnvValue(process.env.DEVS ?? ""); export const mainGuild = parseEnvValue(process.env.MAIN_GUILD ?? ""); export const presenceData: PresenceData = { activities: parseEnvValue(process.env.ACTIVITIES ?? "").map((x, i) => ({ name: x, - type: (parseEnvValue(process.env.ACTIVITY_TYPES ?? "")[i]?.toUpperCase() || "PLAYING") as Exclude<ActivityType, "CUSTOM"> + type: (parseEnvValue(process.env.ACTIVITY_TYPES ?? "")[i]?.toUpperCase() || "PLAYING") as Exclude< + ActivityType, + "CUSTOM" + > })), status: ["online"] as ClientPresenceStatus[], interval: 60000 diff --git a/src/config/index.ts b/src/config/index.ts index c155125dd..96dd71c41 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -36,11 +36,7 @@ export const clientOptions: ClientOptions = { i18n.configure({ defaultLocale: "en", directory: join(process.cwd(), "lang"), - locales: [ - "en", - "es", - "id" - ], + locales: ["en", "es", "id"], objectNotation: true }); diff --git a/src/events/ChannelUpdateEvent.ts b/src/events/ChannelUpdateEvent.ts index 8e3957cd3..4f04ef039 100644 --- a/src/events/ChannelUpdateEvent.ts +++ b/src/events/ChannelUpdateEvent.ts @@ -13,10 +13,13 @@ export class ChannelUpdateEvent extends BaseEvent { ["Type", newChannel.type] ]); - if (!newChannel.guild.queue || + if ( + !newChannel.guild.queue || newChannel.id !== newChannel.guild.queue.connection?.joinConfig.channelId || (oldChannel.type !== "GUILD_VOICE" && oldChannel.type !== "GUILD_STAGE_VOICE") || - (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE")) return; + (newChannel.type !== "GUILD_VOICE" && newChannel.type !== "GUILD_STAGE_VOICE") + ) + return; if ((oldChannel as VoiceChannel).rtcRegion !== (newChannel as VoiceChannel).rtcRegion) { const queue = newChannel.guild.queue; @@ -35,10 +38,16 @@ export class ChannelUpdateEvent extends BaseEvent { .catch(() => { queue.destroy(); this.client.logger.info( - `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Unable to re-configure network on ${newChannel.guild.name} voice channel, the queue was deleted.` + `${ + this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : "" + } Unable to re-configure network on ${ + newChannel.guild.name + } voice channel, the queue was deleted.` ); void msg.edit({ - embeds: [createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true)] + embeds: [ + createEmbed("error", i18n.__("events.channelUpdate.unableReconfigureConnection"), true) + ] }); }); } diff --git a/src/events/InteractionCreateEvent.ts b/src/events/InteractionCreateEvent.ts index 5cc79e5de..943dadd9c 100644 --- a/src/events/InteractionCreateEvent.ts +++ b/src/events/InteractionCreateEvent.ts @@ -9,26 +9,15 @@ import { BitFieldResolvable, Interaction, Permissions, PermissionString, TextCha export class InteractionCreateEvent extends BaseEvent { public async execute(interaction: Interaction): Promise<void> { this.client.debugLog.logData("info", "INTERACTION_CREATE", [ - [ - "Type", - interaction.type - ], - [ - "Guild", - interaction.inGuild() - ? `${interaction.guild?.name ?? "[???]"}(${interaction.guildId})` - : "DM" - ], + ["Type", interaction.type], + ["Guild", interaction.inGuild() ? `${interaction.guild?.name ?? "[???]"}(${interaction.guildId})` : "DM"], [ "Channel", (interaction.channel?.type ?? "DM") === "DM" ? "DM" : `${(interaction.channel as TextChannel).name}(${(interaction.channel as TextChannel).id})` ], - [ - "User", - `${interaction.user.tag}(${interaction.user.id})` - ] + ["User", `${interaction.user.tag}(${interaction.user.id})`] ]); if (!interaction.inGuild() || !this.client.commands.isReady) return; @@ -39,19 +28,26 @@ export class InteractionCreateEvent extends BaseEvent { const cmd = val.split("_")[1] ?? ""; if (cmd === "delete-msg") { - if (interaction.user.id !== user && + if ( + interaction.user.id !== user && !new Permissions( interaction.member.permissions as BitFieldResolvable<PermissionString, bigint> | undefined - ).has("MANAGE_MESSAGES")) { + ).has("MANAGE_MESSAGES") + ) { void interaction.reply({ ephemeral: true, - embeds: [createEmbed("error", i18n.__mf("events.createInteraction.message1", { - user: user.toString() - }), true)] + embeds: [ + createEmbed( + "error", + i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), + true + ) + ] }); } else { - const msg = await interaction.channel?.messages.fetch(interaction.message.id) - .catch(() => null); + const msg = await interaction.channel?.messages.fetch(interaction.message.id).catch(() => null); if (msg?.deletable) { void msg.delete(); } @@ -62,10 +58,10 @@ export class InteractionCreateEvent extends BaseEvent { const context = new CommandContext(interaction); if (interaction.isContextMenu()) { const data = interaction.options.getUser("user") ?? interaction.options.getMessage("message"); - const cmd = this.client.commands.find( - x => ((data as { type: string }).type === "MESSAGE" + const cmd = this.client.commands.find(x => + (data as { type: string }).type === "MESSAGE" ? x.meta.contextChat === interaction.commandName - : x.meta.contextUser === interaction.commandName) + : x.meta.contextUser === interaction.commandName ); if (cmd) { context.additionalArgs.set("options", data); @@ -74,7 +70,8 @@ export class InteractionCreateEvent extends BaseEvent { } if (interaction.isCommand()) { - const cmd = this.client.commands.filter(x => x.meta.slash !== undefined) + const cmd = this.client.commands + .filter(x => x.meta.slash !== undefined) .find(x => x.meta.slash!.name === interaction.commandName); if (cmd) { void cmd.execute(context); @@ -90,13 +87,20 @@ export class InteractionCreateEvent extends BaseEvent { if (interaction.user.id !== user) { void interaction.reply({ ephemeral: true, - embeds: [createEmbed("error", i18n.__mf("events.createInteraction.message1", { - user: user.toString() - }), true)] + embeds: [ + createEmbed( + "error", + i18n.__mf("events.createInteraction.message1", { + user: user.toString() + }), + true + ) + ] }); } if (cmd && user === interaction.user.id && exec) { - const command = this.client.commands.filter(x => x.meta.slash !== undefined) + const command = this.client.commands + .filter(x => x.meta.slash !== undefined) .find(x => x.meta.name === cmd); if (command) { context.additionalArgs.set("values", interaction.values); diff --git a/src/events/MessageCreateEvent.ts b/src/events/MessageCreateEvent.ts index 943be4525..6a3bbcf93 100644 --- a/src/events/MessageCreateEvent.ts +++ b/src/events/MessageCreateEvent.ts @@ -14,23 +14,28 @@ export class MessageCreateEvent extends BaseEvent { ["Author", `${message.author.tag}(${message.author.id})`] ]); - if (message.author.bot || - message.channel.type === "DM" || - !this.client.commands.isReady) return message; + if (message.author.bot || message.channel.type === "DM" || !this.client.commands.isReady) return message; if (this.getUserFromMention(message.content)?.id === this.client.user?.id) { - message.reply({ - embeds: [createEmbed("info", `👋 **|** ${i18n.__mf("events.createMessage", { - author: message.author.toString(), - prefix: `\`${this.client.config.mainPrefix}\`` - })}`)] - }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); + message + .reply({ + embeds: [ + createEmbed( + "info", + `👋 **|** ${i18n.__mf("events.createMessage", { + author: message.author.toString(), + prefix: `\`${this.client.config.mainPrefix}\`` + })}` + ) + ] + }) + .catch(e => this.client.logger.error("PROMISE_ERR:", e)); } const pref = this.client.config.altPrefixes.concat(this.client.config.mainPrefix).find(p => { if (p === "{mention}") { // eslint-disable-next-line prefer-named-capture-group - const userMention = (/<@(!)?\d*?>/).exec(message.content); + const userMention = /<@(!)?\d*?>/.exec(message.content); if (userMention?.index !== 0) return false; const user = this.getUserFromMention(userMention[0]); @@ -47,7 +52,7 @@ export class MessageCreateEvent extends BaseEvent { private getUserFromMention(mention: string): User | undefined { // eslint-disable-next-line prefer-named-capture-group - const matches = (/^<@!?(\d+)>$/).exec(mention); + const matches = /^<@!?(\d+)>$/.exec(mention); if (!matches) return undefined; const id = matches[1]; diff --git a/src/events/ReadyEvent.ts b/src/events/ReadyEvent.ts index 98a0f42de..8f26b9f90 100644 --- a/src/events/ReadyEvent.ts +++ b/src/events/ReadyEvent.ts @@ -11,8 +11,12 @@ export class ReadyEvent extends BaseEvent { await this.client.spotify.renew(); await this.doPresence(); - this.client.logger.info(this.formatString("{username} is ready to serve {users.size} users on {guilds.size} guilds in " + - "{textChannels.size} text channels and {voiceChannels.size} voice channels!")); + this.client.logger.info( + this.formatString( + "{username} is ready to serve {users.size} users on {guilds.size} guilds in " + + "{textChannels.size} text channels and {voiceChannels.size} voice channels!" + ) + ); } private async formatString(text: string): Promise<string> { @@ -48,14 +52,14 @@ export class ReadyEvent extends BaseEvent { const activityNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.activities.length) : 0; - const statusNumber = random - ? Math.floor(Math.random() * this.client.config.presenceData.status.length) - : 0; - const activity = (await Promise.all( - this.client.config.presenceData.activities.map( - async a => Object.assign(a, { name: await this.formatString(a.name) }) + const statusNumber = random ? Math.floor(Math.random() * this.client.config.presenceData.status.length) : 0; + const activity = ( + await Promise.all( + this.client.config.presenceData.activities.map(async a => + Object.assign(a, { name: await this.formatString(a.name) }) + ) ) - ))[activityNumber]; + )[activityNumber]; return this.client.user!.setPresence({ activities: (activity as { name: string } | undefined) ? [activity] : [], diff --git a/src/events/VoiceStateUpdateEvent.ts b/src/events/VoiceStateUpdateEvent.ts index 7f2976fc8..08b7c3098 100644 --- a/src/events/VoiceStateUpdateEvent.ts +++ b/src/events/VoiceStateUpdateEvent.ts @@ -50,7 +50,9 @@ export class VoiceStateUpdateEvent extends BaseEvent { const oldVC = oldState.channel; const newID = newVC?.id; const oldID = oldVC?.id; - const queueVC = newState.guild.channels.cache.get(queue.connection!.joinConfig.channelId!)! as StageChannel | VoiceChannel; + const queueVC = newState.guild.channels.cache.get(queue.connection!.joinConfig.channelId!)! as + | StageChannel + | VoiceChannel; const member = newState.member; const oldMember = oldState.member; const newVCMembers = newVC?.members.filter(m => !m.user.bot); @@ -63,13 +65,19 @@ export class VoiceStateUpdateEvent extends BaseEvent { queue.destroy(); if (!isIdle) { this.client.logger.info( - `${this.client.shard - ? `[Shard #${this.client.shard.ids[0]}]` - : ""} Disconnected from the voice channel at ${newState.guild.name}, the queue was deleted.` + `${ + this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : "" + } Disconnected from the voice channel at ${newState.guild.name}, the queue was deleted.` ); - queue.textChannel.send({ - embeds: [createEmbed("error", `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}`)] - }) + queue.textChannel + .send({ + embeds: [ + createEmbed( + "error", + `⏹️ **|** ${i18n.__("events.voiceStateUpdate.disconnectFromVCMessage")}` + ) + ] + }) .catch(e => this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e)); } } @@ -88,17 +96,23 @@ export class VoiceStateUpdateEvent extends BaseEvent { try { await entersState(queue.connection!, VoiceConnectionStatus.Ready, 20000); void msg.edit({ - embeds: [createEmbed("success", i18n.__("events.voiceStateUpdate.connectionReconfigured"), true)] + embeds: [ + createEmbed("success", i18n.__("events.voiceStateUpdate.connectionReconfigured"), true) + ] }); } catch { queue.destroy(); this.client.logger.info( - `${this.client.shard - ? `[Shard #${this.client.shard.ids[0]}]` - : ""} Unable to re-configure networking on ${newState.guild.name} voice channel, the queue was deleted.` + `${ + this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : "" + } Unable to re-configure networking on ${ + newState.guild.name + } voice channel, the queue was deleted.` ); void msg.edit({ - embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), true)] + embeds: [ + createEmbed("error", i18n.__("events.voiceStateUpdate.unableReconfigureConnection"), true) + ] }); return; } @@ -112,13 +126,16 @@ export class VoiceStateUpdateEvent extends BaseEvent { if (suppress && "error" in suppress) { queue.destroy(); this.client.logger.info( - `${this.client.shard - ? `[Shard #${this.client.shard.ids[0]}]` - : ""} Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.` + `${ + this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : "" + } Unable to join as Speaker at ${newState.guild.name} stage channel, the queue was deleted.` ); - void queue.textChannel.send({ - embeds: [createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true)] - }) + void queue.textChannel + .send({ + embeds: [ + createEmbed("error", i18n.__("events.voiceStateUpdate.unableJoinStageMessage"), true) + ] + }) .catch(e => { this.client.logger.error("VOICE_STATE_UPDATE_EVENT_ERR:", e); }); @@ -136,18 +153,18 @@ export class VoiceStateUpdateEvent extends BaseEvent { } } - if (oldID === queueVC.id && + if ( + oldID === queueVC.id && newID !== queueVC.id && !member?.user.bot && queue.timeout === null && - !queue.idle) { + !queue.idle + ) { queue.skipVoters = queue.skipVoters.filter(x => x !== member?.id); this.timeout(queueVCMembers, queue, newState); } - if (newID === queueVC.id && - !member?.user.bot && - queue.timeout) this.resume(queueVCMembers, queue, newState); + if (newID === queueVC.id && !member?.user.bot && queue.timeout) this.resume(queueVCMembers, queue, newState); } // eslint-disable-next-line class-methods-use-this @@ -165,17 +182,28 @@ export class VoiceStateUpdateEvent extends BaseEvent { state.guild.queue!.timeout = setTimeout(() => { queue.destroy(); void queue.textChannel.send({ - embeds: [createEmbed("error", `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { - duration: `\`${duration}\`` - })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") })] + embeds: [ + createEmbed( + "error", + `⏹ **|** ${i18n.__mf("events.voiceStateUpdate.deleteQueue", { + duration: `\`${duration}\`` + })}` + ).setAuthor({ name: i18n.__("events.voiceStateUpdate.deleteQueueFooter") }) + ] }); }, timeout); - void queue.textChannel.send({ - embeds: [createEmbed("warn", `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { - duration: `\`${duration}\`` - })}`).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") })] - }) - .then(msg => queue.lastVSUpdateMsg = msg.id); + void queue.textChannel + .send({ + embeds: [ + createEmbed( + "warn", + `⏸ **|** ${i18n.__mf("events.voiceStateUpdate.pauseQueue", { + duration: `\`${duration}\`` + })}` + ).setAuthor({ name: i18n.__("events.voiceStateUpdate.pauseQueueFooter") }) + ] + }) + .then(msg => (queue.lastVSUpdateMsg = msg.id)); } // eslint-disable-next-line class-methods-use-this @@ -187,14 +215,22 @@ export class VoiceStateUpdateEvent extends BaseEvent { const song = ((queue.player.state as AudioPlayerPausedState).resource.metadata as QueueSong).song; - void queue.textChannel.send({ - embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { - song: `[${song.title}](${song.url})` - })}`).setThumbnail(song.thumbnail) - .setAuthor({ - name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") - })] - }).then(msg => queue.lastVSUpdateMsg = msg.id); + void queue.textChannel + .send({ + embeds: [ + createEmbed( + "info", + `▶ **|** ${i18n.__mf("events.voiceStateUpdate.resumeQueue", { + song: `[${song.title}](${song.url})` + })}` + ) + .setThumbnail(song.thumbnail) + .setAuthor({ + name: i18n.__("events.voiceStateUpdate.resumeQueueFooter") + }) + ] + }) + .then(msg => (queue.lastVSUpdateMsg = msg.id)); state.guild.queue?.player.unpause(); } } diff --git a/src/index.ts b/src/index.ts index 38729698d..081bfaebe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -24,9 +24,16 @@ if (enableRepl) { repl.on("exit", () => process.exit()); } -manager.on("shardCreate", shard => { - log.info(`[ShardManager] Shard #${shard.id} has spawned.`); - shard.on("disconnect", () => log.warn("SHARD_DISCONNECTED: ", { stack: `[ShardManager] Shard #${shard.id} has disconnected.` })) - .on("reconnection", () => log.info(`[ShardManager] Shard #${shard.id} has reconnected.`)); - if (manager.shards.size === manager.totalShards) log.info("[ShardManager] All shards are spawned successfully."); -}).spawn().catch(e => log.error("SHARD_SPAWN_ERR: ", e)); +manager + .on("shardCreate", shard => { + log.info(`[ShardManager] Shard #${shard.id} has spawned.`); + shard + .on("disconnect", () => + log.warn("SHARD_DISCONNECTED: ", { stack: `[ShardManager] Shard #${shard.id} has disconnected.` }) + ) + .on("reconnection", () => log.info(`[ShardManager] Shard #${shard.id} has reconnected.`)); + if (manager.shards.size === manager.totalShards) + log.info("[ShardManager] All shards are spawned successfully."); + }) + .spawn() + .catch(e => log.error("SHARD_SPAWN_ERR: ", e)); diff --git a/src/structures/CommandContext.ts b/src/structures/CommandContext.ts index 9607f98c2..bfba5dab5 100644 --- a/src/structures/CommandContext.ts +++ b/src/structures/CommandContext.ts @@ -1,18 +1,41 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition, no-nested-ternary */ import { MessageInteractionAction } from "../typings"; -import { ButtonInteraction, Collection, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, InteractionReplyOptions, Message, MessageActionRow, MessageButton, MessageComponentInteraction, MessageMentions, MessageOptions, MessagePayload, ModalSubmitFieldsResolver, ModalSubmitInteraction, SelectMenuInteraction, TextBasedChannel, User } from "discord.js"; +import { + ButtonInteraction, + Collection, + CommandInteraction, + ContextMenuInteraction, + GuildMember, + Interaction, + InteractionReplyOptions, + Message, + MessageActionRow, + MessageButton, + MessageComponentInteraction, + MessageMentions, + MessageOptions, + MessagePayload, + ModalSubmitFieldsResolver, + ModalSubmitInteraction, + SelectMenuInteraction, + TextBasedChannel, + User +} from "discord.js"; export class CommandContext { public additionalArgs: Collection<string, any> = new Collection(); public channel: TextBasedChannel | null = this.context.channel; public guild = this.context.guild; - public constructor(public readonly context: CommandInteraction - | ContextMenuInteraction - | Interaction - | Message - | SelectMenuInteraction, - public args: string[] = []) {} + public constructor( + public readonly context: + | CommandInteraction + | ContextMenuInteraction + | Interaction + | Message + | SelectMenuInteraction, + public args: string[] = [] + ) {} public async deferReply(): Promise<void> { if (this.isInteraction()) { @@ -21,22 +44,29 @@ export class CommandContext { return Promise.resolve(undefined); } - public async reply(options: InteractionReplyOptions - | MessageOptions - | MessagePayload - | string - | { askDeletion?: { reference: string } }, autoedit?: boolean): Promise<Message> { + public async reply( + options: + | InteractionReplyOptions + | MessageOptions + | MessagePayload + | string + | { askDeletion?: { reference: string } }, + autoedit?: boolean + ): Promise<Message> { if (this.isInteraction()) { - if (((this.context as Interaction).isCommand() || (this.context as Interaction).isSelectMenu()) && - (this.context as CommandInteraction).replied && - !autoedit) throw new Error("Interaction is already replied."); + if ( + ((this.context as Interaction).isCommand() || (this.context as Interaction).isSelectMenu()) && + (this.context as CommandInteraction).replied && + !autoedit + ) + throw new Error("Interaction is already replied."); } const context = this.context as CommandInteraction | Message | SelectMenuInteraction; const rep = await this.send( options, this.isInteraction() - ? ((context as Interaction).isCommand() || (context as Interaction).isSelectMenu()) + ? (context as Interaction).isCommand() || (context as Interaction).isSelectMenu() ? (context as CommandInteraction).replied || (context as CommandInteraction).deferred ? "editReply" : "reply" @@ -44,40 +74,39 @@ export class CommandContext { : "reply" ).catch(e => ({ error: e })); if (!rep || "error" in rep) { - throw new Error( - `Unable to reply context, because: ${rep ? (rep.error as Error).message : "Unknown"}` - ); + throw new Error(`Unable to reply context, because: ${rep ? (rep.error as Error).message : "Unknown"}`); } // @ts-expect-error-next-line return rep instanceof Message ? rep : new Message(this.context.client, rep); } - public async send(options: InteractionReplyOptions - | MessageOptions - | MessagePayload - | string - | { askDeletion?: { reference: string } }, - type: MessageInteractionAction = "editReply"): Promise<Message> { - const deletionBtn = new MessageActionRow() - .addComponents( - new MessageButton() - .setEmoji("🗑️") - .setStyle("DANGER") - ); + public async send( + options: + | InteractionReplyOptions + | MessageOptions + | MessagePayload + | string + | { askDeletion?: { reference: string } }, + type: MessageInteractionAction = "editReply" + ): Promise<Message> { + const deletionBtn = new MessageActionRow().addComponents(new MessageButton().setEmoji("🗑️").setStyle("DANGER")); if ((options as { askDeletion?: { reference: string } }).askDeletion) { deletionBtn.components[0].setCustomId( - Buffer.from(`${(options as { askDeletion: { reference: string } }).askDeletion.reference}_delete-msg`) - .toString("base64") + Buffer.from( + `${(options as { askDeletion: { reference: string } }).askDeletion.reference}_delete-msg` + ).toString("base64") ); // eslint-disable-next-line @typescript-eslint/no-unused-expressions (options as InteractionReplyOptions).components ? (options as InteractionReplyOptions).components!.push(deletionBtn) - : (options as InteractionReplyOptions).components = [deletionBtn]; + : ((options as InteractionReplyOptions).components = [deletionBtn]); } if (this.isInteraction()) { (options as InteractionReplyOptions).fetchReply = true; - const msg = await (this.context as CommandInteraction)[type](options as InteractionReplyOptions | MessagePayload | string) as Message; + const msg = (await (this.context as CommandInteraction)[type]( + options as InteractionReplyOptions | MessagePayload | string + )) as Message; const channel = this.context.channel; const res = await channel!.messages.fetch(msg.id).catch(() => null); return res ?? msg; @@ -121,27 +150,19 @@ export class CommandContext { } public get deferred(): boolean { - return this.context instanceof Interaction - ? (this.context as CommandInteraction).deferred - : false; + return this.context instanceof Interaction ? (this.context as CommandInteraction).deferred : false; } public get options(): CommandInteraction["options"] | null { - return this.context instanceof Interaction - ? (this.context as CommandInteraction).options - : null; + return this.context instanceof Interaction ? (this.context as CommandInteraction).options : null; } public get fields(): ModalSubmitFieldsResolver | null { - return this.context instanceof ModalSubmitInteraction - ? (this.context as ModalSubmitInteraction).fields - : null; + return this.context instanceof ModalSubmitInteraction ? (this.context as ModalSubmitInteraction).fields : null; } public get author(): User { - return this.context instanceof Interaction - ? this.context.user - : this.context.author; + return this.context instanceof Interaction ? this.context.user : this.context.author; } public get member(): GuildMember | null { diff --git a/src/structures/Rawon.ts b/src/structures/Rawon.ts index 8631070df..08c01b391 100644 --- a/src/structures/Rawon.ts +++ b/src/structures/Rawon.ts @@ -52,7 +52,9 @@ export class Rawon extends Client { } }); - public constructor(opt: ClientOptions) { super(opt); } + public constructor(opt: ClientOptions) { + super(opt); + } public build: () => Promise<this> = async () => { const start = Date.now(); diff --git a/src/structures/ServerQueue.ts b/src/structures/ServerQueue.ts index a45bbf032..86a3de700 100644 --- a/src/structures/ServerQueue.ts +++ b/src/structures/ServerQueue.ts @@ -1,10 +1,18 @@ +/* eslint-disable no-nested-ternary */ import { SongManager } from "../utils/structures/SongManager"; import { createEmbed } from "../utils/functions/createEmbed"; import { play } from "../utils/handlers/GeneralUtil"; import { LoopMode, QueueSong } from "../typings"; import { Rawon } from "./Rawon"; import i18n from "../config"; -import { AudioPlayer, AudioPlayerPlayingState, AudioPlayerStatus, AudioResource, createAudioPlayer, VoiceConnection } from "@discordjs/voice"; +import { + AudioPlayer, + AudioPlayerPlayingState, + AudioPlayerStatus, + AudioResource, + createAudioPlayer, + VoiceConnection +} from "@discordjs/voice"; import { TextChannel, Snowflake } from "discord.js"; export class ServerQueue { @@ -38,39 +46,84 @@ export class ServerQueue { } }); - // @ts-expect-error: Ignore a compile error due to typed emitter error - this.player.on("stateChange", (oldState, newState) => { - if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { - newState.resource.volume?.setVolumeLogarithmic(this.volume / 100); - - const newSong = ((this.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong).song; - this.sendStartPlayingMsg(newSong); - } else if (newState.status === AudioPlayerStatus.Idle) { - const song = (oldState as AudioPlayerPlayingState).resource.metadata as QueueSong; - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${song.song.title}" on ${this.textChannel.guild.name} has ended.`); - this.skipVoters = []; - if (this.loopMode === "OFF") { - this.songs.delete(song.key); - } - - // eslint-disable-next-line no-nested-ternary - const nextS = this.shuffle && this.loopMode !== "SONG" ? this.songs.random()?.key : this.loopMode === "SONG" ? song.key : this.songs.sortByIndex().filter(x => x.index > song.index).first()?.key ?? (this.loopMode === "QUEUE" ? this.songs.sortByIndex().first()?.key ?? "" : ""); - - this.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { song: `[${song.song.title}](${song.song.url})` })}`).setThumbnail(song.song.thumbnail)] }) - .then(m => this.lastMusicMsg = m.id) - .catch(e => this.client.logger.error("PLAY_ERR:", e)) - .finally(() => { - play(this.textChannel.guild, nextS).catch(e => { - this.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${e as string}\`` }), true)] }) - .catch(er => this.client.logger.error("PLAY_ERR:", er)); - this.connection?.disconnect(); - return this.client.logger.error("PLAY_ERR:", e); + this.player + // @ts-expect-error: Ignore a compile error due to typed emitter error + .on("stateChange", (oldState, newState) => { + if (newState.status === AudioPlayerStatus.Playing && oldState.status !== AudioPlayerStatus.Paused) { + newState.resource.volume?.setVolumeLogarithmic(this.volume / 100); + + const newSong = ((this.player.state as AudioPlayerPlayingState).resource.metadata as QueueSong) + .song; + this.sendStartPlayingMsg(newSong); + } else if (newState.status === AudioPlayerStatus.Idle) { + const song = (oldState as AudioPlayerPlayingState).resource.metadata as QueueSong; + this.client.logger.info( + `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${ + song.song.title + }" on ${this.textChannel.guild.name} has ended.` + ); + this.skipVoters = []; + if (this.loopMode === "OFF") { + this.songs.delete(song.key); + } + + const nextS = + this.shuffle && this.loopMode !== "SONG" + ? this.songs.random()?.key + : this.loopMode === "SONG" + ? song.key + : this.songs + .sortByIndex() + .filter(x => x.index > song.index) + .first()?.key ?? + (this.loopMode === "QUEUE" ? this.songs.sortByIndex().first()?.key ?? "" : ""); + + this.textChannel + .send({ + embeds: [ + createEmbed( + "info", + `⏹ **|** ${i18n.__mf("utils.generalHandler.stopPlaying", { + song: `[${song.song.title}](${song.song.url})` + })}` + ).setThumbnail(song.song.thumbnail) + ] + }) + .then(m => (this.lastMusicMsg = m.id)) + .catch(e => this.client.logger.error("PLAY_ERR:", e)) + .finally(() => { + play(this.textChannel.guild, nextS).catch(e => { + this.textChannel + .send({ + embeds: [ + createEmbed( + "error", + i18n.__mf("utils.generalHandler.errorPlaying", { + message: `\`${e as string}\`` + }), + true + ) + ] + }) + .catch(er => this.client.logger.error("PLAY_ERR:", er)); + this.connection?.disconnect(); + return this.client.logger.error("PLAY_ERR:", e); + }); }); - }); - } - }) + } + }) .on("error", err => { - this.textChannel.send({ embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), true)] }).catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); + this.textChannel + .send({ + embeds: [ + createEmbed( + "error", + i18n.__mf("utils.generalHandler.errorPlaying", { message: `\`${err.message}\`` }), + true + ) + ] + }) + .catch(e => this.client.logger.error("PLAY_CMD_ERR:", e)); this.destroy(); this.client.logger.error("PLAY_ERR:", err); }) @@ -98,7 +151,9 @@ export class ServerQueue { public set volume(newVol: number) { this._volume = newVol; - (this.player.state as AudioPlayerPlayingState & { resource: AudioResource | undefined }).resource.volume?.setVolumeLogarithmic(this._volume / 100); + ( + this.player.state as AudioPlayerPlayingState & { resource: AudioResource | undefined } + ).resource.volume?.setVolumeLogarithmic(this._volume / 100); } public get skipVoters(): Snowflake[] { @@ -115,7 +170,8 @@ export class ServerQueue { public set lastMusicMsg(value: Snowflake | null) { if (this._lastMusicMsg !== null) { - this.textChannel.messages.fetch(this._lastMusicMsg, { cache: false }) + this.textChannel.messages + .fetch(this._lastMusicMsg, { cache: false }) .then(msg => { void msg.delete(); }) @@ -130,7 +186,8 @@ export class ServerQueue { public set lastVSUpdateMsg(value: Snowflake | null) { if (this._lastVSUpdateMsg !== null) { - this.textChannel.messages.fetch(this._lastVSUpdateMsg, { cache: false }) + this.textChannel.messages + .fetch(this._lastVSUpdateMsg, { cache: false }) .then(msg => { void msg.delete(); }) @@ -160,9 +217,23 @@ export class ServerQueue { } private sendStartPlayingMsg(newSong: QueueSong["song"]): void { - this.client.logger.info(`${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${this.textChannel.guild.name} has started.`); - this.textChannel.send({ embeds: [createEmbed("info", `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { song: `[${newSong.title}](${newSong.url})` })}`).setThumbnail(newSong.thumbnail)] }) - .then(m => this.lastMusicMsg = m.id) + this.client.logger.info( + `${this.client.shard ? `[Shard #${this.client.shard.ids[0]}]` : ""} Track: "${newSong.title}" on ${ + this.textChannel.guild.name + } has started.` + ); + this.textChannel + .send({ + embeds: [ + createEmbed( + "info", + `▶ **|** ${i18n.__mf("utils.generalHandler.startPlaying", { + song: `[${newSong.title}](${newSong.url})` + })}` + ).setThumbnail(newSong.thumbnail) + ] + }) + .then(m => (this.lastMusicMsg = m.id)) .catch(e => this.client.logger.error("PLAY_ERR:", e)); } } diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts index 68ac0c7a5..51533410f 100644 --- a/src/typings/index.d.ts +++ b/src/typings/index.d.ts @@ -2,7 +2,18 @@ import { CommandContext } from "../structures/CommandContext"; import { ServerQueue } from "../structures/ServerQueue"; import { Rawon } from "../structures/Rawon"; -import { ActivityType, ApplicationCommandOptionData, ApplicationCommandType, ClientEvents, ClientPresenceStatus, Client as OClient, Collection, GuildMember, MessageEmbed, Guild } from "discord.js"; +import { + ActivityType, + ApplicationCommandOptionData, + ApplicationCommandType, + ClientEvents, + ClientPresenceStatus, + Client as OClient, + Collection, + GuildMember, + MessageEmbed, + Guild +} from "discord.js"; export type MessageInteractionAction = "editReply" | "followUp" | "reply"; @@ -178,10 +189,13 @@ export interface GuildData { enable: boolean; role: string | null; }; - infractions: Record<string, { - on: number; - reason: string | null; - }[]>; + infractions: Record< + string, + { + on: number; + reason: string | null; + }[] + >; modLog?: { enable: boolean; channel: string | null; @@ -190,14 +204,13 @@ export interface GuildData { } export type NonAbstractConstructor<Result = unknown> = new (...args: any[]) => Result; -export type Constructor<Result = unknown> = - | NonAbstractConstructor<Result> - | (abstract new (...args: any[]) => Result); +export type Constructor<Result = unknown> = NonAbstractConstructor<Result> | (abstract new (...args: any[]) => Result); export type MethodDecorator<Target, Result> = ( target: Target, propertyKey: string, - descriptor: PropertyDescriptor) => Result; + descriptor: PropertyDescriptor +) => Result; export type ClassDecorator<Target extends Constructor, Result = unknown> = (target: Target) => Result; export type Promisable<Output> = Output | Promise<Output>; export type FunctionType<Args extends any[] = any[], Result = any> = (...args: Args) => Result; diff --git a/src/utils/decorators/Command.ts b/src/utils/decorators/Command.ts index b849173b8..a7680ba41 100644 --- a/src/utils/decorators/Command.ts +++ b/src/utils/decorators/Command.ts @@ -4,10 +4,8 @@ import { BaseCommand, ExtendedCommandConstructor } from "../../structures/BaseCo export function Command<T extends NonAbstractConstructor<BaseCommand> = ExtendedCommandConstructor>( meta: CommandComponent["meta"] ): ClassDecorator<T, T> { - return target => new Proxy(target, { - construct: ( - trgt, - args: [BaseCommand["client"]] - ) => new trgt(...args, meta) - }); + return target => + new Proxy(target, { + construct: (trgt, args: [BaseCommand["client"]]) => new trgt(...args, meta) + }); } diff --git a/src/utils/decorators/CommonUtil.ts b/src/utils/decorators/CommonUtil.ts index 7afa29b4b..e6d710232 100644 --- a/src/utils/decorators/CommonUtil.ts +++ b/src/utils/decorators/CommonUtil.ts @@ -9,9 +9,7 @@ export function memberReqPerms( return createCmdExecuteDecorator(ctx => { if (!ctx.member?.permissions.has(perms)) { void ctx.reply({ - embeds: [ - createEmbed("error", fallbackMsg, true) - ] + embeds: [createEmbed("error", fallbackMsg, true)] }); return false; } @@ -25,9 +23,7 @@ export function botReqPerms( return createCmdExecuteDecorator(ctx => { if (!ctx.guild?.me?.permissions.has(perms)) { void ctx.reply({ - embeds: [ - createEmbed("error", fallbackMsg, true) - ] + embeds: [createEmbed("error", fallbackMsg, true)] }); return false; } diff --git a/src/utils/decorators/Event.ts b/src/utils/decorators/Event.ts index 0a9606933..0f871d2a5 100644 --- a/src/utils/decorators/Event.ts +++ b/src/utils/decorators/Event.ts @@ -4,10 +4,8 @@ import { BaseEvent, ExtendedEventConstructor } from "../../structures/BaseEvent" export function Event<T extends NonAbstractConstructor<BaseEvent> = ExtendedEventConstructor>( event: EI["name"] ): ClassDecorator<T, T> { - return target => new Proxy(target, { - construct: ( - trgt, - args: [BaseEvent["client"]] - ) => new trgt(...args, event) - }); + return target => + new Proxy(target, { + construct: (trgt, args: [BaseEvent["client"]]) => new trgt(...args, event) + }); } diff --git a/src/utils/decorators/MusicUtil.ts b/src/utils/decorators/MusicUtil.ts index d90d83d1e..41d5f4f97 100644 --- a/src/utils/decorators/MusicUtil.ts +++ b/src/utils/decorators/MusicUtil.ts @@ -5,9 +5,7 @@ import i18n from "../../config"; export const haveQueue = createCmdExecuteDecorator(ctx => { if (!ctx.guild?.queue) { void ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("utils.musicDecorator.noQueue")) - ] + embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.noQueue"))] }); return false; } @@ -16,9 +14,7 @@ export const haveQueue = createCmdExecuteDecorator(ctx => { export const inVC = createCmdExecuteDecorator(ctx => { if (!ctx.member?.voice.channel) { void ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("utils.musicDecorator.noInVC")) - ] + embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.noInVC"))] }); return false; } @@ -30,17 +26,13 @@ export const validVC = createCmdExecuteDecorator(ctx => { if (voiceChannel?.id === ctx.guild?.me?.voice.channel?.id) return; if (!voiceChannel?.joinable) { void ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("utils.musicDecorator.validVCJoinable"), true) - ] + embeds: [createEmbed("error", i18n.__("utils.musicDecorator.validVCJoinable"), true)] }); return false; } if (!voiceChannel.permissionsFor(ctx.guild!.me!.id)?.has("SPEAK")) { void ctx.reply({ - embeds: [ - createEmbed("error", i18n.__("utils.musicDecorator.validVCPermission"), true) - ] + embeds: [createEmbed("error", i18n.__("utils.musicDecorator.validVCPermission"), true)] }); return false; } @@ -52,9 +44,7 @@ export const sameVC = createCmdExecuteDecorator(ctx => { const botVC = ctx.guild.queue?.connection?.joinConfig.channelId ?? ctx.guild.me.voice.channel.id; if (ctx.member?.voice.channel?.id !== botVC) { void ctx.reply({ - embeds: [ - createEmbed("warn", i18n.__("utils.musicDecorator.sameVC")) - ] + embeds: [createEmbed("warn", i18n.__("utils.musicDecorator.sameVC"))] }); return false; } diff --git a/src/utils/decorators/createMethodDecorator.ts b/src/utils/decorators/createMethodDecorator.ts index bf657146a..15cb5e192 100644 --- a/src/utils/decorators/createMethodDecorator.ts +++ b/src/utils/decorators/createMethodDecorator.ts @@ -1,9 +1,6 @@ import { FunctionType, MethodDecorator, Promisable } from "../../typings"; -export function createMethodDecorator< - TC = any, - Target extends FunctionType = FunctionType ->( +export function createMethodDecorator<TC = any, Target extends FunctionType = FunctionType>( func: (...args: Parameters<Target>) => Promisable<boolean | undefined> ): MethodDecorator<TC, any> { return (target, _, descriptor) => { diff --git a/src/utils/functions/createEmbed.ts b/src/utils/functions/createEmbed.ts index 855b11443..62eed93c3 100644 --- a/src/utils/functions/createEmbed.ts +++ b/src/utils/functions/createEmbed.ts @@ -10,8 +10,7 @@ const hexColors: Record<hexColorsType, string> = { }; export function createEmbed(type: hexColorsType, message?: string, emoji = false): MessageEmbed { - const embed = new MessageEmbed() - .setColor(hexColors[type] as ColorResolvable); + const embed = new MessageEmbed().setColor(hexColors[type] as ColorResolvable); if (message) embed.setDescription(message); if (type === "error" && emoji) embed.setDescription(`${noEmoji} **|** ${message!}`); diff --git a/src/utils/functions/createTable.ts b/src/utils/functions/createTable.ts index 721890111..f224aa83b 100644 --- a/src/utils/functions/createTable.ts +++ b/src/utils/functions/createTable.ts @@ -1,15 +1,18 @@ export function createTable(values: string[][]): string { - const value = values.map(x => `${x.map((y, i) => { - const sortingArr = [...values]; - const spacing = " ".repeat( - sortingArr.sort( - (a, b) => (b[i] ?? "").length - (a[i] ?? "").length - )[0][i].length - y.length - ); + const value = values + .map( + x => + `${x + .map((y, i) => { + const sortingArr = [...values]; + const spacing = " ".repeat( + sortingArr.sort((a, b) => (b[i] ?? "").length - (a[i] ?? "").length)[0][i].length - y.length + ); - return `${y}${spacing}`; - }) - .join(" :: ")}`) + return `${y}${spacing}`; + }) + .join(" :: ")}` + ) .join("\n"); return value; diff --git a/src/utils/functions/parseEnvValue.ts b/src/utils/functions/parseEnvValue.ts index 9ab49ce61..32e6fb1e1 100644 --- a/src/utils/functions/parseEnvValue.ts +++ b/src/utils/functions/parseEnvValue.ts @@ -1,13 +1,12 @@ export function parseEnvValue(str: string): string[] { - return str - .match(/(?<=(?:\s+|^))(?<str>['"])?(?:.*?)\k<str>(?=(?:(?:[,;])|(?:(?:\s+)?$)))/g) - ?.filter(x => Boolean(x.trim())) - .map( - x => (( + return ( + str + .match(/(?<=(?:\s+|^))(?<str>['"])?(?:.*?)\k<str>(?=(?:(?:[,;])|(?:(?:\s+)?$)))/g) + ?.filter(x => Boolean(x.trim())) + .map(x => (x.startsWith("'") && x.endsWith("'")) || (x.startsWith('"') && x.endsWith('"')) - ) - ? x.slice(1, x.length - 1) - : x) - ) ?? - []; + ? x.slice(1, x.length - 1) + : x + ) ?? [] + ); } diff --git a/src/utils/functions/parseHTMLElements.ts b/src/utils/functions/parseHTMLElements.ts index 20cb219ec..ca46a77bc 100644 --- a/src/utils/functions/parseHTMLElements.ts +++ b/src/utils/functions/parseHTMLElements.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ export const escapedHTMLElements: Record<string, string> = { - "\"": """, + '"': """, "&": "&", "'": "'", "/": "/", diff --git a/src/utils/handlers/SpotifyUtil.ts b/src/utils/handlers/SpotifyUtil.ts index fe2fe9398..01f59eb32 100644 --- a/src/utils/handlers/SpotifyUtil.ts +++ b/src/utils/handlers/SpotifyUtil.ts @@ -14,9 +14,11 @@ export class SpotifyUtil { .get("https://open.spotify.com/get_access_token", { headers: { // eslint-disable-next-line @typescript-eslint/naming-convention - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" + "User-Agent": + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" } - }).json<SpotifyAccessTokenAPIResult>(); + }) + .json<SpotifyAccessTokenAPIResult>(); if (!accessToken) throw new Error("Could not fetch self Spotify token."); this.token = `Bearer ${accessToken}`; return new Date(accessTokenExpirationTimestampMs).getMilliseconds() * 1000; @@ -46,14 +48,17 @@ export class SpotifyUtil { headers: { Authorization: this.token } - }).json<SpotifyPlaylist>(); + }) + .json<SpotifyPlaylist>(); let next = playlistResponse.tracks.next; while (next) { - const nextPlaylistResponse = await this.client.request.get(next, { - headers: { - Authorization: this.token - } - }).json<SpotifyPlaylist["tracks"]>(); + const nextPlaylistResponse = await this.client.request + .get(next, { + headers: { + Authorization: this.token + } + }) + .json<SpotifyPlaylist["tracks"]>(); next = nextPlaylistResponse.next; playlistResponse.tracks.items.push(...nextPlaylistResponse.items); } @@ -67,6 +72,7 @@ export class SpotifyUtil { headers: { Authorization: this.token } - }).json<SpotifyTrack>(); + }) + .json<SpotifyTrack>(); } } diff --git a/src/utils/handlers/YTDLUtil.ts b/src/utils/handlers/YTDLUtil.ts index b2affa079..a9e08a047 100644 --- a/src/utils/handlers/YTDLUtil.ts +++ b/src/utils/handlers/YTDLUtil.ts @@ -50,7 +50,8 @@ export async function getInfo(url: string): Promise<BasicYoutubeVideoInfo> { title: rawPlayDlVideoInfo.video_details.title!, url: rawPlayDlVideoInfo.video_details.url }; - } return ytdl(url, { + } + return ytdl(url, { dumpJson: true }); } diff --git a/src/utils/handlers/general/checkQuery.ts b/src/utils/handlers/general/checkQuery.ts index 6dacd69e5..f44bad656 100644 --- a/src/utils/handlers/general/checkQuery.ts +++ b/src/utils/handlers/general/checkQuery.ts @@ -16,7 +16,7 @@ export function checkQuery(string: string): QueryData { isURL: true }; - if ((/soundcloud|snd/g).exec(url.hostname)) { + if (/soundcloud|snd/g.exec(url.hostname)) { result.sourceType = "soundcloud"; if (url.pathname.includes("/sets/")) { @@ -24,17 +24,20 @@ export function checkQuery(string: string): QueryData { } else { result.type = "track"; } - } else if ((/youtube|youtu\.be/g).exec(url.hostname)) { + } else if (/youtube|youtu\.be/g.exec(url.hostname)) { result.sourceType = "youtube"; - if (!(/youtu\.be/g).exec(url.hostname) && url.pathname.startsWith("/playlist")) { + if (!/youtu\.be/g.exec(url.hostname) && url.pathname.startsWith("/playlist")) { result.type = "playlist"; - } else if (((/youtube/g).exec(url.hostname) && url.pathname.startsWith("/watch")) || ((/youtu\.be/g).exec(url.hostname) && url.pathname !== "")) { + } else if ( + (/youtube/g.exec(url.hostname) && url.pathname.startsWith("/watch")) || + (/youtu\.be/g.exec(url.hostname) && url.pathname !== "") + ) { result.type = "track"; } else { result.type = "unknown"; } - } else if ((/spotify/g).exec(url.hostname)) { + } else if (/spotify/g.exec(url.hostname)) { result.sourceType = "spotify"; if (url.pathname.startsWith("/playlist")) { diff --git a/src/utils/handlers/general/handleVideos.ts b/src/utils/handlers/general/handleVideos.ts index 48b7d1850..c8a7d12da 100644 --- a/src/utils/handlers/general/handleVideos.ts +++ b/src/utils/handlers/general/handleVideos.ts @@ -11,7 +11,12 @@ import { play } from "./play"; import { Message, StageChannel, TextChannel, Util, VoiceChannel } from "discord.js"; import { DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; -export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: Song[], voiceChannel: StageChannel | VoiceChannel): Promise<Message | undefined> { +export async function handleVideos( + client: Rawon, + ctx: CommandContext, + toQueue: Song[], + voiceChannel: StageChannel | VoiceChannel +): Promise<Message | undefined> { const wasIdle = ctx.guild?.queue?.idle; async function sendPagination(): Promise<void> { @@ -20,18 +25,29 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: } const opening = i18n.__mf("utils.generalHandler.handleVideoInitial", { length: toQueue.length }); - const pages = await Promise.all(chunk(toQueue, 10).map(async (v, i) => { - const texts = await Promise.all(v.map((song, index) => `${(i * 10) + (index + 1)}.) ${Util.escapeMarkdown(parseHTMLElements(song.title))}`)); + const pages = await Promise.all( + chunk(toQueue, 10).map(async (v, i) => { + const texts = await Promise.all( + v.map( + (song, index) => + `${i * 10 + (index + 1)}.) ${Util.escapeMarkdown(parseHTMLElements(song.title))}` + ) + ); - return texts.join("\n"); - })); + return texts.join("\n"); + }) + ); const embed = createEmbed("info", opening); const msg = await ctx.reply({ embeds: [embed] }, true); return new ButtonPagination(msg, { author: ctx.author.id, edit: (i, e, p) => { - e.setDescription(`\`\`\`\n${p}\`\`\``).setAuthor(opening).setFooter({ text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` }); + e.setDescription(`\`\`\`\n${p}\`\`\``) + .setAuthor(opening) + .setFooter({ + text: `• ${i18n.__mf("reusable.pageFooter", { actual: i + 1, total: pages.length })}` + }); }, embed, pages @@ -64,19 +80,37 @@ export async function handleVideos(client: Rawon, ctx: CommandContext, toQueue: }); ctx.guild!.queue.connection = connection; - client.debugLog.logData("info", "HANDLE_VIDEOS", `Connected to ${voiceChannel.name}(${voiceChannel.id}) in guild ${ctx.guild!.name}(${ctx.guild!.id})`); + client.debugLog.logData( + "info", + "HANDLE_VIDEOS", + `Connected to ${voiceChannel.name}(${voiceChannel.id}) in guild ${ctx.guild!.name}(${ctx.guild!.id})` + ); } catch (error) { ctx.guild?.queue.songs.clear(); delete ctx.guild!.queue; - client.debugLog.logData("error", "HANDLE_VIDEOS", `Error occured while connecting to ${ctx.guild!.name}(${ctx.guild!.id}). Reason: ${(error as Error).message}`); + client.debugLog.logData( + "error", + "HANDLE_VIDEOS", + `Error occured while connecting to ${ctx.guild!.name}(${ctx.guild!.id}). Reason: ${ + (error as Error).message + }` + ); client.logger.error("PLAY_CMD_ERR:", error); - void ctx.channel!.send({ - embeds: [createEmbed("error", i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), true)] - }).catch(e => { - client.logger.error("PLAY_CMD_ERR:", e); - }); + void ctx + .channel!.send({ + embeds: [ + createEmbed( + "error", + i18n.__mf("utils.generalHandler.errorJoining", { message: `\`${(error as Error).message}\`` }), + true + ) + ] + }) + .catch(e => { + client.logger.error("PLAY_CMD_ERR:", e); + }); return; } diff --git a/src/utils/handlers/general/play.ts b/src/utils/handlers/general/play.ts index c6f98fd1c..fc6a3fa78 100644 --- a/src/utils/handlers/general/play.ts +++ b/src/utils/handlers/general/play.ts @@ -14,18 +14,28 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): if (!song) { queue.lastMusicMsg = null; queue.lastVSUpdateMsg = null; - void queue.textChannel.send({ embeds: [createEmbed("info", `⏹ **|** ${i18n.__mf("utils.generalHandler.queueEnded", { usage: `\`${guild.client.config.mainPrefix}play\`` })}`)] }); + void queue.textChannel.send({ + embeds: [ + createEmbed( + "info", + `⏹ **|** ${i18n.__mf("utils.generalHandler.queueEnded", { + usage: `\`${guild.client.config.mainPrefix}play\`` + })}` + ) + ] + }); queue.dcTimeout = queue.stayInVC ? null : setTimeout(() => { - queue.destroy(); - void queue.textChannel.send({ embeds: [createEmbed("info", `👋 **|** ${i18n.__("utils.generalHandler.leftVC")}`)] }) - .then(msg => { - setTimeout(() => { - void msg.delete(); - }, 3500); - }); - }, 60000); + queue.destroy(); + void queue.textChannel + .send({ embeds: [createEmbed("info", `👋 **|** ${i18n.__("utils.generalHandler.leftVC")}`)] }) + .then(msg => { + setTimeout(() => { + void msg.delete(); + }, 3500); + }); + }, 60000); queue.client.debugLog.logData("info", "PLAY_HANDLER", `Queue ended for ${guild.name}(${guild.id})`); return; } @@ -38,10 +48,22 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): async function playResource(): Promise<void> { if (guild.channels.cache.get(queue!.connection!.joinConfig.channelId!)?.type === "GUILD_STAGE_VOICE") { - queue?.client.debugLog.logData("info", "PLAY_HANDLER", `Trying to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${guild.me?.voice.channel?.id ?? "ID UNKNOWN"}) in guild ${guild.name}(${guild.id})`); + queue?.client.debugLog.logData( + "info", + "PLAY_HANDLER", + `Trying to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${ + guild.me?.voice.channel?.id ?? "ID UNKNOWN" + }) in guild ${guild.name}(${guild.id})` + ); const suppressed = await guild.me?.voice.setSuppressed(false).catch((err: Error) => ({ error: err })); if (suppressed && "error" in suppressed) { - queue?.client.debugLog.logData("error", "PLAY_HANDLER", `Failed to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${guild.me?.voice.channel?.id ?? "ID UNKNOWN"}) in guild ${guild.name}(${guild.id}). Reason: ${suppressed.error.message}`); + queue?.client.debugLog.logData( + "error", + "PLAY_HANDLER", + `Failed to be a speaker in ${guild.me?.voice.channel?.name ?? "Unknown"}(${ + guild.me?.voice.channel?.id ?? "ID UNKNOWN" + }) in guild ${guild.name}(${guild.id}). Reason: ${suppressed.error.message}` + ); queue?.player.emit("error", new AudioPlayerError(suppressed.error, resource)); return; } @@ -53,14 +75,23 @@ export async function play(guild: Guild, nextSong?: string, wasIdle?: boolean): if (wasIdle) { void playResource(); } else { - queue.client.debugLog.logData("info", "PLAY_HANDLER", `Trying to enter Ready state in guild ${guild.name}(${guild.id}) voice connection`); + queue.client.debugLog.logData( + "info", + "PLAY_HANDLER", + `Trying to enter Ready state in guild ${guild.name}(${guild.id}) voice connection` + ); entersState(queue.connection!, VoiceConnectionStatus.Ready, 15000) .then(async () => { await playResource(); }) .catch((err: Error) => { - if (err.message === "The operation was aborted") err.message = "Cannot establish a voice connection within 15 seconds."; - queue.client.debugLog.logData("error", "PLAY_HANDLER", `Failed to enter Ready state in guild ${guild.name}(${guild.id}) voice connection. Reason: ${err.message}`); + if (err.message === "The operation was aborted") + err.message = "Cannot establish a voice connection within 15 seconds."; + queue.client.debugLog.logData( + "error", + "PLAY_HANDLER", + `Failed to enter Ready state in guild ${guild.name}(${guild.id}) voice connection. Reason: ${err.message}` + ); queue.player.emit("error", new AudioPlayerError(err, resource)); }); } diff --git a/src/utils/handlers/general/searchTrack.ts b/src/utils/handlers/general/searchTrack.ts index b32ee0277..e9cceae43 100644 --- a/src/utils/handlers/general/searchTrack.ts +++ b/src/utils/handlers/general/searchTrack.ts @@ -6,7 +6,11 @@ import { getInfo } from "../YTDLUtil"; import { SearchResult, Video } from "youtubei"; import { URL } from "url"; -export async function searchTrack(client: Rawon, query: string, source: "soundcloud" | "youtube" | undefined = "youtube"): Promise<SearchTrackResult> { +export async function searchTrack( + client: Rawon, + query: string, + source: "soundcloud" | "youtube" | undefined = "youtube" +): Promise<SearchTrackResult> { const result: SearchTrackResult = { items: [] }; @@ -33,31 +37,38 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl case "track": { const track = await client.soundcloud.tracks.getV2(scUrl.toString()); - result.items = [{ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }]; + result.items = [ + { + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + } + ]; break; } case "playlist": { const playlist = await client.soundcloud.playlists.getV2(scUrl.toString()); - const tracks = await Promise.all(playlist.tracks.map((track): Song => ({ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }))); + const tracks = await Promise.all( + playlist.tracks.map( + (track): Song => ({ + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + }) + ) + ); result.items = tracks; break; } - default: break; + default: + break; } break; @@ -67,19 +78,21 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl switch (queryData.type) { case "track": { const track = await youtube.getVideo( - (/youtu\.be/g).exec(url.hostname) - ? url.pathname.replace("/", "") - : url.toString() + /youtu\.be/g.exec(url.hostname) ? url.pathname.replace("/", "") : url.toString() ); if (track) { - result.items = [{ - duration: track.isLiveContent ? 0 : (track as Video).duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }]; + result.items = [ + { + duration: track.isLiveContent ? 0 : (track as Video).duration, + id: track.id, + thumbnail: track.thumbnails.sort( + (a, b) => b.height * b.width - a.height * a.width + )[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + } + ]; } break; } @@ -88,20 +101,27 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl const playlist = await youtube.getPlaylist(url.toString()); if (playlist) { - const tracks = await Promise.all(playlist.videos.map((track): Song => ({ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }))); + const tracks = await Promise.all( + playlist.videos.map( + (track): Song => ({ + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort( + (a, b) => b.height * b.width - a.height * a.width + )[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }) + ) + ); result.items = tracks; } break; } - default: break; + default: + break; } break; @@ -133,37 +153,60 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl switch (queryData.type) { case "track": { - const songData = await client.spotify.resolveTracks(url.toString()) as unknown as SpotifyTrack; - const track = sortVideos(songData, await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { type: "video" }) as SearchResult<"video">)[0]; - - result.items = [{ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }]; - break; - } - - case "playlist": { - const songs = await client.spotify.resolveTracks(url.toString()) as unknown as { track: SpotifyTrack }[]; - const tracks = await Promise.all(songs.map(async (x): Promise<Song> => { - const track = sortVideos(x.track, await youtube.search(`${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, { type: "video" }) as SearchResult<"video">)[0]; - return { + const songData = (await client.spotify.resolveTracks( + url.toString() + )) as unknown as SpotifyTrack; + const track = sortVideos( + songData, + (await youtube.search(`${songData.artists[0].name} - ${songData.name}`, { + type: "video" + })) as SearchResult<"video"> + )[0]; + + result.items = [ + { duration: track.duration === null ? 0 : track.duration, id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, + thumbnail: track.thumbnails.sort((a, b) => b.height * b.width - a.height * a.width)[0] + .url, title: track.title, url: `https://youtube.com/watch?v=${track.id}` - }; - })); + } + ]; + break; + } + + case "playlist": { + const songs = (await client.spotify.resolveTracks(url.toString())) as unknown as { + track: SpotifyTrack; + }[]; + const tracks = await Promise.all( + songs.map(async (x): Promise<Song> => { + const track = sortVideos( + x.track, + (await youtube.search( + `${x.track.artists.map(y => y.name).join(", ")}${x.track.name}`, + { type: "video" } + )) as SearchResult<"video"> + )[0]; + return { + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort( + (a, b) => b.height * b.width - a.height * a.width + )[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }; + }) + ); result.items = tracks; break; } - default: break; + default: + break; } break; @@ -172,13 +215,16 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl default: { const info = await getInfo(url.toString()).catch(() => undefined); - result.items = [{ - duration: info?.duration ?? 0, - id: info?.id ?? "", - thumbnail: info?.thumbnails?.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url ?? "", - title: info?.title ?? "Unknown Song", - url: info?.url ?? url.toString() - }]; + result.items = [ + { + duration: info?.duration ?? 0, + id: info?.id ?? "", + thumbnail: + info?.thumbnails?.sort((a, b) => b.height * b.width - a.height * a.width)[0].url ?? "", + title: info?.title ?? "Unknown Song", + url: info?.url ?? url.toString() + } + ]; break; } } @@ -189,24 +235,32 @@ export async function searchTrack(client: Rawon, query: string, source: "soundcl const searchRes = await client.soundcloud.tracks.searchV2({ q: query }); - const tracks = await Promise.all(searchRes.collection.map((track): Song => ({ - duration: track.full_duration, - id: track.id.toString(), - thumbnail: track.artwork_url, - title: track.title, - url: track.permalink_url - }))); + const tracks = await Promise.all( + searchRes.collection.map( + (track): Song => ({ + duration: track.full_duration, + id: track.id.toString(), + thumbnail: track.artwork_url, + title: track.title, + url: track.permalink_url + }) + ) + ); result.items = tracks; } else { const searchRes = (await youtube.search(query, { type: "video" })) as SearchResult<"video">; - const tracks = await Promise.all(searchRes.map((track): Song => ({ - duration: track.duration === null ? 0 : track.duration, - id: track.id, - thumbnail: track.thumbnails.sort((a, b) => (b.height * b.width) - (a.height * a.width))[0].url, - title: track.title, - url: `https://youtube.com/watch?v=${track.id}` - }))); + const tracks = await Promise.all( + searchRes.map( + (track): Song => ({ + duration: track.duration === null ? 0 : track.duration, + id: track.id, + thumbnail: track.thumbnails.sort((a, b) => b.height * b.width - a.height * a.width)[0].url, + title: track.title, + url: `https://youtube.com/watch?v=${track.id}` + }) + ) + ); result.items = tracks; } diff --git a/src/utils/structures/ButtonPagination.ts b/src/utils/structures/ButtonPagination.ts index 60c250e11..294de3285 100644 --- a/src/utils/structures/ButtonPagination.ts +++ b/src/utils/structures/ButtonPagination.ts @@ -1,4 +1,14 @@ -import { CommandInteraction, ContextMenuInteraction, Interaction, InteractionButtonOptions, Message, MessageActionRow, MessageButton, SelectMenuInteraction, TextChannel } from "discord.js"; +import { + CommandInteraction, + ContextMenuInteraction, + Interaction, + InteractionButtonOptions, + Message, + MessageActionRow, + MessageButton, + SelectMenuInteraction, + TextChannel +} from "discord.js"; import { PaginationPayload } from "../../typings"; const DATAS: InteractionButtonOptions[] = [ @@ -30,11 +40,15 @@ const DATAS: InteractionButtonOptions[] = [ ]; export class ButtonPagination { - public constructor(public readonly msg: CommandInteraction - | ContextMenuInteraction - | Interaction - | Message - | SelectMenuInteraction, public readonly payload: PaginationPayload) {} + public constructor( + public readonly msg: + | CommandInteraction + | ContextMenuInteraction + | Interaction + | Message + | SelectMenuInteraction, + public readonly payload: PaginationPayload + ) {} public async start(): Promise<void> { const embed = this.payload.embed; @@ -48,18 +62,11 @@ export class ButtonPagination { const toSend = { content: this.payload.content, embeds: [embed], - components: pages.length < 2 - ? [] - : [ - new MessageActionRow() - .addComponents(buttons) - ] + components: pages.length < 2 ? [] : [new MessageActionRow().addComponents(buttons)] }; - const msg = await ( - isInteraction - ? (this.msg as CommandInteraction).editReply(toSend) - : await (this.msg as Message).edit(toSend) - ); + const msg = await (isInteraction + ? (this.msg as CommandInteraction).editReply(toSend) + : await (this.msg as Message).edit(toSend)); const fetchedMsg = await ( this.msg.client.channels.cache.get(this.msg.channelId!) as TextChannel ).messages.fetch(msg.id); @@ -69,19 +76,30 @@ export class ButtonPagination { const collector = fetchedMsg.createMessageComponentCollector({ filter: i => { void i.deferUpdate(); - return DATAS.map( - x => x.customId.toLowerCase() - ).includes(i.customId.toLowerCase()) && i.user.id === this.payload.author; + return ( + DATAS.map(x => x.customId.toLowerCase()).includes(i.customId.toLowerCase()) && + i.user.id === this.payload.author + ); } }); collector.on("collect", async i => { switch (i.customId) { - case "PREV10": index -= 10; break; - case "PREV": index--; break; - case "NEXT": index++; break; - case "NEXT10": index += 10; break; - default: void (msg as Message).delete(); return; + case "PREV10": + index -= 10; + break; + case "PREV": + index--; + break; + case "NEXT": + index++; + break; + case "NEXT10": + index += 10; + break; + default: + void (msg as Message).delete(); + return; } index = ((index % pages.length) + Number(pages.length)) % pages.length; @@ -90,12 +108,7 @@ export class ButtonPagination { await fetchedMsg.edit({ embeds: [embed], content: this.payload.content, - components: pages.length < 2 - ? [] - : [ - new MessageActionRow() - .addComponents(buttons) - ] + components: pages.length < 2 ? [] : [new MessageActionRow().addComponents(buttons)] }); }); } diff --git a/src/utils/structures/ClientUtils.ts b/src/utils/structures/ClientUtils.ts index de405dbc2..1730804fe 100644 --- a/src/utils/structures/ClientUtils.ts +++ b/src/utils/structures/ClientUtils.ts @@ -50,15 +50,20 @@ export class ClientUtils { if (this.client.shard) { const shardChannels = await this.client.shard.broadcastEval( - (c, t) => c.channels.cache.filter(ch => { - if (t) { - return ch.type === "GUILD_TEXT" || - ch.type === "GUILD_PUBLIC_THREAD" || - ch.type === "GUILD_PRIVATE_THREAD"; - } - - return true; - }).map(ch => ch.id), + (c, t) => + c.channels.cache + .filter(ch => { + if (t) { + return ( + ch.type === "GUILD_TEXT" || + ch.type === "GUILD_PUBLIC_THREAD" || + ch.type === "GUILD_PRIVATE_THREAD" + ); + } + + return true; + }) + .map(ch => ch.id), { context: textOnly } @@ -68,15 +73,19 @@ export class ClientUtils { arr = arr.concat(channels); } } else { - arr = this.client.channels.cache.filter(ch => { - if (textOnly) { - return ch.type === "GUILD_TEXT" || - ch.type === "GUILD_PUBLIC_THREAD" || - ch.type === "GUILD_PRIVATE_THREAD"; - } + arr = this.client.channels.cache + .filter(ch => { + if (textOnly) { + return ( + ch.type === "GUILD_TEXT" || + ch.type === "GUILD_PUBLIC_THREAD" || + ch.type === "GUILD_PRIVATE_THREAD" + ); + } - return true; - }).map(ch => ch.id); + return true; + }) + .map(ch => ch.id); } return arr.filter((x, i) => arr.indexOf(x) === i).length; @@ -105,18 +114,21 @@ export class ClientUtils { } public async import<T>(path: string, ...args: any[]): Promise<T | undefined> { - const file = await import(path) - .then( - m => (m as Record<string, (new (...argument: any[]) => T) | undefined>)[parse(path).name] - ); + const file = await import(path).then( + m => (m as Record<string, (new (...argument: any[]) => T) | undefined>)[parse(path).name] + ); return file ? new file(...(args as unknown[])) : undefined; } public getFFmpegVersion(): string { try { const ffmpeg = FFmpeg.getInfo(); - return ffmpeg.version.split(/_|-| /).find(x => (/[0-9.]/).test(x))?.replace(/[^0-9.]/g, "") ?? - "Unknown"; + return ( + ffmpeg.version + .split(/_|-| /) + .find(x => /[0-9.]/.test(x)) + ?.replace(/[^0-9.]/g, "") ?? "Unknown" + ); } catch { return "Unknown"; } diff --git a/src/utils/structures/CommandManager.ts b/src/utils/structures/CommandManager.ts index f6a2222ae..4a2b97890 100644 --- a/src/utils/structures/CommandManager.ts +++ b/src/utils/structures/CommandManager.ts @@ -14,19 +14,26 @@ export class CommandManager extends Collection<string, CommandComponent> { public readonly aliases: Collection<string, string> = new Collection(); private readonly cooldowns: Collection<string, Collection<Snowflake, number>> = new Collection(); - public constructor(public client: Rawon, private readonly path: string) { super(); } + public constructor(public client: Rawon, private readonly path: string) { + super(); + } public load(): void { fs.readdir(resolve(this.path)) .then(async categories => { this.client.logger.info(`Found ${categories.length} categories, registering...`); for (const category of categories) { - const meta = (await import(pathStringToURLString(resolve(this.path, category, "category.meta.js"))) as { default: CategoryMeta }).default; + const meta = ( + (await import(pathStringToURLString(resolve(this.path, category, "category.meta.js")))) as { + default: CategoryMeta; + } + ).default; this.categories.set(category, meta); this.client.logger.info(`Registering ${category} category...`); - await fs.readdir(resolve(this.path, category)) + await fs + .readdir(resolve(this.path, category)) .then(files => files.filter(f => f !== "category.meta.js")) .then(async files => { let disabledCount = 0; @@ -39,37 +46,72 @@ export class CommandManager extends Collection<string, CommandComponent> { const path = pathStringToURLString(resolve(this.path, category, file)); const command = await this.client.utils.import<CommandComponent>(path, this.client); - if (command === undefined) throw new Error(`File ${file} is not a valid command file.`); + if (command === undefined) + throw new Error(`File ${file} is not a valid command file.`); command.meta = Object.assign(command.meta, { path, category }); if (Number(command.meta.aliases?.length) > 0) { - for (const alias of (command.meta.aliases ?? [])) { + for (const alias of command.meta.aliases ?? []) { this.aliases.set(alias, command.meta.name); } } this.set(command.meta.name, command); if (command.meta.contextChat) { - await this.registerCmd({ - name: command.meta.contextChat, - type: "MESSAGE" - }, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to message context for ${g?.id ?? "???"}, reason: ${err.message}`), - onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to message context for ${g.id}`) - }); - if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to message context for global.`); + await this.registerCmd( + { + name: command.meta.contextChat, + type: "MESSAGE" + }, + { + onError: (g, err) => + this.client.logger.error( + `Unable to register ${ + command.meta.name + } to message context for ${g?.id ?? "???"}, reason: ${ + err.message + }` + ), + onRegistered: g => + this.client.logger.info( + `Registered ${command.meta.name} to message context for ${g.id}` + ) + } + ); + if (!this.client.config.isDev) + this.client.logger.info( + `Registered ${command.meta.name} to message context for global.` + ); } if (command.meta.contextUser) { - await this.registerCmd({ - name: command.meta.contextUser, - type: "USER" - }, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to user context for ${g?.id ?? "???"}, reason: ${err.message}`), - onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to user context for ${g.id}`) - }); - if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to user context for global.`); + await this.registerCmd( + { + name: command.meta.contextUser, + type: "USER" + }, + { + onError: (g, err) => + this.client.logger.error( + `Unable to register ${command.meta.name} to user context for ${ + g?.id ?? "???" + }, reason: ${err.message}` + ), + onRegistered: g => + this.client.logger.info( + `Registered ${command.meta.name} to user context for ${g.id}` + ) + } + ); + if (!this.client.config.isDev) + this.client.logger.info( + `Registered ${command.meta.name} to user context for global.` + ); } - if (!allCmd.has(command.meta.name) && command.meta.slash && this.client.config.enableSlashCommand) { + if ( + !allCmd.has(command.meta.name) && + command.meta.slash && + this.client.config.enableSlashCommand + ) { if (!command.meta.slash.name) { Object.assign(command.meta.slash, { name: command.meta.name @@ -82,25 +124,48 @@ export class CommandManager extends Collection<string, CommandComponent> { } await this.registerCmd(command.meta.slash as ApplicationCommandData, { - onError: (g, err) => this.client.logger.error(`Unable to register ${command.meta.name} to slash command for ${g?.id ?? "???"}, reason: ${err.message}`), - onRegistered: g => this.client.logger.info(`Registered ${command.meta.name} to slash command for ${g.id}`) + onError: (g, err) => + this.client.logger.error( + `Unable to register ${command.meta.name} to slash command for ${ + g?.id ?? "???" + }, reason: ${err.message}` + ), + onRegistered: g => + this.client.logger.info( + `Registered ${command.meta.name} to slash command for ${g.id}` + ) }); - if (!this.client.config.isDev) this.client.logger.info(`Registered ${command.meta.name} to slash command for global.`); + if (!this.client.config.isDev) + this.client.logger.info( + `Registered ${command.meta.name} to slash command for global.` + ); } - this.client.logger.info(`Command ${command.meta.name} from ${category} category is now loaded.`); + this.client.logger.info( + `Command ${command.meta.name} from ${category} category is now loaded.` + ); if (command.meta.disable) disabledCount++; } catch (err) { - this.client.logger.error(`Error occured while loading ${file}: ${(err as Error).message}`); + this.client.logger.error( + `Error occured while loading ${file}: ${(err as Error).message}` + ); } } return { disabledCount, files }; }) .then(data => { - this.categories.set(category, Object.assign(meta, { - cmds: this.filter(c => c.meta.category === category) - })); - this.client.logger.info(`Done loading ${data.files.length} commands in ${category} category.`); - if (data.disabledCount !== 0) this.client.logger.info(`${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.`); + this.categories.set( + category, + Object.assign(meta, { + cmds: this.filter(c => c.meta.category === category) + }) + ); + this.client.logger.info( + `Done loading ${data.files.length} commands in ${category} category.` + ); + if (data.disabledCount !== 0) + this.client.logger.info( + `${data.disabledCount} out of ${data.files.length} commands in ${category} category is disabled.` + ); }) .catch(err => this.client.logger.error("CMD_LOADER_ERR:", err)) .finally(() => this.client.logger.info(`Done registering ${category} category.`)); @@ -116,7 +181,7 @@ export class CommandManager extends Collection<string, CommandComponent> { public handle(message: Message, pref: string): void { // eslint-disable-next-line prefer-named-capture-group - const prefix = pref === "{mention}" ? (/<@(!)?\d*?>/).exec(message.content)![0] : pref; + const prefix = pref === "{mention}" ? /<@(!)?\d*?>/.exec(message.content)![0] : pref; const args = message.content.substring(prefix.length).trim().split(/ +/); const cmd = args.shift()?.toLowerCase(); const command = this.get(cmd!) ?? this.get(this.aliases.get(cmd!)!); @@ -139,9 +204,30 @@ export class CommandManager extends Collection<string, CommandComponent> { const expirationTime = timestamps.get(message.author.id)! + cooldownAmount; if (now < expirationTime) { const timeLeft = (expirationTime - now) / 1000; - message.channel.send({ embeds: [createEmbed("warn", `⚠️ **|** ${i18n.__mf("utils.cooldownMessage", { author: message.author.toString(), timeleft: timeLeft.toFixed(1) })}`, true)] }).then(msg => { - void msg.delete().then(m => setTimeout(() => m.delete().catch(e => this.client.logger.error("PROMISE_ERR:", e)), 3500)); - }).catch(e => this.client.logger.error("PROMISE_ERR:", e)); + message.channel + .send({ + embeds: [ + createEmbed( + "warn", + `⚠️ **|** ${i18n.__mf("utils.cooldownMessage", { + author: message.author.toString(), + timeleft: timeLeft.toFixed(1) + })}`, + true + ) + ] + }) + .then(msg => { + void msg + .delete() + .then(m => + setTimeout( + () => m.delete().catch(e => this.client.logger.error("PROMISE_ERR:", e)), + 3500 + ) + ); + }) + .catch(e => this.client.logger.error("PROMISE_ERR:", e)); return; } @@ -161,8 +247,11 @@ export class CommandManager extends Collection<string, CommandComponent> { // eslint-disable-next-line no-unsafe-finally if (command.meta.devOnly && !this.client.config.devs.includes(message.author.id)) return; this.client.logger.info( - `${message.author.tag} [${message.author.id}] is using ${command.meta.name} command from ${command.meta.category!} category ` + - `on #${(message.channel as TextChannel).name} [${message.channel.id}] in guild: ${message.guild!.name} [${message.guild!.id}]` + `${message.author.tag} [${message.author.id}] is using ${command.meta.name} command from ${command.meta + .category!} category ` + + `on #${(message.channel as TextChannel).name} [${message.channel.id}] in guild: ${ + message.guild!.name + } [${message.guild!.id}]` ); } } diff --git a/src/utils/structures/ModerationLogs.ts b/src/utils/structures/ModerationLogs.ts index e644e4338..014348684 100644 --- a/src/utils/structures/ModerationLogs.ts +++ b/src/utils/structures/ModerationLogs.ts @@ -6,18 +6,16 @@ import { Guild, GuildBan, TextChannel, User } from "discord.js"; export class ModerationLogs { public constructor(public readonly client: Rawon) {} - public async handleWarn(options: { - author: User; - guild: Guild; - reason: string | null; - user: User; - }): Promise<void> { + public async handleWarn(options: { author: User; guild: Guild; reason: string | null; user: User }): Promise<void> { const ch = await this.getCh(options.guild); if (!ch) return; const embed = createEmbed("warn", i18n.__mf("commands.moderation.warn.warnSuccess", { user: options.user.tag })) .setThumbnail(options.user.displayAvatarURL({ dynamic: true, size: 1024 })) - .addField(i18n.__("commands.moderation.common.reasonString"), options.reason ?? i18n.__("commands.moderation.common.noReasonString")) + .addField( + i18n.__("commands.moderation.common.reasonString"), + options.reason ?? i18n.__("commands.moderation.common.noReasonString") + ) .setFooter({ text: i18n.__mf("commands.moderation.warn.warnedByString", { author: options.author.tag }), iconURL: options.author.displayAvatarURL({ dynamic: true }) @@ -26,10 +24,7 @@ export class ModerationLogs { await ch.send({ embeds: [embed] }).catch((er: Error) => console.log(`Failed to send warn logs: ${er.message}`)); } - public async handleBanAdd(options: { - author?: User; - ban: GuildBan; - }): Promise<void> { + public async handleBanAdd(options: { author?: User; ban: GuildBan }): Promise<void> { const fetched = await options.ban.fetch().catch(() => undefined); if (!fetched) return; @@ -38,7 +33,10 @@ export class ModerationLogs { const embed = createEmbed("error", i18n.__mf("commands.moderation.ban.banSuccess", { user: fetched.user.tag })) .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) - .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")); + .addField( + i18n.__("commands.moderation.common.reasonString"), + fetched.reason ?? i18n.__("commands.moderation.common.noReasonString") + ); if (options.author) { embed.setFooter({ @@ -52,19 +50,22 @@ export class ModerationLogs { }); } - public async handleBanRemove(options: { - author?: User; - ban: GuildBan; - }): Promise<void> { + public async handleBanRemove(options: { author?: User; ban: GuildBan }): Promise<void> { const fetched = await options.ban.fetch().catch(() => undefined); if (!fetched) return; const ch = await this.getCh(fetched.guild); if (!ch) return; - const embed = createEmbed("info", i18n.__mf("commands.moderation.unban.unbanSuccess", { user: fetched.user.tag })) + const embed = createEmbed( + "info", + i18n.__mf("commands.moderation.unban.unbanSuccess", { user: fetched.user.tag }) + ) .setThumbnail(fetched.user.displayAvatarURL({ dynamic: true, size: 1024 })) - .addField(i18n.__("commands.moderation.common.reasonString"), fetched.reason ?? i18n.__("commands.moderation.common.noReasonString")); + .addField( + i18n.__("commands.moderation.common.reasonString"), + fetched.reason ?? i18n.__("commands.moderation.common.noReasonString") + ); if (options.author) { embed.setFooter({ diff --git a/src/utils/structures/OperationManager.ts b/src/utils/structures/OperationManager.ts index 9bc5fb564..1cc6d96fc 100644 --- a/src/utils/structures/OperationManager.ts +++ b/src/utils/structures/OperationManager.ts @@ -2,11 +2,8 @@ import { Promisable } from "../../typings"; export class OperationManager { private _runningOperation!: boolean; - private readonly operations: [ - (arg?: undefined) => void, - (reason?: any) => void, - () => Promisable<undefined> - ][] = []; + private readonly operations: [(arg?: undefined) => void, (reason?: any) => void, () => Promisable<undefined>][] = + []; public constructor() { Object.defineProperty(this, "_runningOperation", { diff --git a/src/utils/structures/SongManager.ts b/src/utils/structures/SongManager.ts index d15e9a481..5f3210394 100644 --- a/src/utils/structures/SongManager.ts +++ b/src/utils/structures/SongManager.ts @@ -3,7 +3,9 @@ import { Rawon } from "../../structures/Rawon"; import { Collection, GuildMember, Snowflake, SnowflakeUtil } from "discord.js"; export class SongManager extends Collection<Snowflake, QueueSong> { - public constructor(public readonly client: Rawon, public readonly guild: GuildMember["guild"]) { super(); } + public constructor(public readonly client: Rawon, public readonly guild: GuildMember["guild"]) { + super(); + } public addSong(song: Song, requester: GuildMember): Snowflake { const key = SnowflakeUtil.generate(); @@ -19,12 +21,20 @@ export class SongManager extends Collection<Snowflake, QueueSong> { } public set(key: Snowflake, data: QueueSong): this { - (this.client as Rawon | undefined)?.debugLog.logData("info", "SONG_MANAGER", `New value added to ${this.guild.name}(${this.guild.id}) song manager. Key: ${key}`); + (this.client as Rawon | undefined)?.debugLog.logData( + "info", + "SONG_MANAGER", + `New value added to ${this.guild.name}(${this.guild.id}) song manager. Key: ${key}` + ); return super.set(key, data); } public delete(key: Snowflake): boolean { - (this.client as Rawon | undefined)?.debugLog.logData("info", "SONG_MANAGER", `Value ${key} deleted from ${this.guild.name}(${this.guild.id}) song manager.`); + (this.client as Rawon | undefined)?.debugLog.logData( + "info", + "SONG_MANAGER", + `Value ${key} deleted from ${this.guild.name}(${this.guild.id}) song manager.` + ); return super.delete(key); } From 118af8052a730a8ab671fbad112d7ce8f8ed422f Mon Sep 17 00:00:00 2001 From: mzrtamp <mozartrafikt@gmail.com> Date: Sat, 28 May 2022 14:30:18 +0700 Subject: [PATCH 411/411] chore(release): version 3.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 803d2e20e..315dce4a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rawon", - "version": "3.0.0-dev", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "rawon", - "version": "3.0.0-dev", + "version": "3.0.0", "license": "BSD-3-Clause", "dependencies": { "@discordjs/voice": "0.9.0", diff --git a/package.json b/package.json index f34156eb0..0e75f9f2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rawon", - "version": "3.0.0-dev", + "version": "3.0.0", "description": "A simple powerful Discord music bot built to fulfill your production desires. Easy to use, with no coding required.", "main": "index.js", "type": "module",