From 8333d6385e83426262786a52b251f5ba3bd98b07 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Wed, 13 Apr 2022 19:56:45 +0100 Subject: [PATCH] Update bot to discord.js v13 --- .github/workflows/testing.yml | 4 +- package.json | 2 +- src/client/client.ts | 9 +- src/client/events.ts | 2 + src/commands/about.ts | 6 +- src/commands/ban.ts | 2 +- src/commands/disable.ts | 3 - src/commands/kick.ts | 2 +- src/commands/mute.ts | 2 +- src/commands/poll.ts | 4 +- src/commands/setup.ts | 1 - src/commands/unmute.ts | 2 +- src/commands/warn.ts | 2 +- src/events/MemberEvents.ts | 8 +- src/events/MemberEvents/GuildMemberUpdate.ts | 2 +- src/events/MessageEvents.ts | 4 +- src/helpers/embeds/ErrorEmbed.ts | 4 +- src/helpers/embeds/EventEmbed.ts | 4 +- src/helpers/embeds/LogEmbed.ts | 6 +- src/helpers/embeds/PublicEmbed.ts | 4 +- src/type/event.ts | 6 +- src/vylbot.ts | 7 +- yarn.lock | 134 ++++++++++++------- 23 files changed, 128 insertions(+), 92 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 6654e30..1f76252 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 16.x] + node-version: [16.x] steps: - uses: actions/checkout@v2 @@ -23,5 +23,5 @@ jobs: node-version: ${{ matrix.node-version }} - run: yarn install - run: yarn build - - run: yarn test --coverage + - run: yarn test diff --git a/package.json b/package.json index e455a26..f25e13b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "dependencies": { "@types/jest": "^27.0.3", "@types/uuid": "^8.3.4", - "discord.js": "12.5.3", + "discord.js": "^13.6.0", "dotenv": "^10.0.0", "emoji-regex": "^9.2.0", "jest": "^27.4.5", diff --git a/src/client/client.ts b/src/client/client.ts index 33f2926..985db3c 100644 --- a/src/client/client.ts +++ b/src/client/client.ts @@ -25,8 +25,8 @@ export class CoreClient extends Client { return this._eventItems; } - constructor(devmode: boolean = false) { - super(); + constructor(intents: number[], devmode: boolean = false) { + super({ intents: intents }); dotenv.config(); DefaultValues.useDevPrefix = devmode; @@ -49,7 +49,10 @@ export class CoreClient extends Client { return; }); - super.on("message", (message) => this._events.onMessage(message, this._commandItems)); + super.on("message", (message) => { + console.log("hello"); + this._events.onMessage(message, this._commandItems); + }); super.on("ready", this._events.onReady); super.login(process.env.BOT_TOKEN); diff --git a/src/client/events.ts b/src/client/events.ts index 5c81e42..eecf796 100644 --- a/src/client/events.ts +++ b/src/client/events.ts @@ -13,6 +13,8 @@ export class Events { // Emit when a message is sent // Used to check for commands public async onMessage(message: Message, commands: ICommandItem[]) { + console.log("h"); + if (!message.guild) return; if (message.author.bot) return; diff --git a/src/commands/about.ts b/src/commands/about.ts index 015c7e5..e2c5dda 100644 --- a/src/commands/about.ts +++ b/src/commands/about.ts @@ -11,9 +11,9 @@ export default class About extends Command { public override execute(context: ICommandContext): ICommandReturnContext { const embed = new PublicEmbed(context, "About", "") - .addField("Version", process.env.BOT_VER) - .addField("Author", process.env.BOT_AUTHOR) - .addField("Date", process.env.BOT_DATE); + .addField("Version", process.env.BOT_VER!) + .addField("Author", process.env.BOT_AUTHOR!) + .addField("Date", process.env.BOT_DATE!); embed.SendToCurrentChannel(); diff --git a/src/commands/ban.ts b/src/commands/ban.ts index 865a0cf..435730d 100644 --- a/src/commands/ban.ts +++ b/src/commands/ban.ts @@ -28,7 +28,7 @@ export default class Ban extends Command { }; } - const targetMember = context.message.guild?.member(targetUser); + const targetMember = context.message.guild?.members.cache.find(x => x.user.id == targetUser.id); if (!targetMember) { const embed = new ErrorEmbed(context, "User is not in this server"); diff --git a/src/commands/disable.ts b/src/commands/disable.ts index a1064c5..7cbd7e0 100644 --- a/src/commands/disable.ts +++ b/src/commands/disable.ts @@ -1,9 +1,6 @@ -import { CommandResponse } from "../constants/CommandResponse"; import { ICommandContext } from "../contracts/ICommandContext"; -import ErrorEmbed from "../helpers/embeds/ErrorEmbed"; import PublicEmbed from "../helpers/embeds/PublicEmbed"; import SettingsHelper from "../helpers/SettingsHelper"; -import StringTools from "../helpers/StringTools"; import { Command } from "../type/command"; export default class Disable extends Command { diff --git a/src/commands/kick.ts b/src/commands/kick.ts index 6a741a7..43a7546 100644 --- a/src/commands/kick.ts +++ b/src/commands/kick.ts @@ -29,7 +29,7 @@ export default class Kick extends Command { }; } - const targetMember = context.message.guild?.member(targetUser); + const targetMember = context.message.guild?.members.cache.find(x => x.user.id == targetUser.id); if (!targetMember) { const embed = new ErrorEmbed(context, "User is not in this server"); diff --git a/src/commands/mute.ts b/src/commands/mute.ts index 79a21ba..e673684 100644 --- a/src/commands/mute.ts +++ b/src/commands/mute.ts @@ -29,7 +29,7 @@ export default class Mute extends Command { }; } - const targetMember = context.message.guild?.member(targetUser); + const targetMember = context.message.guild?.members.cache.find(x => x.user.id == targetUser.id); if (!targetMember) { const embed = new ErrorEmbed(context, "User is not in this server"); diff --git a/src/commands/poll.ts b/src/commands/poll.ts index c9233be..8eafd3e 100644 --- a/src/commands/poll.ts +++ b/src/commands/poll.ts @@ -49,14 +49,14 @@ export default class Poll extends Command { const embed = new PublicEmbed(context, title, description.join("\n")); - const message = await context.message.channel.send(embed); + const message = await context.message.channel.send({ embeds: [ embed ]}); description.forEach(async (value, index) => { await message.react(reactionEmojis[index]); }); if (context.message.deletable) { - await context.message.delete({ reason: "Poll command" }); + await context.message.delete(); } return { diff --git a/src/commands/setup.ts b/src/commands/setup.ts index ee20012..a38d2a3 100644 --- a/src/commands/setup.ts +++ b/src/commands/setup.ts @@ -1,5 +1,4 @@ import { ICommandContext } from "../contracts/ICommandContext"; -import ICommandReturnContext from "../contracts/ICommandReturnContext"; import Server from "../entity/Server"; import ErrorEmbed from "../helpers/embeds/ErrorEmbed"; import PublicEmbed from "../helpers/embeds/PublicEmbed"; diff --git a/src/commands/unmute.ts b/src/commands/unmute.ts index 243d772..ce4dab2 100644 --- a/src/commands/unmute.ts +++ b/src/commands/unmute.ts @@ -29,7 +29,7 @@ export default class Unmute extends Command { }; } - const targetMember = context.message.guild?.member(targetUser); + const targetMember = context.message.guild?.members.cache.find(x => x.user.id == targetUser.id); if (!targetMember) { const embed = new ErrorEmbed(context, "User is not in this server"); diff --git a/src/commands/warn.ts b/src/commands/warn.ts index 858f7c3..adc82bd 100644 --- a/src/commands/warn.ts +++ b/src/commands/warn.ts @@ -28,7 +28,7 @@ export default class Warn extends Command { }; } - const member = context.message.guild?.member(user); + const member = context.message.guild?.members.cache.find(x => x.user.id == user.id); if (!member) { const errorEmbed = new ErrorEmbed(context, "User is not in this server"); diff --git a/src/events/MemberEvents.ts b/src/events/MemberEvents.ts index 7ab41fd..ff111d0 100644 --- a/src/events/MemberEvents.ts +++ b/src/events/MemberEvents.ts @@ -12,8 +12,8 @@ export default class MemberEvents extends Event { public override async guildMemberAdd(member: GuildMember): Promise { const embed = new EventEmbed(member.guild, "Member Joined"); embed.AddUser("User", member.user, true); - embed.addField("Created", member.user.createdAt); - embed.setFooter(`Id: ${member.user.id}`); + embed.addField("Created", member.user.createdAt.toISOString()); + embed.setFooter({ text: `Id: ${member.user.id}` }); await embed.SendToMemberLogsChannel(); @@ -25,8 +25,8 @@ export default class MemberEvents extends Event { public override async guildMemberRemove(member: GuildMember): Promise { const embed = new EventEmbed(member.guild, "Member Left"); embed.AddUser("User", member.user, true); - embed.addField("Joined", member.joinedAt); - embed.setFooter(`Id: ${member.user.id}`); + embed.addField("Joined", member.joinedAt?.toISOString() || "n/a"); + embed.setFooter({ text: `Id: ${member.user.id}` }); await embed.SendToMemberLogsChannel(); diff --git a/src/events/MemberEvents/GuildMemberUpdate.ts b/src/events/MemberEvents/GuildMemberUpdate.ts index ecc4de5..0f438f8 100644 --- a/src/events/MemberEvents/GuildMemberUpdate.ts +++ b/src/events/MemberEvents/GuildMemberUpdate.ts @@ -19,7 +19,7 @@ export default class GuildMemberUpdate { embed.AddUser("User", this.newMember.user, true); embed.addField("Before", oldNickname, true); embed.addField("After", newNickname, true); - embed.setFooter(`Id: ${this.newMember.user.id}`); + embed.setFooter({ text: `Id: ${this.newMember.user.id}` }); await embed.SendToMemberLogsChannel(); diff --git a/src/events/MessageEvents.ts b/src/events/MessageEvents.ts index 17797b4..28beda1 100644 --- a/src/events/MessageEvents.ts +++ b/src/events/MessageEvents.ts @@ -25,7 +25,7 @@ export default class MessageEvents extends Event { const embed = new EventEmbed(message.guild, "Message Deleted"); embed.AddUser("User", message.author, true); - embed.addField("Channel", message.channel, true); + embed.addField("Channel", message.channel.toString(), true); embed.addField("Content", `\`\`\`${message.content || "*none*"}\`\`\``); if (message.attachments.size > 0) { @@ -60,7 +60,7 @@ export default class MessageEvents extends Event { const embed = new EventEmbed(newMessage.guild, "Message Edited"); embed.AddUser("User", newMessage.author, true); - embed.addField("Channel", newMessage.channel, true); + embed.addField("Channel", newMessage.channel.toString(), true); embed.addField("Before", `\`\`\`${oldMessage.content || "*none*"}\`\`\``); embed.addField("After", `\`\`\`${newMessage.content || "*none*"}\`\`\``); diff --git a/src/helpers/embeds/ErrorEmbed.ts b/src/helpers/embeds/ErrorEmbed.ts index ab8460a..146461f 100644 --- a/src/helpers/embeds/ErrorEmbed.ts +++ b/src/helpers/embeds/ErrorEmbed.ts @@ -4,7 +4,7 @@ import { ICommandContext } from "../../contracts/ICommandContext"; export default class ErrorEmbed extends MessageEmbed { public context: ICommandContext; - constructor(context: ICommandContext, message: String) { + constructor(context: ICommandContext, message: string) { super(); super.setColor(0xd52803); @@ -14,6 +14,6 @@ export default class ErrorEmbed extends MessageEmbed { } public SendToCurrentChannel() { - this.context.message.channel.send(this); + this.context.message.channel.send({ embeds: [ this ]}); } } \ No newline at end of file diff --git a/src/helpers/embeds/EventEmbed.ts b/src/helpers/embeds/EventEmbed.ts index 7cc5522..3dfd5dc 100644 --- a/src/helpers/embeds/EventEmbed.ts +++ b/src/helpers/embeds/EventEmbed.ts @@ -23,7 +23,7 @@ export default class EventEmbed extends MessageEmbed { } } - public AddReason(message: String) { + public AddReason(message: string) { this.addField("Reason", message || "*none*"); } @@ -37,7 +37,7 @@ export default class EventEmbed extends MessageEmbed { return; } - channel.send(this); + channel.send({embeds: [ this ]}); } public async SendToMessageLogsChannel() { diff --git a/src/helpers/embeds/LogEmbed.ts b/src/helpers/embeds/LogEmbed.ts index 4250780..0967b8b 100644 --- a/src/helpers/embeds/LogEmbed.ts +++ b/src/helpers/embeds/LogEmbed.ts @@ -25,13 +25,13 @@ export default class LogEmbed extends MessageEmbed { } } - public AddReason(message: String) { + public AddReason(message: string) { this.addField("Reason", message || "*none*"); } // Send methods public SendToCurrentChannel() { - this.context.message.channel.send(this); + this.context.message.channel.send({ embeds: [ this ]}); } public SendToChannel(name: string) { @@ -44,7 +44,7 @@ export default class LogEmbed extends MessageEmbed { return; } - channel.send(this); + channel.send({ embeds: [ this ]}); } public async SendToMessageLogsChannel() { diff --git a/src/helpers/embeds/PublicEmbed.ts b/src/helpers/embeds/PublicEmbed.ts index 8b3e832..ae28197 100644 --- a/src/helpers/embeds/PublicEmbed.ts +++ b/src/helpers/embeds/PublicEmbed.ts @@ -15,12 +15,12 @@ export default class PublicEmbed extends MessageEmbed { } // Detail methods - public AddReason(message: String) { + public AddReason(message: string) { this.addField("Reason", message || "*none*"); } // Send methods public SendToCurrentChannel() { - this.context.message.channel.send(this); + this.context.message.channel.send({ embeds: [ this ]}); } } \ No newline at end of file diff --git a/src/type/event.ts b/src/type/event.ts index cba08c2..0e747bd 100644 --- a/src/type/event.ts +++ b/src/type/event.ts @@ -1,4 +1,4 @@ -import { Channel, Guild, User, GuildMember, Message, PartialDMChannel, PartialGuildMember, PartialMessage } from "discord.js"; +import { Channel, Guild, GuildMember, Message, PartialDMChannel, PartialGuildMember, PartialMessage, GuildBan } from "discord.js"; export class Event { public channelCreate(channel: Channel) { @@ -13,11 +13,11 @@ export class Event { } - public guildBanAdd(guild: Guild, user: User) { + public guildBanAdd(ban: GuildBan) { } - public guildBanRemove(guild: Guild, user: User) { + public guildBanRemove(ban: GuildBan) { } diff --git a/src/vylbot.ts b/src/vylbot.ts index 862171b..f4734e0 100644 --- a/src/vylbot.ts +++ b/src/vylbot.ts @@ -1,6 +1,7 @@ import { CoreClient } from "./client/client"; import * as dotenv from "dotenv"; import registry from "./registry"; +import { Intents } from "discord.js"; dotenv.config(); @@ -20,7 +21,11 @@ requiredConfigs.forEach(config => { const devmode = process.argv.find(x => x.toLowerCase() == "--dev") != null; -const client = new CoreClient(devmode); +const client = new CoreClient([ + Intents.FLAGS.GUILDS, + Intents.FLAGS.GUILD_MESSAGES, + Intents.FLAGS.GUILD_MEMBERS, +], devmode); registry.RegisterCommands(client); registry.RegisterEvents(client); diff --git a/yarn.lock b/yarn.lock index 71fe276..c188b92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -286,19 +286,21 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@discordjs/collection@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz#9e9a7637f4e4e0688fd8b2b5c63133c91607682c" - integrity sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== - -"@discordjs/form-data@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@discordjs/form-data/-/form-data-3.0.1.tgz#5c9e6be992e2e57d0dfa0e39979a850225fb4697" - integrity sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== +"@discordjs/builders@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-0.11.0.tgz#4102abe3e0cd093501f3f71931df43eb92f5b0cc" + integrity sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + "@sindresorhus/is" "^4.2.0" + discord-api-types "^0.26.0" + ts-mixer "^6.0.0" + tslib "^2.3.1" + zod "^3.11.6" + +"@discordjs/collection@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.4.0.tgz#b6488286a1cc7b41b644d7e6086f25a1c1e6f837" + integrity sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -485,11 +487,21 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@sapphire/async-queue@^1.1.9": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.3.1.tgz#9d861e626dbffae02d808e13f823d4510e450a78" + integrity sha512-FFTlPOWZX1kDj9xCAsRzH5xEJfawg1lNoYAA+ecOWJMHOfiZYb1uXOI3ne9U4UILSEPwfE68p3T9wUHwIQfR0g== + "@sindresorhus/is@^4.0.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== +"@sindresorhus/is@^4.2.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -610,6 +622,14 @@ dependencies: "@types/node" "*" +"@types/node-fetch@^2.5.12": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" + integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "16.11.11" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" @@ -642,6 +662,13 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== +"@types/ws@^8.2.2": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -664,13 +691,6 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -1153,19 +1173,25 @@ diff-sequences@^27.4.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== -discord.js@12.5.3: - version "12.5.3" - resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-12.5.3.tgz#56820d473c24320871df9ea0bbc6b462f21cf85c" - integrity sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw== +discord-api-types@^0.26.0: + version "0.26.1" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.26.1.tgz#726f766ddc37d60da95740991d22cb6ef2ed787b" + integrity sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ== + +discord.js@^13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-13.6.0.tgz#d8a8a591dbf25cbcf9c783d5ddf22c4694860475" + integrity sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g== dependencies: - "@discordjs/collection" "^0.1.6" - "@discordjs/form-data" "^3.0.1" - abort-controller "^3.0.0" + "@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" + form-data "^4.0.0" node-fetch "^2.6.1" - prism-media "^1.2.9" - setimmediate "^1.0.5" - tweetnacl "^1.0.3" - ws "^7.4.4" + ws "^8.4.0" domexception@^2.0.1: version "2.0.1" @@ -1253,11 +1279,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -1331,6 +1352,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2452,11 +2482,6 @@ pretty-format@^27.0.0, pretty-format@^27.4.2: ansi-styles "^5.0.0" react-is "^17.0.1" -prism-media@^1.2.9: - version "1.3.2" - resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.3.2.tgz#a1f04423ec15d22f3d62b1987b6a25dc49aad13b" - integrity sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -2612,11 +2637,6 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - sha.js@^2.4.11: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -2860,16 +2880,16 @@ ts-jest@^27.1.2: semver "7.x" yargs-parser "20.x" -tslib@^2.1.0: +ts-mixer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.1.tgz#7c2627fb98047eb5f3c7f2fee39d1521d18fe87a" + integrity sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg== + +tslib@^2.1.0, tslib@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -3047,11 +3067,16 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.4.4, ws@^7.4.6: +ws@^7.4.6: version "7.5.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +ws@^8.4.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -3133,3 +3158,8 @@ zen-observable@0.8.15: version "0.8.15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@^3.11.6: + version "3.14.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.14.4.tgz#e678fe9e5469f4663165a5c35c8f3dc66334a5d6" + integrity sha512-U9BFLb2GO34Sfo9IUYp0w3wJLlmcyGoMd75qU9yf+DrdGA4kEx6e+l9KOkAlyUO0PSQzZCa3TR4qVlcmwqSDuw==