From fa854c066163557472970ed34ed469f5306228d3 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 09:59:19 +0100 Subject: [PATCH 01/12] Fixed forceverify and updated verify --- src/commands/forceverify.ts | 2 +- src/commands/verify.ts | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/commands/forceverify.ts b/src/commands/forceverify.ts index 4769aa9..c46b47c 100644 --- a/src/commands/forceverify.ts +++ b/src/commands/forceverify.ts @@ -42,7 +42,7 @@ export = { async execute(interaction) { await interaction.deferReply() - const user = interaction.member as GuildMember + const user = interaction.options.getMember("user") as GuildMember const ign = interaction.options.getString("ign") const mod = interaction.user const embedColor = Number(color.replace("#", "0x")) diff --git a/src/commands/verify.ts b/src/commands/verify.ts index 3f630da..b3a4e3a 100644 --- a/src/commands/verify.ts +++ b/src/commands/verify.ts @@ -1,4 +1,4 @@ -import { SlashCommandBuilder } from "discord.js" +import { GuildMember, SlashCommandBuilder } from "discord.js" import { getUUID, getPlayer, getGuild, getHeadURL } from "../utils/Hypixel" import { color, hypixelGuildID, devMessage } from "../../config/options.json" import mongoose from "mongoose" @@ -39,8 +39,7 @@ export = { async execute(interaction) { await interaction.deferReply() - const user1 = interaction.user - const user = interaction.guild!.members.cache.get(user1.id)! + const user = interaction.member! as GuildMember const ign = interaction.options.getString("ign")! const embedColor = Number(color.replace("#", "0x")) @@ -114,10 +113,10 @@ export = { } let username = "" - if (user1.discriminator === "0") { - username = user1.username + if (user.user.discriminator === "0") { + username = user.user.username } else { - username = user1.username + "#" + user1.discriminator + username = user.user.username + "#" + user.user.discriminator } await interaction.editReply({ From 33eed60f988ca32b92a0c1fc3e64e01a9cbcc806 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:45:12 +0100 Subject: [PATCH 02/12] Updated updatzeall members command --- src/commands/staff/updatediscordroles.ts | 156 +++++++++-------------- 1 file changed, 62 insertions(+), 94 deletions(-) diff --git a/src/commands/staff/updatediscordroles.ts b/src/commands/staff/updatediscordroles.ts index e3d4a09..c8dbe8e 100644 --- a/src/commands/staff/updatediscordroles.ts +++ b/src/commands/staff/updatediscordroles.ts @@ -21,6 +21,7 @@ const removeThese = [ guildRole, guildStaff, ] +import removeRoles from "../../utils/functions/rolesmanage" import { ChatInputCommandInteraction, GuildMember } from "discord.js" import env from "../../utils/Env" import { getGuild } from "../../utils/Hypixel" @@ -31,7 +32,7 @@ export async function updateDiscordRoles( ): Promise { const discordMember = interaction.member as GuildMember const embedColor = Number(color.replace("#", "0x")) - await interaction.deferReply({ ephemeral: true }) + await interaction.deferReply() if (discordMember.user.id !== env.prod.dev) { await interaction.editReply({ @@ -66,6 +67,14 @@ export async function updateDiscordRoles( }) const guildMemberIDs = hypixelGuildMembers.map(gmember => gmember.uuid) + const allVerifiedUsers = await verify.find({}) as { userID: string, uuid: string }[] + const verifiedUsers = allVerifiedUsers.map(user => { + return { + userID: user.userID, + uuid: user.uuid, + } + }) + await interaction.editReply({ embeds: [ { @@ -76,21 +85,17 @@ export async function updateDiscordRoles( }) for (const gmember of guildMembers) { - const memberData = await verify.findOne({ userID: gmember.id }) + const memberData = verifiedUsers.find(user => user.userID === gmember.id) if (!memberData) { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) + const rolesToremove = removeRoles("default").rolesToRemove + await gmember.member.roles.remove(rolesToremove, "Updating all discord members",) continue } if (!guildMemberIDs.includes(memberData?.uuid || "none")) { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) + const rolesToremove = removeRoles("default").rolesToRemove + await gmember.member.roles.remove(rolesToremove , "Updating all discord members",) continue } else if (guildMemberIDs.includes(memberData!.uuid)) { const guildMemberRank = hypixelGuildMembers.find( @@ -99,106 +104,69 @@ export async function updateDiscordRoles( console.log("Updating roles for " + gmember.member.user.username) if (guildMemberRank === "Guild Master") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - gm, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildStaff, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== gm && role !== guildStaff && role !== guildRole) + // await gmember.member.roles.remove(rolesToRemove, "Updating all discord members") + // await gmember.member.roles.add( gm, "Updating all discord members",) + // await gmember.member.roles.add( guildStaff, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("gm") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } else if (guildMemberRank === "Manager") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - manager, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildStaff, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== manager && role !== guildStaff && role !== guildRole) + // await gmember.member.roles.remove( rolesToRemove, "Updating all discord members",) + // await gmember.member.roles.add( manager, "Updating all discord members",) + // await gmember.member.roles.add( guildStaff, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("manager") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } else if (guildMemberRank === "Moderator") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - moderator, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildStaff, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== moderator && role !== guildStaff && role !== guildRole) + // await gmember.member.roles.remove( rolesToRemove, "Updating all discord members",) + // await gmember.member.roles.add( moderator, "Updating all discord members",) + // await gmember.member.roles.add( guildStaff, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("moderator") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } else if (guildMemberRank === "Beast") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - beast, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== beast && role !== guildRole) + // await gmember.member.roles.remove( rolesToRemove, "Updating all discord members",) + // await gmember.member.roles.add( beast, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("beast") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } else if (guildMemberRank === "Elite") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - elite, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== elite && role !== guildRole) + // await gmember.member.roles.remove( rolesToRemove, "Updating all discord members",) + // await gmember.member.roles.add( elite, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("elite") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } else if (guildMemberRank === "Member") { - await gmember.member.roles.remove( - removeThese, - "Updating all discord members", - ) - await gmember.member.roles.add( - member, - "Updating all discord members", - ) - await gmember.member.roles.add( - guildRole, - "Updating all discord members", - ) + // const rolesToRemove = removeThese.filter(role => role !== member && role !== guildRole) + // await gmember.member.roles.remove( rolesToRemove, "Updating all discord members",) + // await gmember.member.roles.add( member, "Updating all discord members",) + // await gmember.member.roles.add( guildRole, "Updating all discord members",) + const rolesmanage = removeRoles("member") + gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) + gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) continue } continue } } + console.log("Successfully updated all roles.") + await interaction.editReply({ embeds: [ { From 84462cb6b5c45f40e457429f3da96c5f6a1c1876 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:45:25 +0100 Subject: [PATCH 03/12] Added rolesmanage script --- src/utils/functions/rolesmanage.ts | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/utils/functions/rolesmanage.ts diff --git a/src/utils/functions/rolesmanage.ts b/src/utils/functions/rolesmanage.ts new file mode 100644 index 0000000..5d0645a --- /dev/null +++ b/src/utils/functions/rolesmanage.ts @@ -0,0 +1,50 @@ +import { gm, manager, moderator, beast, elite, member, guildStaff, guildRole } from "../../../config/roles.json" +const roles = [gm, manager, moderator, beast, elite, member, guildStaff, guildRole] + +type RoleType = "gm" | "manager" | "moderator" | "beast" | "elite" | "member" | "default" + +export default function removeRoles(role: RoleType): { rolesToRemove: string[], rolesToAdd: string[] } { + if (role === "gm") { + const rolesToRemove = roles.filter(role => role !== gm && role !== guildStaff && role !== guildRole) + const rolesToAdd = [gm, guildStaff, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "manager") { + const rolesToRemove = roles.filter(role => role !== manager && role !== guildStaff && role !== guildRole) + const rolesToAdd = [manager, guildStaff, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "moderator") { + const rolesToRemove = roles.filter(role => role !== moderator && role !== guildStaff && role !== guildRole) + const rolesToAdd = [moderator, guildStaff, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "beast") { + const rolesToRemove = roles.filter(role => role !== beast && role !== guildRole) + const rolesToAdd = [beast, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "elite") { + const rolesToRemove = roles.filter(role => role !== elite && role !== guildRole) + const rolesToAdd = [elite, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "member") { + const rolesToRemove = roles.filter(role => role !== member && role !== guildRole) + const rolesToAdd = [member, guildRole] + return { rolesToRemove, rolesToAdd } + } + + if (role === "default") { + const rolesToRemove = roles + const rolesToAdd: string[] = [] + return { rolesToRemove, rolesToAdd } + } + + return { rolesToRemove: [], rolesToAdd: []} +} \ No newline at end of file From 1fd2675d0783f12e5c915fddc204beaa1d73cd5e Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:50:32 +0100 Subject: [PATCH 04/12] Removed unused imports --- src/interfaces/Cron.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/interfaces/Cron.ts b/src/interfaces/Cron.ts index 478fd3e..5b7aeb0 100644 --- a/src/interfaces/Cron.ts +++ b/src/interfaces/Cron.ts @@ -1,4 +1,3 @@ -import { CronCommand } from "cron" import { TimeZones } from "." interface TimeFormat { From ed8e96293062c870d0d92763c6b846c20e933df9 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:50:48 +0100 Subject: [PATCH 05/12] Removed unused imports --- src/commands/staff/updatediscordroles.ts | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/src/commands/staff/updatediscordroles.ts b/src/commands/staff/updatediscordroles.ts index c8dbe8e..abf91c7 100644 --- a/src/commands/staff/updatediscordroles.ts +++ b/src/commands/staff/updatediscordroles.ts @@ -1,26 +1,5 @@ import verify = require("../../schemas/verifySchema") import { color, hypixelGuildID } from "../../../config/options.json" -import { - gm, - manager, - moderator, - beast, - elite, - member, - guildRole, - guildStaff, - defaultMember, -} from "../../../config/roles.json" -const removeThese = [ - gm, - manager, - moderator, - beast, - elite, - member, - guildRole, - guildStaff, -] import removeRoles from "../../utils/functions/rolesmanage" import { ChatInputCommandInteraction, GuildMember } from "discord.js" import env from "../../utils/Env" From f07ccbf801cd8da0d27d95a7d56f9837600fa81f Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:51:11 +0100 Subject: [PATCH 06/12] Added 2 comp options to tsconfig --- tsconfig.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tsconfig.json b/tsconfig.json index ecdbba6..2feb46e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,8 @@ "skipLibCheck": true, "strictNullChecks": true, "resolveJsonModule": true, + "removeComments": true, + "noUnusedLocals": true, "outDir": "dist" }, "include": ["src"], From ebe9987b354a1c31cf10fa93e4404d931410b2b8 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 10:52:03 +0100 Subject: [PATCH 07/12] Formatting --- src/commands/staff/updatediscordroles.ts | 79 +++++++++++++++++++----- src/utils/functions/rolesmanage.ts | 66 ++++++++++++++++---- 2 files changed, 117 insertions(+), 28 deletions(-) diff --git a/src/commands/staff/updatediscordroles.ts b/src/commands/staff/updatediscordroles.ts index abf91c7..19445b6 100644 --- a/src/commands/staff/updatediscordroles.ts +++ b/src/commands/staff/updatediscordroles.ts @@ -46,7 +46,10 @@ export async function updateDiscordRoles( }) const guildMemberIDs = hypixelGuildMembers.map(gmember => gmember.uuid) - const allVerifiedUsers = await verify.find({}) as { userID: string, uuid: string }[] + const allVerifiedUsers = (await verify.find({})) as { + userID: string + uuid: string + }[] const verifiedUsers = allVerifiedUsers.map(user => { return { userID: user.userID, @@ -64,17 +67,25 @@ export async function updateDiscordRoles( }) for (const gmember of guildMembers) { - const memberData = verifiedUsers.find(user => user.userID === gmember.id) + const memberData = verifiedUsers.find( + user => user.userID === gmember.id, + ) if (!memberData) { const rolesToremove = removeRoles("default").rolesToRemove - await gmember.member.roles.remove(rolesToremove, "Updating all discord members",) + await gmember.member.roles.remove( + rolesToremove, + "Updating all discord members", + ) continue } if (!guildMemberIDs.includes(memberData?.uuid || "none")) { const rolesToremove = removeRoles("default").rolesToRemove - await gmember.member.roles.remove(rolesToremove , "Updating all discord members",) + await gmember.member.roles.remove( + rolesToremove, + "Updating all discord members", + ) continue } else if (guildMemberIDs.includes(memberData!.uuid)) { const guildMemberRank = hypixelGuildMembers.find( @@ -89,8 +100,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( guildStaff, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("gm") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } else if (guildMemberRank === "Manager") { // const rolesToRemove = removeThese.filter(role => role !== manager && role !== guildStaff && role !== guildRole) @@ -99,8 +116,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( guildStaff, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("manager") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } else if (guildMemberRank === "Moderator") { // const rolesToRemove = removeThese.filter(role => role !== moderator && role !== guildStaff && role !== guildRole) @@ -109,8 +132,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( guildStaff, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("moderator") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } else if (guildMemberRank === "Beast") { // const rolesToRemove = removeThese.filter(role => role !== beast && role !== guildRole) @@ -118,8 +147,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( beast, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("beast") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } else if (guildMemberRank === "Elite") { // const rolesToRemove = removeThese.filter(role => role !== elite && role !== guildRole) @@ -127,8 +162,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( elite, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("elite") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } else if (guildMemberRank === "Member") { // const rolesToRemove = removeThese.filter(role => role !== member && role !== guildRole) @@ -136,8 +177,14 @@ export async function updateDiscordRoles( // await gmember.member.roles.add( member, "Updating all discord members",) // await gmember.member.roles.add( guildRole, "Updating all discord members",) const rolesmanage = removeRoles("member") - gmember.member.roles.remove(rolesmanage.rolesToRemove, "Updating all discord members",) - gmember.member.roles.add(rolesmanage.rolesToAdd, "Updating all discord members",) + gmember.member.roles.remove( + rolesmanage.rolesToRemove, + "Updating all discord members", + ) + gmember.member.roles.add( + rolesmanage.rolesToAdd, + "Updating all discord members", + ) continue } continue diff --git a/src/utils/functions/rolesmanage.ts b/src/utils/functions/rolesmanage.ts index 5d0645a..9bef906 100644 --- a/src/utils/functions/rolesmanage.ts +++ b/src/utils/functions/rolesmanage.ts @@ -1,41 +1,83 @@ -import { gm, manager, moderator, beast, elite, member, guildStaff, guildRole } from "../../../config/roles.json" -const roles = [gm, manager, moderator, beast, elite, member, guildStaff, guildRole] +import { + gm, + manager, + moderator, + beast, + elite, + member, + guildStaff, + guildRole, +} from "../../../config/roles.json" +const roles = [ + gm, + manager, + moderator, + beast, + elite, + member, + guildStaff, + guildRole, +] -type RoleType = "gm" | "manager" | "moderator" | "beast" | "elite" | "member" | "default" +type RoleType = + | "gm" + | "manager" + | "moderator" + | "beast" + | "elite" + | "member" + | "default" -export default function removeRoles(role: RoleType): { rolesToRemove: string[], rolesToAdd: string[] } { +export default function removeRoles(role: RoleType): { + rolesToRemove: string[] + rolesToAdd: string[] +} { if (role === "gm") { - const rolesToRemove = roles.filter(role => role !== gm && role !== guildStaff && role !== guildRole) + const rolesToRemove = roles.filter( + role => role !== gm && role !== guildStaff && role !== guildRole, + ) const rolesToAdd = [gm, guildStaff, guildRole] return { rolesToRemove, rolesToAdd } } if (role === "manager") { - const rolesToRemove = roles.filter(role => role !== manager && role !== guildStaff && role !== guildRole) + const rolesToRemove = roles.filter( + role => + role !== manager && role !== guildStaff && role !== guildRole, + ) const rolesToAdd = [manager, guildStaff, guildRole] return { rolesToRemove, rolesToAdd } } if (role === "moderator") { - const rolesToRemove = roles.filter(role => role !== moderator && role !== guildStaff && role !== guildRole) + const rolesToRemove = roles.filter( + role => + role !== moderator && role !== guildStaff && role !== guildRole, + ) const rolesToAdd = [moderator, guildStaff, guildRole] return { rolesToRemove, rolesToAdd } } if (role === "beast") { - const rolesToRemove = roles.filter(role => role !== beast && role !== guildRole) + const rolesToRemove = roles.filter( + role => role !== beast && role !== guildRole, + ) const rolesToAdd = [beast, guildRole] return { rolesToRemove, rolesToAdd } } if (role === "elite") { - const rolesToRemove = roles.filter(role => role !== elite && role !== guildRole) + const rolesToRemove = roles.filter( + role => role !== elite && role !== guildRole, + ) const rolesToAdd = [elite, guildRole] return { rolesToRemove, rolesToAdd } } if (role === "member") { - const rolesToRemove = roles.filter(role => role !== member && role !== guildRole) + const rolesToRemove = roles.filter( + role => role !== member && role !== guildRole, + ) const rolesToAdd = [member, guildRole] return { rolesToRemove, rolesToAdd } } @@ -46,5 +88,5 @@ export default function removeRoles(role: RoleType): { rolesToRemove: string[], return { rolesToRemove, rolesToAdd } } - return { rolesToRemove: [], rolesToAdd: []} -} \ No newline at end of file + return { rolesToRemove: [], rolesToAdd: [] } +} From da456facef620431f0b6f95f2a6ace20e0be24e9 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 11:08:24 +0100 Subject: [PATCH 08/12] Updated eslint --- .eslintrc.js | 18 +- package.json | 7 +- yarn.lock | 876 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 892 insertions(+), 9 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index aabf974..f29b224 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,10 +1,13 @@ module.exports = { "env": { "node": true, - "commonjs": true, - "es2021": true + "es2021": true, + "browser": true }, - "extends": "eslint:recommended", + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended" + ], "overrides": [ { "env": { @@ -18,9 +21,14 @@ module.exports = { } } ], + "parser": "@typescript-eslint/parser", "parserOptions": { - "ecmaVersion": "latest" + "ecmaVersion": "latest", + "sourceType": "module" }, + "plugins": [ + "@typescript-eslint" + ], "rules": { "indent": [ "error", @@ -60,5 +68,7 @@ module.exports = { "asyncArrow": "always" }], "comma-spacing": "error", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/no-explicit-any": "off" } } diff --git a/package.json b/package.json index ea2f454..c07b786 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "dev:build": "ts-node scripts/dev-deploy.ts", "dev:delete": "ts-node scripts/delete-commands.ts", "format": "prettier --write src/", - "lint": "eslint_d src", - "lint:fix": "eslint_d --fix src", + "lint": "eslint src", + "lint:fix": "eslint --fix src", "prod:build": "ts-node scripts/deploy-commands.ts" }, "author": "Taken", @@ -31,6 +31,9 @@ "devDependencies": { "@types/ms": "^0.7.34", "@types/node": "^20.10.5", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", + "eslint": "^8.56.0", "prettier": "^3.1.1", "ts-node": "^10.9.2", "typescript": "^5.3.3" diff --git a/yarn.lock b/yarn.lock index d79defb..ccd3f95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -74,11 +79,62 @@ tslib "^2.6.2" ws "^8.14.2" +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== + "@fastify/busboy@^2.0.0": version "2.1.0" resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz" integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + dependencies: + "@humanwhocodes/object-schema" "^2.0.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== + "@ioredis/commands@^1.1.1": version "1.2.0" resolved "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz" @@ -109,6 +165,27 @@ dependencies: sparse-bitfield "^3.0.3" +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@sapphire/async-queue@^1.5.0": version "1.5.0" resolved "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz" @@ -147,6 +224,11 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/luxon@~3.3.0": version "3.3.7" resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.7.tgz#043d413b6492a012de47503907bdf3ec4f827933" @@ -164,6 +246,11 @@ dependencies: undici-types "~5.26.4" +"@types/semver@^7.5.0": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + "@types/webidl-conversions@*": version "7.0.3" resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz" @@ -191,11 +278,107 @@ dependencies: "@types/node" "*" +"@typescript-eslint/eslint-plugin@^6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz#cc29fbd208ea976de3db7feb07755bba0ce8d8bc" + integrity sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/type-utils" "6.16.0" + "@typescript-eslint/utils" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.16.0.tgz#36f39f63b126aa25af2ad2df13d9891e9fd5b40c" + integrity sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw== + dependencies: + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz#f3e9a00fbc1d0701356359cd56489c54d9e37168" + integrity sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw== + dependencies: + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + +"@typescript-eslint/type-utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz#5f21c3e49e540ad132dc87fc99af463c184d5ed1" + integrity sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg== + dependencies: + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/utils" "6.16.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.16.0.tgz#a3abe0045737d44d8234708d5ed8fef5d59dc91e" + integrity sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ== + +"@typescript-eslint/typescript-estree@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz#d6e0578e4f593045f0df06c4b3a22bd6f13f2d03" + integrity sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA== + dependencies: + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.16.0.tgz#1c291492d34670f9210d2b7fcf6b402bea3134ae" + integrity sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz#d50da18a05d91318ed3e7e8889bda0edc35f3a10" + integrity sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A== + dependencies: + "@typescript-eslint/types" "6.16.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@vladfrangu/async_event_emitter@^2.2.2": version "2.2.2" resolved "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz" integrity sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ== +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^8.1.1: version "8.3.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" @@ -206,11 +389,48 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -225,16 +445,68 @@ axios@^1.3.4: form-data "^4.0.0" proxy-from-env "^1.1.0" +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + bson@^5.5.0: version "5.5.1" resolved "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz" integrity sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g== +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + cluster-key-slot@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz" integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -242,6 +514,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -255,13 +532,27 @@ cron@^3.1.6: "@types/luxon" "~3.3.0" luxon "~3.4.0" -debug@4.x, debug@^4.3.4: +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 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" +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -277,6 +568,13 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + discord-api-types@0.37.61: version "0.37.61" resolved "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.61.tgz" @@ -302,16 +600,182 @@ discord.js@^14.8.0: undici "5.27.2" ws "8.14.2" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + dotenv@^16.0.3: version "16.3.1" resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -fast-deep-equal@3.1.3, fast-deep-equal@^3.1.3: +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 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@^3.2.9: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + 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" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + follow-redirects@^1.15.0: version "1.15.3" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" @@ -326,6 +790,97 @@ form-data@^4.0.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" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + 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" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ioredis@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz" @@ -346,11 +901,82 @@ ip@^2.0.0: resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + kareem@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz" integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" @@ -361,6 +987,11 @@ lodash.isarguments@^3.1.0: resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.snakecase@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" @@ -371,6 +1002,13 @@ lodash@^4.17.21: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + luxon@~3.4.0: version "3.4.4" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" @@ -391,6 +1029,19 @@ memory-pager@^1.0.2: resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" @@ -403,6 +1054,20 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + mongodb-connection-string-url@^2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz" @@ -457,11 +1122,86 @@ ms@2.1.3, ms@^2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-ms@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz" integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prettier@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" @@ -479,11 +1219,16 @@ proxy-from-env@^1.1.0: resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -punycode@^2.1.1: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz" @@ -496,11 +1241,59 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + sift@16.0.1: version "16.0.1" resolved "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz" integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" @@ -526,6 +1319,37 @@ standard-as-callback@^2.1.0: resolved "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + tr46@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz" @@ -533,6 +1357,11 @@ tr46@^3.0.0: dependencies: punycode "^2.1.1" +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + ts-mixer@^6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz" @@ -562,6 +1391,18 @@ tslib@2.6.2, tslib@^2.6.2: resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + typescript@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" @@ -579,6 +1420,13 @@ undici@5.27.2: dependencies: "@fastify/busboy" "^2.0.0" +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -597,12 +1445,34 @@ whatwg-url@^11.0.0: tr46 "^3.0.0" webidl-conversions "^7.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + ws@8.14.2, ws@^8.14.2: version "8.14.2" resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 7d509e1b2266723570106bdd7f2b084435aaeb14 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 11:08:49 +0100 Subject: [PATCH 09/12] Updated all files based on eslintrc --- src/commands/help.ts | 6 ++---- src/commands/staff/updatediscordroles.ts | 4 ++-- src/interfaces/Autocomplete.ts | 3 ++- src/interfaces/Button.ts | 1 + src/interfaces/Command.ts | 6 ++---- src/interfaces/ContextMenu.ts | 1 + src/interfaces/Event.ts | 1 + src/interfaces/Modal.ts | 1 + src/utils/Illegitimate.ts | 2 -- src/utils/functions/bedwars.ts | 16 ++++++++-------- src/utils/functions/hypixel.ts | 4 ++-- 11 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/commands/help.ts b/src/commands/help.ts index 4a2a2f9..19a92e4 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -12,7 +12,7 @@ export = { data: new SlashCommandBuilder() .setName("help") .setDescription("List's all commands usable by a member") - .setDMPermission(true), + .setDMPermission(false), async execute(interaction, client) { await interaction.deferReply({ ephemeral: true }) @@ -72,9 +72,7 @@ export = { fields: commandList, color: embedColor, thumbnail: { - url: interaction?.guild?.iconURL({ - forceStatic: true, - })!, + url: interaction.guild!.iconURL({ forceStatic: true, })!, }, footer: { icon_url: footerIcon!, diff --git a/src/commands/staff/updatediscordroles.ts b/src/commands/staff/updatediscordroles.ts index 19445b6..6dfeb3a 100644 --- a/src/commands/staff/updatediscordroles.ts +++ b/src/commands/staff/updatediscordroles.ts @@ -17,7 +17,7 @@ export async function updateDiscordRoles( await interaction.editReply({ embeds: [ { - description: `You do not have permission to use this command.`, + description: "You do not have permission to use this command.", color: embedColor, }, ], @@ -196,7 +196,7 @@ export async function updateDiscordRoles( await interaction.editReply({ embeds: [ { - description: `Successfully updated all roles.`, + description: "Successfully updated all roles.", color: embedColor, }, ], diff --git a/src/interfaces/Autocomplete.ts b/src/interfaces/Autocomplete.ts index e18ef1d..284d6cb 100644 --- a/src/interfaces/Autocomplete.ts +++ b/src/interfaces/Autocomplete.ts @@ -4,5 +4,6 @@ export default interface Autocomplete { name: string description: string type: "autocomplete" - execute: (interaction: AutocompleteInteraction) => Promise + // eslint-disable-next-line no-unused-vars + execute: (interacion: AutocompleteInteraction) => Promise } diff --git a/src/interfaces/Button.ts b/src/interfaces/Button.ts index 5dd5853..f4024d9 100644 --- a/src/interfaces/Button.ts +++ b/src/interfaces/Button.ts @@ -4,5 +4,6 @@ export default interface Button { name: string description: string type: "button" + // eslint-disable-next-line no-unused-vars execute: (interaction: ButtonInteraction) => Promise } diff --git a/src/interfaces/Command.ts b/src/interfaces/Command.ts index 2985deb..4a3239a 100644 --- a/src/interfaces/Command.ts +++ b/src/interfaces/Command.ts @@ -12,8 +12,6 @@ export default interface Command { "addSubcommand" | "addSubcommandGroup" | "addIntegerOption" > subcommands?: boolean - execute: ( - interaction: ChatInputCommandInteraction, - client: Client, - ) => Promise + // eslint-disable-next-line no-unused-vars + execute: ( interaction: ChatInputCommandInteraction, client: Client,) => Promise } diff --git a/src/interfaces/ContextMenu.ts b/src/interfaces/ContextMenu.ts index 3c87590..a9eb460 100644 --- a/src/interfaces/ContextMenu.ts +++ b/src/interfaces/ContextMenu.ts @@ -9,5 +9,6 @@ export default interface ContextMenu { type: "contextmenu" dev?: boolean data: ContextMenuCommandBuilder + // eslint-disable-next-line no-unused-vars execute: (interaction: ContextMenuCommandInteraction) => Promise } diff --git a/src/interfaces/Event.ts b/src/interfaces/Event.ts index 6ba4716..cd2085d 100644 --- a/src/interfaces/Event.ts +++ b/src/interfaces/Event.ts @@ -5,5 +5,6 @@ export default interface Event { description: string type: "event" event: keyof ClientEvents + // eslint-disable-next-line no-unused-vars execute(...args: any[]): void } diff --git a/src/interfaces/Modal.ts b/src/interfaces/Modal.ts index 34a4047..d0e8271 100644 --- a/src/interfaces/Modal.ts +++ b/src/interfaces/Modal.ts @@ -4,5 +4,6 @@ export default interface Modal { name: string description: string type: "modal" + // eslint-disable-next-line no-unused-vars execute: (interaction: ModalSubmitInteraction) => Promise } diff --git a/src/utils/Illegitimate.ts b/src/utils/Illegitimate.ts index 8400c53..de10feb 100644 --- a/src/utils/Illegitimate.ts +++ b/src/utils/Illegitimate.ts @@ -8,8 +8,6 @@ const client = new Client() const redis = new Redis(env.prod.redisURI!) class Bot { - constructor() {} - async start() { init() client.start() diff --git a/src/utils/functions/bedwars.ts b/src/utils/functions/bedwars.ts index c8ba341..03d5657 100644 --- a/src/utils/functions/bedwars.ts +++ b/src/utils/functions/bedwars.ts @@ -10,14 +10,14 @@ function getExpForLevel(level: number): number { } switch (respectedLevel) { - case 1: - return 500 - case 2: - return 1000 - case 3: - return 2000 - case 4: - return 3500 + case 1: + return 500 + case 2: + return 1000 + case 3: + return 2000 + case 4: + return 3500 } return 5000 } diff --git a/src/utils/functions/hypixel.ts b/src/utils/functions/hypixel.ts index 6a20240..93465d3 100644 --- a/src/utils/functions/hypixel.ts +++ b/src/utils/functions/hypixel.ts @@ -12,10 +12,10 @@ function getLevel(exp: number): number { return exp <= 1 ? 1 : Math.floor( - 1 + + 1 + REVERSE_PQ_PREFIX + Math.sqrt(REVERSE_CONST + GROWTH_DIVIDES_2 * exp), - ) + ) } function hypixelLevel(exp: number): number { From b5eb58a4f1dfe95b6ae7471c0a3ac081b64e3d57 Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 11:29:06 +0100 Subject: [PATCH 10/12] Updated deploy commands to use ts files in src --- scripts/deploy-commands.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/deploy-commands.ts b/scripts/deploy-commands.ts index 91e579d..c70d2e9 100644 --- a/scripts/deploy-commands.ts +++ b/scripts/deploy-commands.ts @@ -5,15 +5,15 @@ import env from "../src/utils/Env" const rest = new REST({ version: "10" }).setToken(env.prod.token!) const commands: RESTPutAPIApplicationCommandsJSONBody = [] -const commandFiles = fs.readdirSync("./dist/src/commands").filter(file => file.endsWith(".js")) -const contentMenuCommands = fs.readdirSync("./dist/src/commands-contextmenu").filter(file => file.endsWith(".js")) +const commandFiles = fs.readdirSync("./src/commands").filter(file => file.endsWith(".ts")) +const contentMenuCommands = fs.readdirSync("./src/commands-contextmenu").filter(file => file.endsWith(".ts")) for (const file of commandFiles) { - const command: Command = require(`../dist/src/commands/${file}`) + const command: Command = require(`../src/commands/${file}`) commands.push(command.data.toJSON()) } for (const file of contentMenuCommands) { - const command: Command = require(`../dist/src/commands-contextmenu/${file}`) + const command: Command = require(`../src/commands-contextmenu/${file}`) commands.push(command.data.toJSON()) } From 1abd1a7e9c593d2c7c701d8f748b7afb3fcb173b Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 11:29:39 +0100 Subject: [PATCH 11/12] Removed all commands from dms --- src/commands/check.ts | 14 ++++---------- src/commands/guild.ts | 14 ++++---------- src/commands/guild/info.ts | 11 ++--------- src/commands/guild/member.ts | 11 ++--------- src/commands/guild/top.ts | 10 ++-------- src/commands/help.ts | 10 ++-------- src/commands/instructions.ts | 3 ++- src/commands/ping.ts | 14 ++++---------- src/commands/reqs.ts | 21 ++++++--------------- src/commands/uuid.ts | 13 ++++--------- 10 files changed, 32 insertions(+), 89 deletions(-) diff --git a/src/commands/check.ts b/src/commands/check.ts index 079942b..cff6c84 100644 --- a/src/commands/check.ts +++ b/src/commands/check.ts @@ -35,7 +35,8 @@ export = { .setName("ign") .setDescription("The player's IGN.") .setRequired(true), - ), + ) + .setDMPermission(false), async execute(interaction) { await interaction.deferReply({}) @@ -285,13 +286,6 @@ export = { const hypixelExp = player.networkExp || 0 const level = hypixelLevel(hypixelExp) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) - await interaction.editReply({ embeds: [ { @@ -311,8 +305,8 @@ export = { url: head!, }, footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon!, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: true })!, }, fields: statsFields, }, diff --git a/src/commands/guild.ts b/src/commands/guild.ts index 944a3b8..caec139 100644 --- a/src/commands/guild.ts +++ b/src/commands/guild.ts @@ -79,7 +79,8 @@ export = { "The amount of guild members to show. [Default: 10]", ), ), - ), + ) + .setDMPermission(false), async execute(interaction) { const subcommand = interaction.options.getSubcommand() @@ -100,21 +101,14 @@ export = { return } - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: true }) - await interaction.reply({ embeds: [ { description: "This command is currently under development", color: embedColor, footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon!, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: false }) || undefined, }, }, ], diff --git a/src/commands/guild/info.ts b/src/commands/guild/info.ts index 91c29ea..0ae61d7 100644 --- a/src/commands/guild/info.ts +++ b/src/commands/guild/info.ts @@ -191,13 +191,6 @@ async function guildInfo( averageGuildMembersWeeklyXPUnformatted, ) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) - await interaction.editReply({ embeds: [ { @@ -240,8 +233,8 @@ async function guildInfo( ], color: embedColor, footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon!, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: false }) || undefined, }, }, ], diff --git a/src/commands/guild/member.ts b/src/commands/guild/member.ts index f692b42..2cbe1cd 100644 --- a/src/commands/guild/member.ts +++ b/src/commands/guild/member.ts @@ -167,13 +167,6 @@ async function guildMember( ":" + guildMemberJoinSeconds - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) - await interaction.editReply({ embeds: [ { @@ -210,8 +203,8 @@ async function guildMember( }, ], footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon!, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: false })!, }, }, ], diff --git a/src/commands/guild/top.ts b/src/commands/guild/top.ts index db16547..3d02f07 100644 --- a/src/commands/guild/top.ts +++ b/src/commands/guild/top.ts @@ -263,12 +263,6 @@ async function guildTop( } }) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) const cacheStatusText = cacheStatus ? " | [Cache]" : "" await interaction.editReply({ @@ -285,8 +279,8 @@ async function guildTop( color: embedColor, fields: newList, footer: { - text: footerText + " | " + devMessage + cacheStatusText, - icon_url: footerIcon!, + text: interaction.guild!.name + " | " + devMessage + cacheStatusText, + icon_url: interaction.guild!.iconURL({ forceStatic: false })!, }, }, ], diff --git a/src/commands/help.ts b/src/commands/help.ts index 19a92e4..aba68dc 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -57,12 +57,6 @@ export = { } const embedColor = Number(color.replace("#", "0x")) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) await interaction.editReply({ embeds: [ @@ -75,8 +69,8 @@ export = { url: interaction.guild!.iconURL({ forceStatic: true, })!, }, footer: { - icon_url: footerIcon!, - text: footerText + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: false})!, + text: interaction.guild!.name + " | " + devMessage, }, }, ], diff --git a/src/commands/instructions.ts b/src/commands/instructions.ts index b26f7d5..ae9316b 100644 --- a/src/commands/instructions.ts +++ b/src/commands/instructions.ts @@ -12,7 +12,8 @@ export = { data: new SlashCommandBuilder() .setName("instructions") .setDescription("Instructions for verification") - .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), + .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) + .setDMPermission(false), async execute(interaction) { const embedColor = Number(color.replace("#", "0x")) diff --git a/src/commands/ping.ts b/src/commands/ping.ts index c743d17..40c1a5b 100644 --- a/src/commands/ping.ts +++ b/src/commands/ping.ts @@ -11,28 +11,22 @@ export = { data: new SlashCommandBuilder() .setName("ping") - .setDescription("Get's the bot's ping."), + .setDescription("Get's the bot's ping.") + .setDMPermission(false), async execute(interaction, client) { await interaction.deferReply() const embedColor = Number(color.replace("#", "0x")) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) - await interaction.editReply({ embeds: [ { description: "Ping of the bot is " + client.ws.ping + "ms.", color: embedColor, footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon || undefined, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild?.iconURL({ forceStatic: false }) || undefined, }, timestamp: new Date().toISOString(), }, diff --git a/src/commands/reqs.ts b/src/commands/reqs.ts index 46c2f49..4e39e68 100644 --- a/src/commands/reqs.ts +++ b/src/commands/reqs.ts @@ -20,20 +20,13 @@ export = { data: new SlashCommandBuilder() .setName("reqs") - .setDescription("Displays the requirements for the guild."), + .setDescription("Displays the requirements for the guild.") + .setDMPermission(false), async execute(interaction) { - await interaction.deferReply({ ephemeral: true }) - const embedColor = Number(color.replace("#", "0x")) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) - await interaction.editReply({ + await interaction.reply({ embeds: [ { title: "Requirements", @@ -42,9 +35,7 @@ export = { color: embedColor, thumbnail: { url: - interaction?.guild?.iconURL({ - forceStatic: false, - }) || "", + interaction?.guild?.iconURL({ forceStatic: false, }) || "", }, fields: [ { @@ -78,8 +69,8 @@ export = { }, ], footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon || undefined, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild!.iconURL({ forceStatic: false }) || undefined, }, }, ], diff --git a/src/commands/uuid.ts b/src/commands/uuid.ts index ab53031..4ce1f8d 100644 --- a/src/commands/uuid.ts +++ b/src/commands/uuid.ts @@ -18,7 +18,8 @@ export = { .setName("ign") .setDescription("Player's name") .setRequired(true), - ), + ) + .setDMPermission(false), async execute(interaction) { await interaction.deferReply() @@ -29,12 +30,6 @@ export = { const newIgn = (await getIGN(uuid)) as string const head = await getHeadURL(ign) const embedColor = Number(color.replace("#", "0x")) - const footerText = interaction.guild - ? interaction.guild.name - : interaction.user.username - const footerIcon = interaction.guild - ? interaction.guild.iconURL({ forceStatic: false }) - : interaction.user.avatarURL({ forceStatic: false }) if (!uuid) { interaction.editReply({ @@ -64,8 +59,8 @@ export = { url: head!, }, footer: { - text: footerText + " | " + devMessage, - icon_url: footerIcon || undefined, + text: interaction.guild!.name + " | " + devMessage, + icon_url: interaction.guild?.iconURL({ forceStatic: false }) || undefined, }, }, ], From 7049782dacc2f6867052a1309137e5c62e10078d Mon Sep 17 00:00:00 2001 From: Taken Date: Sun, 31 Dec 2023 11:34:46 +0100 Subject: [PATCH 12/12] Updated dependencies --- Dockerfile.cache | 2 +- package.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.cache b/Dockerfile.cache index dd29ad9..c1f34cd 100644 --- a/Dockerfile.cache +++ b/Dockerfile.cache @@ -3,4 +3,4 @@ FROM node:20.9.0-alpine3.18 COPY package.json ./ COPY yarn.lock ./ -RUN yarn install \ No newline at end of file +RUN yarn install --production \ No newline at end of file diff --git a/package.json b/package.json index c07b786..0486892 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "ioredis": "^5.3.2", "mongoose": "^7.0.1", "ms": "^2.1.3", - "pretty-ms": "^8.0.0" + "pretty-ms": "^8.0.0", + "typescript": "^5.3.3" }, "devDependencies": { "@types/ms": "^0.7.34", @@ -35,7 +36,6 @@ "@typescript-eslint/parser": "^6.16.0", "eslint": "^8.56.0", "prettier": "^3.1.1", - "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "ts-node": "^10.9.2" } }