v3.0 #145

Merged
Vylpes merged 44 commits from develop into main 2022-04-24 14:46:37 +01:00
22 changed files with 125 additions and 92 deletions
Showing only changes of commit 39c06fbc8e - Show all commits

View file

@ -13,7 +13,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [12.x, 14.x, 16.x] node-version: [16.x]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
@ -23,5 +23,5 @@ jobs:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- run: yarn install - run: yarn install
- run: yarn build - run: yarn build
- run: yarn test --coverage - run: yarn test

View file

@ -20,7 +20,7 @@
"dependencies": { "dependencies": {
"@types/jest": "^27.0.3", "@types/jest": "^27.0.3",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"discord.js": "12.5.3", "discord.js": "^13.6.0",
"dotenv": "^10.0.0", "dotenv": "^10.0.0",
"emoji-regex": "^9.2.0", "emoji-regex": "^9.2.0",
"jest": "^27.4.5", "jest": "^27.4.5",

View file

@ -25,8 +25,8 @@ export class CoreClient extends Client {
return this._eventItems; return this._eventItems;
} }
constructor(devmode: boolean = false) { constructor(intents: number[], devmode: boolean = false) {
super(); super({ intents: intents });
dotenv.config(); dotenv.config();
DefaultValues.useDevPrefix = devmode; DefaultValues.useDevPrefix = devmode;
@ -49,7 +49,9 @@ export class CoreClient extends Client {
return; return;
}); });
super.on("message", (message) => this._events.onMessage(message, this._commandItems)); super.on("message", (message) => {
this._events.onMessage(message, this._commandItems)
});
super.on("ready", this._events.onReady); super.on("ready", this._events.onReady);
super.login(process.env.BOT_TOKEN); super.login(process.env.BOT_TOKEN);

View file

@ -11,9 +11,9 @@ export default class About extends Command {
public override execute(context: ICommandContext): ICommandReturnContext { public override execute(context: ICommandContext): ICommandReturnContext {
const embed = new PublicEmbed(context, "About", "") const embed = new PublicEmbed(context, "About", "")
.addField("Version", process.env.BOT_VER) .addField("Version", process.env.BOT_VER!)
.addField("Author", process.env.BOT_AUTHOR) .addField("Author", process.env.BOT_AUTHOR!)
.addField("Date", process.env.BOT_DATE); .addField("Date", process.env.BOT_DATE!);
embed.SendToCurrentChannel(); embed.SendToCurrentChannel();

View file

@ -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) { if (!targetMember) {
const embed = new ErrorEmbed(context, "User is not in this server"); const embed = new ErrorEmbed(context, "User is not in this server");

View file

@ -1,9 +1,6 @@
import { CommandResponse } from "../constants/CommandResponse";
import { ICommandContext } from "../contracts/ICommandContext"; import { ICommandContext } from "../contracts/ICommandContext";
import ErrorEmbed from "../helpers/embeds/ErrorEmbed";
import PublicEmbed from "../helpers/embeds/PublicEmbed"; import PublicEmbed from "../helpers/embeds/PublicEmbed";
import SettingsHelper from "../helpers/SettingsHelper"; import SettingsHelper from "../helpers/SettingsHelper";
import StringTools from "../helpers/StringTools";
import { Command } from "../type/command"; import { Command } from "../type/command";
export default class Disable extends Command { export default class Disable extends Command {

View file

@ -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) { if (!targetMember) {
const embed = new ErrorEmbed(context, "User is not in this server"); const embed = new ErrorEmbed(context, "User is not in this server");

View file

@ -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) { if (!targetMember) {
const embed = new ErrorEmbed(context, "User is not in this server"); const embed = new ErrorEmbed(context, "User is not in this server");

View file

@ -49,14 +49,14 @@ export default class Poll extends Command {
const embed = new PublicEmbed(context, title, description.join("\n")); 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) => { description.forEach(async (value, index) => {
await message.react(reactionEmojis[index]); await message.react(reactionEmojis[index]);
}); });
if (context.message.deletable) { if (context.message.deletable) {
await context.message.delete({ reason: "Poll command" }); await context.message.delete();
} }
return { return {

View file

@ -1,5 +1,4 @@
import { ICommandContext } from "../contracts/ICommandContext"; import { ICommandContext } from "../contracts/ICommandContext";
import ICommandReturnContext from "../contracts/ICommandReturnContext";
import Server from "../entity/Server"; import Server from "../entity/Server";
import ErrorEmbed from "../helpers/embeds/ErrorEmbed"; import ErrorEmbed from "../helpers/embeds/ErrorEmbed";
import PublicEmbed from "../helpers/embeds/PublicEmbed"; import PublicEmbed from "../helpers/embeds/PublicEmbed";

View file

@ -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) { if (!targetMember) {
const embed = new ErrorEmbed(context, "User is not in this server"); const embed = new ErrorEmbed(context, "User is not in this server");

View file

@ -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) { if (!member) {
const errorEmbed = new ErrorEmbed(context, "User is not in this server"); const errorEmbed = new ErrorEmbed(context, "User is not in this server");

View file

@ -12,8 +12,8 @@ export default class MemberEvents extends Event {
public override async guildMemberAdd(member: GuildMember): Promise<IEventReturnContext> { public override async guildMemberAdd(member: GuildMember): Promise<IEventReturnContext> {
const embed = new EventEmbed(member.guild, "Member Joined"); const embed = new EventEmbed(member.guild, "Member Joined");
embed.AddUser("User", member.user, true); embed.AddUser("User", member.user, true);
embed.addField("Created", member.user.createdAt); embed.addField("Created", member.user.createdAt.toISOString());
embed.setFooter(`Id: ${member.user.id}`); embed.setFooter({ text: `Id: ${member.user.id}` });
await embed.SendToMemberLogsChannel(); await embed.SendToMemberLogsChannel();
@ -25,8 +25,8 @@ export default class MemberEvents extends Event {
public override async guildMemberRemove(member: GuildMember): Promise<IEventReturnContext> { public override async guildMemberRemove(member: GuildMember): Promise<IEventReturnContext> {
const embed = new EventEmbed(member.guild, "Member Left"); const embed = new EventEmbed(member.guild, "Member Left");
embed.AddUser("User", member.user, true); embed.AddUser("User", member.user, true);
embed.addField("Joined", member.joinedAt); embed.addField("Joined", member.joinedAt?.toISOString() || "n/a");
embed.setFooter(`Id: ${member.user.id}`); embed.setFooter({ text: `Id: ${member.user.id}` });
await embed.SendToMemberLogsChannel(); await embed.SendToMemberLogsChannel();

View file

@ -19,7 +19,7 @@ export default class GuildMemberUpdate {
embed.AddUser("User", this.newMember.user, true); embed.AddUser("User", this.newMember.user, true);
embed.addField("Before", oldNickname, true); embed.addField("Before", oldNickname, true);
embed.addField("After", newNickname, true); embed.addField("After", newNickname, true);
embed.setFooter(`Id: ${this.newMember.user.id}`); embed.setFooter({ text: `Id: ${this.newMember.user.id}` });
await embed.SendToMemberLogsChannel(); await embed.SendToMemberLogsChannel();

View file

@ -25,7 +25,7 @@ export default class MessageEvents extends Event {
const embed = new EventEmbed(message.guild, "Message Deleted"); const embed = new EventEmbed(message.guild, "Message Deleted");
embed.AddUser("User", message.author, true); 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*"}\`\`\``); embed.addField("Content", `\`\`\`${message.content || "*none*"}\`\`\``);
if (message.attachments.size > 0) { if (message.attachments.size > 0) {
@ -60,7 +60,7 @@ export default class MessageEvents extends Event {
const embed = new EventEmbed(newMessage.guild, "Message Edited"); const embed = new EventEmbed(newMessage.guild, "Message Edited");
embed.AddUser("User", newMessage.author, true); 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("Before", `\`\`\`${oldMessage.content || "*none*"}\`\`\``);
embed.addField("After", `\`\`\`${newMessage.content || "*none*"}\`\`\``); embed.addField("After", `\`\`\`${newMessage.content || "*none*"}\`\`\``);

View file

@ -4,7 +4,7 @@ import { ICommandContext } from "../../contracts/ICommandContext";
export default class ErrorEmbed extends MessageEmbed { export default class ErrorEmbed extends MessageEmbed {
public context: ICommandContext; public context: ICommandContext;
constructor(context: ICommandContext, message: String) { constructor(context: ICommandContext, message: string) {
super(); super();
super.setColor(0xd52803); super.setColor(0xd52803);
@ -14,6 +14,6 @@ export default class ErrorEmbed extends MessageEmbed {
} }
public SendToCurrentChannel() { public SendToCurrentChannel() {
this.context.message.channel.send(this); this.context.message.channel.send({ embeds: [ this ]});
} }
} }

View file

@ -23,7 +23,7 @@ export default class EventEmbed extends MessageEmbed {
} }
} }
public AddReason(message: String) { public AddReason(message: string) {
this.addField("Reason", message || "*none*"); this.addField("Reason", message || "*none*");
} }
@ -37,7 +37,7 @@ export default class EventEmbed extends MessageEmbed {
return; return;
} }
channel.send(this); channel.send({embeds: [ this ]});
} }
public async SendToMessageLogsChannel() { public async SendToMessageLogsChannel() {

View file

@ -25,13 +25,13 @@ export default class LogEmbed extends MessageEmbed {
} }
} }
public AddReason(message: String) { public AddReason(message: string) {
this.addField("Reason", message || "*none*"); this.addField("Reason", message || "*none*");
} }
// Send methods // Send methods
public SendToCurrentChannel() { public SendToCurrentChannel() {
this.context.message.channel.send(this); this.context.message.channel.send({ embeds: [ this ]});
} }
public SendToChannel(name: string) { public SendToChannel(name: string) {
@ -44,7 +44,7 @@ export default class LogEmbed extends MessageEmbed {
return; return;
} }
channel.send(this); channel.send({ embeds: [ this ]});
} }
public async SendToMessageLogsChannel() { public async SendToMessageLogsChannel() {

View file

@ -15,12 +15,12 @@ export default class PublicEmbed extends MessageEmbed {
} }
// Detail methods // Detail methods
public AddReason(message: String) { public AddReason(message: string) {
this.addField("Reason", message || "*none*"); this.addField("Reason", message || "*none*");
} }
// Send methods // Send methods
public SendToCurrentChannel() { public SendToCurrentChannel() {
this.context.message.channel.send(this); this.context.message.channel.send({ embeds: [ this ]});
} }
} }

View file

@ -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 { export class Event {
public channelCreate(channel: Channel) { 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) {
} }

View file

@ -1,6 +1,7 @@
import { CoreClient } from "./client/client"; import { CoreClient } from "./client/client";
import * as dotenv from "dotenv"; import * as dotenv from "dotenv";
import registry from "./registry"; import registry from "./registry";
import { Intents } from "discord.js";
dotenv.config(); dotenv.config();
@ -20,7 +21,11 @@ requiredConfigs.forEach(config => {
const devmode = process.argv.find(x => x.toLowerCase() == "--dev") != null; 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.RegisterCommands(client);
registry.RegisterEvents(client); registry.RegisterEvents(client);

134
yarn.lock
View file

@ -286,19 +286,21 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@discordjs/collection@^0.1.6": "@discordjs/builders@^0.11.0":
version "0.1.6" version "0.11.0"
resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz#9e9a7637f4e4e0688fd8b2b5c63133c91607682c" resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-0.11.0.tgz#4102abe3e0cd093501f3f71931df43eb92f5b0cc"
integrity sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== integrity sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==
"@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==
dependencies: dependencies:
asynckit "^0.4.0" "@sindresorhus/is" "^4.2.0"
combined-stream "^1.0.8" discord-api-types "^0.26.0"
mime-types "^2.1.12" 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": "@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0" version "1.1.0"
@ -485,11 +487,21 @@
"@types/yargs" "^16.0.0" "@types/yargs" "^16.0.0"
chalk "^4.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": "@sindresorhus/is@^4.0.0":
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca"
integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== 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": "@sinonjs/commons@^1.7.0":
version "1.8.3" version "1.8.3"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@ -610,6 +622,14 @@
dependencies: dependencies:
"@types/node" "*" "@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@*": "@types/node@*":
version "16.11.11" version "16.11.11"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" 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" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc"
integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== 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@*": "@types/yargs-parser@*":
version "20.2.1" version "20.2.1"
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" 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" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== 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: acorn-globals@^6.0.0:
version "6.0.0" version "6.0.0"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" 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" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5"
integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==
discord.js@12.5.3: discord-api-types@^0.26.0:
version "12.5.3" version "0.26.1"
resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-12.5.3.tgz#56820d473c24320871df9ea0bbc6b462f21cf85c" resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.26.1.tgz#726f766ddc37d60da95740991d22cb6ef2ed787b"
integrity sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw== 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: dependencies:
"@discordjs/collection" "^0.1.6" "@discordjs/builders" "^0.11.0"
"@discordjs/form-data" "^3.0.1" "@discordjs/collection" "^0.4.0"
abort-controller "^3.0.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" node-fetch "^2.6.1"
prism-media "^1.2.9" ws "^8.4.0"
setimmediate "^1.0.5"
tweetnacl "^1.0.3"
ws "^7.4.4"
domexception@^2.0.1: domexception@^2.0.1:
version "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" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 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: execa@^5.0.0:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 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" combined-stream "^1.0.8"
mime-types "^2.1.12" 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: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 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" ansi-styles "^5.0.0"
react-is "^17.0.1" 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: process-nextick-args@~2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 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" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 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: sha.js@^2.4.11:
version "2.4.11" version "2.4.11"
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 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" semver "7.x"
yargs-parser "20.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" version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 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: type-check@~0.3.2:
version "0.3.2" version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 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" signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5" typedarray-to-buffer "^3.1.5"
ws@^7.4.4, ws@^7.4.6: ws@^7.4.6:
version "7.5.6" version "7.5.6"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== 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: xml-name-validator@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 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" version "0.8.15"
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== 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==