From e8e4f35f13078539841ce94436a788e4f18741d8 Mon Sep 17 00:00:00 2001 From: BenSegal855 Date: Mon, 9 Jan 2023 18:18:33 -0500 Subject: [PATCH 1/4] fix: polls now work --- src/interaction-handlers/poll.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/interaction-handlers/poll.ts b/src/interaction-handlers/poll.ts index f9daddd..7d9a5eb 100644 --- a/src/interaction-handlers/poll.ts +++ b/src/interaction-handlers/poll.ts @@ -10,10 +10,9 @@ import { dateToTimestamp } from '@lib/utils'; export class PollHandler extends InteractionHandler { public async parse(interaction: ButtonInteraction) { - if (!interaction.id.startsWith('poll')) { + if (!interaction.customId.startsWith('poll')) { return this.none(); } - await interaction.deferUpdate(); return this.some(this.container.db.polls.findOne({ messageId: interaction.message.id })); } From f66ed038c97ba3a3dde581d836ca64323671b84c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 15 Jan 2023 18:42:34 +0000 Subject: [PATCH 2/4] fix(deps): update dependency @sapphire/framework to v4 --- package.json | 2 +- yarn.lock | 71 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 093271e..a1bc5b3 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@sapphire/discord-utilities": "2.12.0", "@sapphire/discord.js-utilities": "5.1.2", "@sapphire/fetch": "2.4.1", - "@sapphire/framework": "3.2.0", + "@sapphire/framework": "4.0.2", "@sapphire/pieces": "3.6.0", "@sapphire/plugin-editable-commands": "2.0.1", "@sapphire/plugin-logger": "3.0.1", diff --git a/yarn.lock b/yarn.lock index 307fadc..9f7b098 100644 --- a/yarn.lock +++ b/yarn.lock @@ -899,6 +899,20 @@ __metadata: languageName: node linkType: hard +"@discordjs/builders@npm:^1.4.0": + version: 1.4.0 + resolution: "@discordjs/builders@npm:1.4.0" + dependencies: + "@discordjs/util": ^0.1.0 + "@sapphire/shapeshift": ^3.7.1 + discord-api-types: ^0.37.20 + fast-deep-equal: ^3.1.3 + ts-mixer: ^6.0.2 + tslib: ^2.4.1 + checksum: 3089ea5dc58e62c0314fd5fd995281d183d1a938d14a71b89c47b71b6cdf4cdf9f8c2ee1d04ca59e6bdde583b8bb785f3b53d917fb155cade8d27ac0dedbc942 + languageName: node + linkType: hard + "@discordjs/collection@npm:1.3.0, @discordjs/collection@npm:^1.2.0": version: 1.3.0 resolution: "@discordjs/collection@npm:1.3.0" @@ -932,6 +946,13 @@ __metadata: languageName: node linkType: hard +"@discordjs/util@npm:^0.1.0": + version: 0.1.0 + resolution: "@discordjs/util@npm:0.1.0" + checksum: 880e15cd761437a21cf17b8a9dab50e7e5418fcc77dc34037c31a52b871fab1b958218ab6218aafd20af8b7a4e658a705d3f257268324773a285d9a06368c1b9 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.4.1": version: 1.4.1 resolution: "@eslint/eslintrc@npm:1.4.1" @@ -1212,7 +1233,16 @@ __metadata: languageName: node linkType: hard -"@sapphire/discord.js-utilities@npm:5.1.2, @sapphire/discord.js-utilities@npm:^5.1.2": +"@sapphire/discord-utilities@npm:^3.0.0": + version: 3.0.0 + resolution: "@sapphire/discord-utilities@npm:3.0.0" + dependencies: + discord-api-types: ^0.37.25 + checksum: c17ddb5c663fb474e134f881bfa9fb803bdb315220894079c92966b72208ae52f4a995faae2701519d99690f0ed591d7e9995e8c7ffc36821435fd454af5d4b1 + languageName: node + linkType: hard + +"@sapphire/discord.js-utilities@npm:5.1.2": version: 5.1.2 resolution: "@sapphire/discord.js-utilities@npm:5.1.2" dependencies: @@ -1224,6 +1254,18 @@ __metadata: languageName: node linkType: hard +"@sapphire/discord.js-utilities@npm:6.0.1": + version: 6.0.1 + resolution: "@sapphire/discord.js-utilities@npm:6.0.1" + dependencies: + "@sapphire/discord-utilities": ^3.0.0 + "@sapphire/duration": ^1.0.0 + "@sapphire/utilities": ^3.11.0 + tslib: ^2.4.1 + checksum: e5d95c97f10cf2b4ed249d2e553831522618cc18078a1dfbbf4d18d874b5b34a80930e172ab36fdd4b3099788f2a116fe44b2025d16ab14975a3201f6646e22e + languageName: node + linkType: hard + "@sapphire/duration@npm:^1.0.0": version: 1.0.0 resolution: "@sapphire/duration@npm:1.0.0" @@ -1240,20 +1282,20 @@ __metadata: languageName: node linkType: hard -"@sapphire/framework@npm:3.2.0": - version: 3.2.0 - resolution: "@sapphire/framework@npm:3.2.0" +"@sapphire/framework@npm:4.0.2": + version: 4.0.2 + resolution: "@sapphire/framework@npm:4.0.2" dependencies: - "@discordjs/builders": ^0.16.0 - "@sapphire/discord-utilities": ^2.12.0 - "@sapphire/discord.js-utilities": ^5.1.2 + "@discordjs/builders": ^1.4.0 + "@sapphire/discord-utilities": ^3.0.0 + "@sapphire/discord.js-utilities": 6.0.1 "@sapphire/lexure": ^1.1.2 "@sapphire/pieces": ^3.6.0 "@sapphire/ratelimits": ^2.4.5 "@sapphire/result": ^2.6.0 "@sapphire/stopwatch": ^1.5.0 "@sapphire/utilities": ^3.11.0 - checksum: 9263c7062eb888451c83f6ed13b951886b886b96160e01639bd6d91faa5e6acc49ae57ef424bc930002eb5ad20d5b8fe1e83655af2ba3895052dfe6e98260150 + checksum: 4af8a83ff072107e035b37fa3d80aad83b55c3fdeb61fc0d06ff7b2d27b60b1792b23105b9bf253f0f588040249e84c06c7a529f0de19eaa4b84624d8ab959c1 languageName: node linkType: hard @@ -1324,7 +1366,7 @@ __metadata: languageName: node linkType: hard -"@sapphire/shapeshift@npm:^3.5.1": +"@sapphire/shapeshift@npm:^3.5.1, @sapphire/shapeshift@npm:^3.7.1": version: 3.8.1 resolution: "@sapphire/shapeshift@npm:3.8.1" dependencies: @@ -2230,6 +2272,13 @@ __metadata: languageName: node linkType: hard +"discord-api-types@npm:^0.37.20, discord-api-types@npm:^0.37.25": + version: 0.37.28 + resolution: "discord-api-types@npm:0.37.28" + checksum: c033b9c82d5ecb3f273d563db578e21e982a35d106cc66e7ea42d7ef0a79817ca43badd3aade8a5ddb491bc8679ed08b1bcccc105e64ecd1ea5a53a11c2b1f8b + languageName: node + linkType: hard + "discord.js@npm:13.12.0": version: 13.12.0 resolution: "discord.js@npm:13.12.0" @@ -4385,7 +4434,7 @@ __metadata: "@sapphire/discord-utilities": 2.12.0 "@sapphire/discord.js-utilities": 5.1.2 "@sapphire/fetch": 2.4.1 - "@sapphire/framework": 3.2.0 + "@sapphire/framework": 4.0.2 "@sapphire/pieces": 3.6.0 "@sapphire/plugin-editable-commands": 2.0.1 "@sapphire/plugin-logger": 3.0.1 @@ -4602,7 +4651,7 @@ __metadata: languageName: node linkType: hard -"ts-mixer@npm:^6.0.1": +"ts-mixer@npm:^6.0.1, ts-mixer@npm:^6.0.2": version: 6.0.2 resolution: "ts-mixer@npm:6.0.2" checksum: cbe9935886fab201f2265ebde8e7e4147a3147ba6b6b4701ed5b92fd52729cda340f45f80f486131d203ed25c8c896a2a3623b2c33cd14314bd7ba961e97ee2e From 9f5cc213a09f7aa91f706ddf54f83d83638e78a3 Mon Sep 17 00:00:00 2001 From: BenSegal855 Date: Sun, 15 Jan 2023 19:02:14 -0500 Subject: [PATCH 3/4] chore: update all sapphire & djs deps --- package.json | 27 +- src/arguments/color.ts | 4 +- src/commands/Fax Center/fax.ts | 14 +- src/commands/Fax Center/rolodex.ts | 24 +- src/commands/Fax Center/setDesk.ts | 10 +- src/commands/General/discordstatus.ts | 6 +- src/commands/General/ping.ts | 2 +- src/commands/General/whois.ts | 6 +- src/commands/Info/commit.ts | 6 +- src/commands/Info/help.ts | 11 +- src/commands/Info/snippet.ts | 6 +- src/commands/Info/stats.ts | 10 +- src/commands/Info/suggest.ts | 14 +- src/commands/Server Managment/channelName.ts | 16 +- .../Server Managment/manageAssignableRoles.ts | 2 +- .../Server Managment/manageCountChannel.ts | 2 +- .../Server Managment/manageFaxChannel.ts | 2 +- .../Server Managment/manageRPchannel.ts | 12 +- .../Server Managment/manageRemindChannel.ts | 2 +- .../Server Managment/manageRollLog.ts | 2 +- .../Server Managment/manageSnippets.ts | 2 +- src/commands/Server Managment/setVoteToPin.ts | 2 +- src/commands/User Managment/assign.ts | 6 +- .../User Managment/manageQuickRolls.ts | 6 +- src/commands/User Managment/manageRolePlay.ts | 26 +- src/commands/fun/f.ts | 4 +- src/commands/fun/poll.ts | 24 +- src/commands/fun/roll.ts | 10 +- src/commands/reminders/viewreminders.ts | 6 +- src/index.ts | 24 +- src/interaction-handlers/poll.ts | 4 +- src/lib/extensions/SteveBoi.ts | 23 +- src/lib/extensions/SteveCommand.ts | 6 +- src/lib/extensions/SteveSubcommand.ts | 6 +- src/lib/utils.ts | 181 ++-- src/listeners/count/messageCreate.ts | 4 +- src/listeners/removeComponents.ts | 3 +- src/listeners/rolePlay.ts | 6 +- src/listeners/snooze.ts | 154 ++- src/listeners/suggestion.ts | 12 +- yarn.lock | 960 ++++++++++-------- 41 files changed, 901 insertions(+), 746 deletions(-) diff --git a/package.json b/package.json index a1bc5b3..4972367 100644 --- a/package.json +++ b/package.json @@ -11,26 +11,27 @@ "dependencies": { "@discordjs/collection": "1.3.0", "@octokit/rest": "19.0.5", - "@sapphire/decorators": "5.0.0", - "@sapphire/discord-utilities": "2.12.0", - "@sapphire/discord.js-utilities": "5.1.2", + "@sapphire/decorators": "6.0.0", + "@sapphire/discord-utilities": "3.0.0", + "@sapphire/discord.js-utilities": "6.0.1", "@sapphire/fetch": "2.4.1", "@sapphire/framework": "4.0.2", "@sapphire/pieces": "3.6.0", - "@sapphire/plugin-editable-commands": "2.0.1", + "@sapphire/plugin-editable-commands": "3.0.0", "@sapphire/plugin-logger": "3.0.1", - "@sapphire/plugin-subcommands": "3.2.4", + "@sapphire/plugin-subcommands": "4.0.0", "@sapphire/stopwatch": "1.5.0", "@sapphire/time-utilities": "1.7.8", "@sapphire/type": "2.3.0", "@sapphire/utilities": "3.11.0", - "axios": "0.27.2", + "axios": "1.2.2", "canvas": "2.11.0", - "chart.js": "3.9.1", + "chart.js": "4.1.2", + "chartjs-node-canvas": "4.1.6", "chartjs-plugin-datalabels": "2.2.0", "colorette": "2.0.19", "common-tags": "1.8.2", - "discord.js": "13.12.0", + "discord.js": "14.7.1", "dotenv-cra": "3.0.2", "module-alias": "2.2.2", "mongodb": "4.13.0", @@ -49,13 +50,13 @@ "@types/node": "17.0.23", "@types/node-cron": "3.0.7", "@types/ws": "8.5.4", - "@typescript-eslint/eslint-plugin": "5.48.0", - "@typescript-eslint/parser": "5.48.0", - "eslint": "8.31.0", + "@typescript-eslint/eslint-plugin": "5.48.1", + "@typescript-eslint/parser": "5.48.1", + "eslint": "8.32.0", "eslint-plugin-deprecation": "1.3.3", "npm-run-all": "4.1.5", - "rimraf": "^3.0.2", - "tsc-watch": "5.0.3", + "rimraf": "4.0.6", + "tsc-watch": "6.0.0", "tslib": "2.4.1", "typescript": "4.9.4" }, diff --git a/src/arguments/color.ts b/src/arguments/color.ts index 1fff453..de98c5c 100644 --- a/src/arguments/color.ts +++ b/src/arguments/color.ts @@ -1,5 +1,5 @@ import { Argument } from '@sapphire/framework'; -import { ColorResolvable, Util } from 'discord.js'; +import { ColorResolvable, resolveColor } from 'discord.js'; export class ColorArgument extends Argument { @@ -7,7 +7,7 @@ export class ColorArgument extends Argument { let color: ColorResolvable; try { - color = Util.resolveColor(parameter.toUpperCase() as ColorResolvable); + color = resolveColor(parameter.toUpperCase() as ColorResolvable); } catch { return this.error({ context, diff --git a/src/commands/Fax Center/fax.ts b/src/commands/Fax Center/fax.ts index 83ed081..51e8ac0 100644 --- a/src/commands/Fax Center/fax.ts +++ b/src/commands/Fax Center/fax.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { Args, CommandOptions } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; -import { ColorResolvable, Message, MessageAttachment, MessageEmbed, TextChannel, Util } from 'discord.js'; +import { ColorResolvable, Message, AttachmentBuilder, EmbedBuilder, TextChannel, cleanContent} from 'discord.js'; import { createCanvas, loadImage } from 'canvas'; import { SteveCommand } from '@lib/extensions/SteveCommand'; @@ -29,9 +29,9 @@ export class UserCommand extends SteveCommand { const response = await send(msg, `Dialing ${faxNumber}...`); - let message = Util.cleanContent(await args.rest('string'), msg.channel).replace(//g, '$1'); + let message = cleanContent(await args.rest('string'), msg.channel).replace(//g, '$1'); - const attachments: Array = []; + const attachments: Array = []; const canvas = createCanvas(WIDTH, HEIGHT); const ctx = canvas.getContext('2d'); @@ -47,7 +47,7 @@ export class UserCommand extends SteveCommand { ctx.font = '45px serif'; ctx.fillText(msg.author.username, WIDTH / 2, 100); - const pfp = await loadImage(msg.author.displayAvatarURL({ format: 'png' })); + const pfp = await loadImage(msg.author.displayAvatarURL()); ctx.save(); ctx.translate((HEADER_HEIGHT / 2) - 50, (HEADER_HEIGHT / 2) - 50); ctx.beginPath(); @@ -83,7 +83,7 @@ export class UserCommand extends SteveCommand { message = message.substring(result.length, message.length); if (currentHeight >= HEIGHT - 25) { - attachments.push(new MessageAttachment(canvas.toBuffer(), `page${pageIdx++}.png`)); + attachments.push(new AttachmentBuilder(canvas.toBuffer(), { name: `page${pageIdx++}.png` })); ctx.resetTransform(); @@ -96,14 +96,14 @@ export class UserCommand extends SteveCommand { } } - attachments.push(new MessageAttachment(canvas.toBuffer(), `page${pageIdx++}.png`)); + attachments.push(new AttachmentBuilder(canvas.toBuffer(), { name: `page${pageIdx++}.png` })); if (attachments.length > 10) { return response.edit("The fax machine doesn't have enough paper for a fax that long."); } const embeds = attachments.map((attachment) => - new MessageEmbed() + new EmbedBuilder() .setImage(`attachment://${attachment.name}`) .setTimestamp(msg.createdTimestamp) .setColor((recipient.embedColor || 0xadcb27) as ColorResolvable) diff --git a/src/commands/Fax Center/rolodex.ts b/src/commands/Fax Center/rolodex.ts index 5c78c39..7e6d550 100644 --- a/src/commands/Fax Center/rolodex.ts +++ b/src/commands/Fax Center/rolodex.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { CommandOptions } from '@sapphire/framework'; import { chunk } from '@sapphire/utilities'; -import { Collection, Message, MessageActionRow, MessageEmbed, MessageSelectMenu, User } from 'discord.js'; +import { Collection, Message, ActionRowBuilder, EmbedBuilder, StringSelectMenuBuilder, User, ComponentType } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { getUser, sendLoadingMessage } from '@lib/utils'; @@ -31,7 +31,7 @@ export class UserCommand extends SteveCommand { userMap.set(faxUser.fax.number, user); } - const rows: MessageActionRow[] = []; + const rows: ActionRowBuilder[] = []; const pages = chunk( userMap.map((user, number) => ({ user, number })), @@ -39,7 +39,7 @@ export class UserCommand extends SteveCommand { ); pages.forEach((page, idx) => { - const dropdown = new MessageSelectMenu() + const dropdown = new StringSelectMenuBuilder() .setCustomId(`${msg.author.id}-${msg.id}|${idx}|FaxDeskSelect`) .setPlaceholder('Select a user!'); page.forEach(({ user, number }) => { @@ -50,10 +50,10 @@ export class UserCommand extends SteveCommand { } ]); }); - rows.push(new MessageActionRow().addComponents(dropdown)); + rows.push(new ActionRowBuilder().addComponents(dropdown)); }); - const coverEmbed = new MessageEmbed() + const coverEmbed = new EmbedBuilder() .setTitle('The Rolodex') .setThumbnail( 'https://cdn.discordapp.com/attachments/700378786012594268/733117912310612008/59fcd0a11ac53.png' @@ -61,7 +61,7 @@ export class UserCommand extends SteveCommand { .setImage( 'https://cdn.discordapp.com/attachments/944669817137418333/947584420464955553/PinClipart.com_index-card-clip-art_1718271.png' ) - .setColor('DARK_AQUA') + .setColor('DarkAqua') .setTimestamp(); await response.edit({ @@ -71,7 +71,7 @@ export class UserCommand extends SteveCommand { }); const collector = response.createMessageComponentCollector({ - componentType: 'SELECT_MENU', + componentType: ComponentType.StringSelect, time: 60e3 }); @@ -97,11 +97,11 @@ export class UserCommand extends SteveCommand { return; } - const userEmbed = new MessageEmbed() + const userEmbed = new EmbedBuilder() .setTitle('The Rolodex') - .setColor('DARK_AQUA') - .addField(user.tag, selected) - .setThumbnail(user.displayAvatarURL({ dynamic: true })); + .setColor('DarkAqua') + .addFields([{ name: user.tag, value: selected}]) + .setThumbnail(user.displayAvatarURL()); interaction.update({ embeds: [userEmbed] }); }); @@ -109,7 +109,7 @@ export class UserCommand extends SteveCommand { collector.on('end', () => { rows.forEach((row) => { row.setComponents( - new MessageSelectMenu() + new StringSelectMenuBuilder() .setDisabled(true) .setPlaceholder('This selecty boi is off.') .setCustomId('DISABLED') diff --git a/src/commands/Fax Center/setDesk.ts b/src/commands/Fax Center/setDesk.ts index b236cf8..9584660 100644 --- a/src/commands/Fax Center/setDesk.ts +++ b/src/commands/Fax Center/setDesk.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { CommandOptions } from '@sapphire/framework'; -import { Message, MessageActionRow, MessageSelectMenu, User } from 'discord.js'; +import { Message, ActionRowBuilder, StringSelectMenuBuilder, User, ChannelType, ComponentType } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { getChannel, getGuild, sendLoadingMessage } from '@lib/utils'; @@ -17,7 +17,7 @@ export class UserCommand extends SteveCommand { .find({ $nor: [{ 'channels.fax': { $exists: false } }, { 'channels.fax': { $size: 0 } }] }) .toArray(); - const dropdown = new MessageSelectMenu() + const dropdown = new StringSelectMenuBuilder() .setCustomId(`${msg.author.id}-${msg.id}|FaxDeskSelect`) .setPlaceholder('Select where you want your faxes to be sent.') .addOptions([ @@ -36,7 +36,7 @@ export class UserCommand extends SteveCommand { dbGuild.channels.fax.forEach(async (channelId) => { const channel = await getChannel(channelId); - if (!channel?.isText() || channel.type === 'DM' || channel.partial) return; + if (!channel?.isTextBased() || channel.type === ChannelType.DM || channel.partial) return; dropdown.addOptions({ label: `#${channel.name}`, @@ -46,11 +46,11 @@ export class UserCommand extends SteveCommand { }); }); - const actionRow = new MessageActionRow().addComponents(dropdown); + const actionRow = new ActionRowBuilder().addComponents(dropdown); await response.edit({ content: 'You can send faxes to all these places!', components: [actionRow] }); - const collector = response.createMessageComponentCollector({ componentType: 'SELECT_MENU', time: 60e3 }); + const collector = response.createMessageComponentCollector({ componentType: ComponentType.StringSelect, time: 60e3 }); collector.on('collect', async (interaction) => { await interaction.deferReply({ ephemeral: true }); diff --git a/src/commands/General/discordstatus.ts b/src/commands/General/discordstatus.ts index 6291181..123c03a 100644 --- a/src/commands/General/discordstatus.ts +++ b/src/commands/General/discordstatus.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { CommandOptions } from '@sapphire/framework'; import axios from 'axios'; -import { Message, MessageEmbed } from 'discord.js'; +import { Message, EmbedBuilder } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { dateToTimestamp, sendLoadingMessage } from '@lib/utils'; @@ -24,8 +24,8 @@ export class UserCommand extends SteveCommand { const ongoingIncidents = currentStatus.incidents.length > 0; const isOnFire = !componentsOperational || ongoingIncidents || currentStatus.status.indicator !== 'none'; - const embed = new MessageEmbed() - .setColor(isOnFire ? 'RED' : 'BLURPLE') + const embed = new EmbedBuilder() + .setColor(isOnFire ? 'Red' : 'Blurple') .setTitle(isOnFire ? 'Discord is currently on fire' : currentStatus.status.description) .setURL(currentStatus.page.url) .setThumbnail(isOnFire diff --git a/src/commands/General/ping.ts b/src/commands/General/ping.ts index 831360b..cb68f9e 100644 --- a/src/commands/General/ping.ts +++ b/src/commands/General/ping.ts @@ -17,7 +17,7 @@ export class UserCommand extends SteveCommand { }, { idHints: this.container.idHits.get(this.name) }); } - public override async chatInputRun(interaction: Command.ChatInputInteraction) { + public override async chatInputRun(interaction: Command.ChatInputCommandInteraction) { await interaction.reply('Ping?'); interaction.editReply(`Pong! (Roundtrip took: ${interaction.createdTimestamp - Date.now() }ms. Heartbeat: ${Math.round(this.container.client.ws.ping)}ms.)`); diff --git a/src/commands/General/whois.ts b/src/commands/General/whois.ts index e392070..5230367 100644 --- a/src/commands/General/whois.ts +++ b/src/commands/General/whois.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { send } from '@sapphire/plugin-editable-commands'; import type { Args, CommandOptions } from '@sapphire/framework'; -import { ColorResolvable, Message, MessageEmbed } from 'discord.js'; +import { ColorResolvable, Message, EmbedBuilder } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { dateToTimestamp } from '@lib/utils'; @@ -28,8 +28,8 @@ export class UserCommand extends SteveCommand { const targetData = await this.container.db.users.findOne({ id: target.id }); - const embed = new MessageEmbed() - .setAuthor({ name: target.user.tag, iconURL: target.displayAvatarURL({ dynamic: true }) }) + const embed = new EmbedBuilder() + .setAuthor({ name: target.user.tag, iconURL: target.displayAvatarURL() }) .setColor((targetData?.embedColor || 'AQUA') as ColorResolvable) .addFields([ { name: 'Display Name', value: target.displayName, inline: true }, diff --git a/src/commands/Info/commit.ts b/src/commands/Info/commit.ts index bd90b79..6567e85 100644 --- a/src/commands/Info/commit.ts +++ b/src/commands/Info/commit.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Args, CommandOptions, UserError } from '@sapphire/framework'; -import { Message, MessageEmbed } from 'discord.js'; +import { Message, EmbedBuilder } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { execSync } from 'child_process'; import { send } from '@sapphire/plugin-editable-commands'; @@ -51,11 +51,11 @@ export class CommitCommand extends SteveCommand { \`${message}\` by ${author} at ${dateToTimestamp(timestamp, 'f')}`); }); - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle(`Showing ${count} ${pluralize('commit', count)} on ${branch}`) .setURL(`${this.homePage}/tree/${branch}`) .setDescription(descriptions.join('\n')) - .setColor('AQUA'); + .setColor('Aqua'); return send(msg, { embeds: [embed] }); diff --git a/src/commands/Info/help.ts b/src/commands/Info/help.ts index 8f319c9..a4bc88c 100644 --- a/src/commands/Info/help.ts +++ b/src/commands/Info/help.ts @@ -1,8 +1,9 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { Args, CommandOptions, DetailedDescriptionCommand, MessageCommandContext } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; -import { EmbedField, Message, MessageEmbed, Util } from 'discord.js'; +import { EmbedField, Message, EmbedBuilder, ChannelType } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; +import { splitMessage } from '@lib/utils'; @ApplyOptions({ description: `Shows info about ${process.env.BOT_NAME}'s commands.`, @@ -57,14 +58,14 @@ export class UserCommand extends SteveCommand { }) ); - const splitStr = Util.splitMessage(helpStr, { char: '\n' }); + const splitStr = splitMessage(helpStr); let notified = false; splitStr.forEach((helpMsg) => { msg.author .send(helpMsg) .then(() => { if (!notified) { - if (msg.channel.type !== 'DM') send(msg, '📥 | The list of commands you have access to has been sent to your DMs.'); + if (msg.channel.type !== ChannelType.DM) send(msg, '📥 | The list of commands you have access to has been sent to your DMs.'); notified = true; } }) @@ -153,11 +154,11 @@ export class UserCommand extends SteveCommand { }); } - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setAuthor({ iconURL: msg.client.user?.avatarURL() ?? undefined, name: cmd.name }) .setTitle(cmd.description) .addFields(fields) - .setColor('RANDOM'); + .setColor('Random'); if (cmd.supportsChatInputCommands()) { embed.setDescription(`<:supportsSlashCommands:1053479279343710328> You can also run ${cmd.name} using slash commands!`); diff --git a/src/commands/Info/snippet.ts b/src/commands/Info/snippet.ts index c58d09c..bff2229 100644 --- a/src/commands/Info/snippet.ts +++ b/src/commands/Info/snippet.ts @@ -2,7 +2,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Args, UserError } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; import type { SubcommandOptions } from '@sapphire/plugin-subcommands'; -import { Message, MessageEmbed } from 'discord.js'; +import { Message, EmbedBuilder } from 'discord.js'; import { SteveSubcommand } from '@lib/extensions/SteveSubcommand'; import { sendLoadingMessage } from '@lib/utils'; @@ -47,9 +47,9 @@ export class UserCommand extends SteveSubcommand { const snips = await this.container.db.snips.find({ guildId: msg.guildId }).toArray(); - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('Snippets') - .setColor('DARK_VIVID_PINK') + .setColor('DarkVividPink') .setDescription(`\`${snips.map(snip => snip.snipName).join('`, `')}\``); return response.edit({ content: ' ', embeds: [embed] }); diff --git a/src/commands/Info/stats.ts b/src/commands/Info/stats.ts index b31ec49..d327917 100644 --- a/src/commands/Info/stats.ts +++ b/src/commands/Info/stats.ts @@ -1,7 +1,7 @@ import { PaginatedMessage } from '@sapphire/discord.js-utilities'; import { ApplyOptions } from '@sapphire/decorators'; import { CommandOptions, version as sapphireVersion } from '@sapphire/framework'; -import { Message, MessageEmbed, version as discordVersion } from 'discord.js'; +import { Message, EmbedBuilder, version as discordVersion } from 'discord.js'; import { readFileSync } from 'fs'; import prettyMilliseconds from 'pretty-ms'; import { SteveCommand } from '@lib/extensions/SteveCommand'; @@ -21,9 +21,9 @@ export class UserCommand extends SteveCommand { const paginator = new PaginatedMessage({ template: { embeds: [ - new MessageEmbed() + new EmbedBuilder() .setTitle('Statistics') - .setColor('DARK_GREEN') + .setColor('DarkGreen') .setTimestamp() ] } @@ -37,7 +37,7 @@ export class UserCommand extends SteveCommand { ); paginator.addPage({ - embeds: [new MessageEmbed() + embeds: [new EmbedBuilder() .setThumbnail(client.user?.displayAvatarURL() ?? '') .addFields([ { name: 'Users', value: client.users.cache.size.toString(), inline: true }, @@ -59,7 +59,7 @@ export class UserCommand extends SteveCommand { statsPages.forEach((statsPage, idx) => paginator.addPage({ files: [makeChart(statsPage, { title: 'Command Usage', name: `cmdUse${idx}` })], - embeds: [new MessageEmbed().setImage(`attachment://cmdUse${idx}.png`)] + embeds: [new EmbedBuilder().setImage(`attachment://cmdUse${idx}.png`)] }) ); diff --git a/src/commands/Info/suggest.ts b/src/commands/Info/suggest.ts index 312dc1a..36b8685 100644 --- a/src/commands/Info/suggest.ts +++ b/src/commands/Info/suggest.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { Args, CommandOptions } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; -import { Message, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'; +import { Message, ActionRowBuilder, ButtonBuilder, EmbedBuilder, ButtonStyle } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; @ApplyOptions({ @@ -14,14 +14,14 @@ export class UserCommand extends SteveCommand { if (!this.container.hooks.suggest) return; const suggestion = await args.rest('string'); - const components: MessageActionRow[] = []; + const components: ActionRowBuilder[] = []; if (this.container.gitHub) { - components.push(new MessageActionRow().addComponents( - new MessageButton() + components.push(new ActionRowBuilder().addComponents( + new ButtonBuilder() .setCustomId('suggestion') .setLabel('Create Issue') - .setStyle('SECONDARY') + .setStyle(ButtonStyle.Secondary) .setEmoji('<:open:949846758509391872>'))); } @@ -29,8 +29,8 @@ export class UserCommand extends SteveCommand { username: this.container.client.user?.username, avatarURL: this.container.client.user?.displayAvatarURL(), embeds: [ - new MessageEmbed() - .setAuthor({ name: msg.author.tag, iconURL: msg.author.displayAvatarURL({ dynamic: true }) }) + new EmbedBuilder() + .setAuthor({ name: msg.author.tag, iconURL: msg.author.displayAvatarURL() }) .setTitle('Feedback') .setDescription(suggestion) .setTimestamp() diff --git a/src/commands/Server Managment/channelName.ts b/src/commands/Server Managment/channelName.ts index 6c03fb1..53c50c4 100644 --- a/src/commands/Server Managment/channelName.ts +++ b/src/commands/Server Managment/channelName.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Args, CommandOptions, UserError } from '@sapphire/framework'; -import { Message, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'; +import { Message, ActionRowBuilder, ButtonBuilder, EmbedBuilder, ButtonStyle } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { sendLoadingMessage } from '@lib/utils'; @@ -25,23 +25,23 @@ export class UserCommand extends SteveCommand { const newName = (await args.rest('string')).toLowerCase().replaceAll(' ', '_'); const needed = 3; - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setAuthor({ name: `${msg?.member?.displayName ?? msg.author.username} suggested a channel name change!`, iconURL: msg.author.displayAvatarURL() }) .setTitle(`Rename this channel to #${newName}?`) - .setColor('RANDOM'); + .setColor('Random'); - const buttons = new MessageActionRow() + const buttons = new ActionRowBuilder() .addComponents([ - new MessageButton() + new ButtonBuilder() .setCustomId('rename|yes') .setEmoji('✅') - .setStyle('SUCCESS') + .setStyle(ButtonStyle.Success) .setLabel(`${needed} votes needed to pass`), - new MessageButton() + new ButtonBuilder() .setCustomId('rename|no') .setEmoji('❎') - .setStyle('DANGER') + .setStyle(ButtonStyle.Danger) .setLabel(`${needed} votes needed to decline`) ]); diff --git a/src/commands/Server Managment/manageAssignableRoles.ts b/src/commands/Server Managment/manageAssignableRoles.ts index a1ac1f3..a8b9cf9 100644 --- a/src/commands/Server Managment/manageAssignableRoles.ts +++ b/src/commands/Server Managment/manageAssignableRoles.ts @@ -8,7 +8,7 @@ import { sendLoadingMessage } from '@lib/utils'; description: 'Add or remove a role from the list of assignable roles.', aliases: ['mar'], runIn: 'GUILD_ANY', - requiredUserPermissions: 'MANAGE_ROLES', + requiredUserPermissions: 'ManageRoles', detailedDescription: { usage: '', extendedHelp: 'The role will be added to the list if it isn\'t in it and removed from it if it is.' diff --git a/src/commands/Server Managment/manageCountChannel.ts b/src/commands/Server Managment/manageCountChannel.ts index 70a0efe..062f140 100644 --- a/src/commands/Server Managment/manageCountChannel.ts +++ b/src/commands/Server Managment/manageCountChannel.ts @@ -8,7 +8,7 @@ import type { CountData } from '@lib/types/database'; @ApplyOptions({ description: 'Sets the count channel.', aliases: ['countchannel'], - requiredUserPermissions: ['MANAGE_CHANNELS'], + requiredUserPermissions: ['ManageChannels'], runIn: ['GUILD_ANY'], detailedDescription: { usage: '(channel)', diff --git a/src/commands/Server Managment/manageFaxChannel.ts b/src/commands/Server Managment/manageFaxChannel.ts index 671d5f8..83b994e 100644 --- a/src/commands/Server Managment/manageFaxChannel.ts +++ b/src/commands/Server Managment/manageFaxChannel.ts @@ -7,7 +7,7 @@ import { SteveCommand } from '@lib/extensions/SteveCommand'; @ApplyOptions({ description: 'Allows a channel to receive faxes.', - requiredUserPermissions: ['MANAGE_CHANNELS'], + requiredUserPermissions: ['ManageChannels'], runIn: ['GUILD_ANY'], detailedDescription: { usage: '', diff --git a/src/commands/Server Managment/manageRPchannel.ts b/src/commands/Server Managment/manageRPchannel.ts index caa091a..c3ed2c7 100644 --- a/src/commands/Server Managment/manageRPchannel.ts +++ b/src/commands/Server Managment/manageRPchannel.ts @@ -7,8 +7,8 @@ import { sendLoadingMessage } from '@lib/utils'; @ApplyOptions({ description: 'Set the role play channel', - requiredUserPermissions: 'MANAGE_CHANNELS', - requiredClientPermissions: 'MANAGE_WEBHOOKS', + requiredUserPermissions: 'ManageChannels', + requiredClientPermissions: 'ManageWebhooks', runIn: ['GUILD_TEXT'], aliases: ['mrpc'] }) @@ -33,10 +33,10 @@ export class UserCommand extends SteveCommand { } const channel = channelResult.unwrap(); - const { url } = await channel.createWebhook( - 'rollPlayChannel', - { reason: `Roll play channel set by ${msg.author.tag} (${msg.author.id})` } - ); + const { url } = await channel.createWebhook({ + name: 'rollPlayChannel', + reason: `Roll play channel set by ${msg.author.tag} (${msg.author.id})` + }); this.container.rpChannels.set(channel.id, new WebhookClient({ url })); diff --git a/src/commands/Server Managment/manageRemindChannel.ts b/src/commands/Server Managment/manageRemindChannel.ts index 16255ec..364730a 100644 --- a/src/commands/Server Managment/manageRemindChannel.ts +++ b/src/commands/Server Managment/manageRemindChannel.ts @@ -7,7 +7,7 @@ import { SteveCommand } from '@lib/extensions/SteveCommand'; @ApplyOptions({ description: 'Sets the channel reminders are to be sent in.', aliases: ['remindChannel'], - requiredUserPermissions: ['MANAGE_CHANNELS'], + requiredUserPermissions: ['ManageChannels'], runIn: ['GUILD_ANY'], detailedDescription: { usage: '(channel)', diff --git a/src/commands/Server Managment/manageRollLog.ts b/src/commands/Server Managment/manageRollLog.ts index 77dd19f..d7c640b 100644 --- a/src/commands/Server Managment/manageRollLog.ts +++ b/src/commands/Server Managment/manageRollLog.ts @@ -7,7 +7,7 @@ import { send } from '@sapphire/plugin-editable-commands'; @ApplyOptions({ description: 'Sets the channel rolls are logged to.', aliases: ['mrl', 'rollchannel'], - requiredUserPermissions: ['MANAGE_CHANNELS'], + requiredUserPermissions: ['ManageChannels'], runIn: ['GUILD_ANY'], detailedDescription: { examples: ['', '#roll_log'], diff --git a/src/commands/Server Managment/manageSnippets.ts b/src/commands/Server Managment/manageSnippets.ts index 75b8718..8ce1638 100644 --- a/src/commands/Server Managment/manageSnippets.ts +++ b/src/commands/Server Managment/manageSnippets.ts @@ -8,7 +8,7 @@ import { sendLoadingMessage } from '@lib/utils'; @ApplyOptions({ description: 'Add, remove or edit snips.', - requiredUserPermissions: 'MANAGE_MESSAGES', + requiredUserPermissions: 'ManageMessages', aliases: ['managesnippet', 'managesnips', 'managesnip'], runIn: 'GUILD_ANY', detailedDescription: { diff --git a/src/commands/Server Managment/setVoteToPin.ts b/src/commands/Server Managment/setVoteToPin.ts index 0b37c49..474e748 100644 --- a/src/commands/Server Managment/setVoteToPin.ts +++ b/src/commands/Server Managment/setVoteToPin.ts @@ -10,7 +10,7 @@ import { send } from '@sapphire/plugin-editable-commands'; detailedDescription: { extendedHelp: 'Setting this to `0` disables vote to pin.' }, - requiredUserPermissions: 'MANAGE_MESSAGES', + requiredUserPermissions: 'ManageMessages', runIn: 'GUILD_ANY' }) export class UserCommand extends SteveCommand { diff --git a/src/commands/User Managment/assign.ts b/src/commands/User Managment/assign.ts index 6e9c7d6..af7a171 100644 --- a/src/commands/User Managment/assign.ts +++ b/src/commands/User Managment/assign.ts @@ -2,7 +2,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Args, MessageCommandContext, UserError } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; import type { SubcommandOptions } from '@sapphire/plugin-subcommands'; -import { Message, MessageEmbed } from 'discord.js'; +import { Message, EmbedBuilder } from 'discord.js'; import { SteveSubcommand } from '@lib/extensions/SteveSubcommand'; import { sendLoadingMessage } from '@lib/utils'; @@ -61,9 +61,9 @@ export class UserCommand extends SteveSubcommand { return response.edit('This server has no assignable roles.'); } - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle('Assignable roles') - .setColor('YELLOW') + .setColor('Yellow') .setDescription(`Use \`${ctx.commandPrefix}assign \` to assign or unassign any of these roles <@&${dbGuild.assignableRoles.join('>, <@&')}>`); diff --git a/src/commands/User Managment/manageQuickRolls.ts b/src/commands/User Managment/manageQuickRolls.ts index bfd4a1a..0baabfc 100644 --- a/src/commands/User Managment/manageQuickRolls.ts +++ b/src/commands/User Managment/manageQuickRolls.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { Args } from '@sapphire/framework'; import type { SubcommandOptions } from '@sapphire/plugin-subcommands'; -import { Message, MessageEmbed } from 'discord.js'; +import { Message, EmbedBuilder } from 'discord.js'; import { SteveSubcommand } from '@lib/extensions/SteveSubcommand'; import { sendLoadingMessage } from '@lib/utils'; @@ -89,8 +89,8 @@ export class UserCommand extends SteveSubcommand { return response.edit('You currently have no quick rolls'); } - const embed = new MessageEmbed() - .setColor('RANDOM') + const embed = new EmbedBuilder() + .setColor('Random') .addFields(quickRolls.map(quickRoll => ({ name: quickRoll.rollName, value: quickRoll.specs.map(spec => spec.map(dice => dice.input).join().slice(1)).join(' '), diff --git a/src/commands/User Managment/manageRolePlay.ts b/src/commands/User Managment/manageRolePlay.ts index c3d8360..f5e02e2 100644 --- a/src/commands/User Managment/manageRolePlay.ts +++ b/src/commands/User Managment/manageRolePlay.ts @@ -2,7 +2,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { SteveSubcommand } from '@lib/extensions/SteveSubcommand'; import type { Subcommand, SubcommandOptions } from '@sapphire/plugin-subcommands'; import type { Command } from '@sapphire/framework'; -import { AutocompleteInteraction, Collection, MessageAttachment, MessageEmbed } from 'discord.js'; +import { AutocompleteInteraction, Collection, AttachmentBuilder, EmbedBuilder } from 'discord.js'; import type { RPCharter } from '@lib/types/database'; import { Filter, ObjectId, WithId } from 'mongodb'; @@ -85,7 +85,7 @@ export class UserCommand extends SteveSubcommand { }, { idHints: this.container.idHits.get(this.name) }); } - public async chatInputCreate(interaction: Subcommand.ChatInputInteraction) { + public async chatInputCreate(interaction: Subcommand.ChatInputCommandInteraction) { if (!interaction.inGuild()) { return interaction.reply({ content: 'This command must be run in a server.', ephemeral: true }); } @@ -109,7 +109,7 @@ export class UserCommand extends SteveSubcommand { return interaction.reply({ embeds: [this.buildCharacterEmbed(rpCharacter, 'add')], ephemeral: true }); } - public async chatInputEdit(interaction: Subcommand.ChatInputInteraction) { + public async chatInputEdit(interaction: Subcommand.ChatInputCommandInteraction) { if (!interaction.inGuild()) { return interaction.reply({ content: 'This command must be run in a server.', ephemeral: true }); } @@ -157,7 +157,7 @@ export class UserCommand extends SteveSubcommand { return interaction.reply({ embeds: [this.buildCharacterEmbed(rpCharacter, 'edit', preChange.name)], ephemeral: true }); } - public async chatInputRemove(interaction: Subcommand.ChatInputInteraction) { + public async chatInputRemove(interaction: Subcommand.ChatInputCommandInteraction) { if (!interaction.inGuild()) { return interaction.reply({ content: 'This command must be run in a server.', ephemeral: true }); } @@ -205,24 +205,24 @@ export class UserCommand extends SteveSubcommand { return fetchedCharacters; } - private buildCharacterEmbed({ name, pfp, prefix }: RPCharter, operation: 'add' | 'edit' | 'delete', oldName?: string): MessageEmbed { - const embed = new MessageEmbed(); + private buildCharacterEmbed({ name, pfp, prefix }: RPCharter, operation: 'add' | 'edit' | 'delete', oldName?: string): EmbedBuilder { + const embed = new EmbedBuilder(); switch (operation) { case 'add': embed .setTitle(`**${name}** created`) - .setColor('DARK_GREEN'); + .setColor('DarkRed'); break; case 'edit': embed .setTitle(`${oldName || 'Your character'} is now **${name}**`) - .setColor('YELLOW'); + .setColor('Yellow'); break; default: embed .setTitle(`**${name}** deleted`) - .setColor('DARK_RED'); + .setColor('DarkRed'); break; } @@ -237,17 +237,17 @@ export class UserCommand extends SteveSubcommand { return embed; } - private async getPfpURL(interaction: Subcommand.ChatInputInteraction): Promise { + private async getPfpURL(interaction: Subcommand.ChatInputCommandInteraction): Promise { const ephemeralAttachment = interaction.options.getAttachment('pfp'); if (!ephemeralAttachment) return undefined; const pfpLog = await this.container.client.channels.fetch(process.env.RP_PFP_CHANNEL ?? ''); - if (!pfpLog || !pfpLog.isText()) return undefined; + if (!pfpLog || !pfpLog.isTextBased()) return undefined; - const logMsg = await pfpLog.send({ files: [new MessageAttachment( + const logMsg = await pfpLog.send({ files: [new AttachmentBuilder( ephemeralAttachment.attachment, - ephemeralAttachment.name ?? `pfp.${ephemeralAttachment.contentType}` + {name: ephemeralAttachment.name ?? `pfp.${ephemeralAttachment.contentType}`} )] }); return logMsg.attachments.first()?.url; diff --git a/src/commands/fun/f.ts b/src/commands/fun/f.ts index db37db1..46b7864 100644 --- a/src/commands/fun/f.ts +++ b/src/commands/fun/f.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import type { CommandOptions } from '@sapphire/framework'; -import { Message, MessageAttachment } from 'discord.js'; +import { Message, AttachmentBuilder } from 'discord.js'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import { send } from '@sapphire/plugin-editable-commands'; @@ -12,7 +12,7 @@ export class UserCommand extends SteveCommand { public async messageRun(msg: Message) { send(msg, { files: [ - new MessageAttachment(`${__dirname}../../../../assets/pay_respects.png`) + new AttachmentBuilder(`${__dirname}../../../../assets/pay_respects.png`) .setDescription('A screenshot of a cutscene from Call of Duty: Advanced Warfare, showing a US Marine\'s funeral. A quick-time-event prompt is showing, saying "Press F to pay respects."') ] }); diff --git a/src/commands/fun/poll.ts b/src/commands/fun/poll.ts index 31caa6b..33ae15b 100644 --- a/src/commands/fun/poll.ts +++ b/src/commands/fun/poll.ts @@ -1,7 +1,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Args, Command, CommandOptions, UserError } from '@sapphire/framework'; import { chunk } from '@sapphire/utilities'; -import { EmbedAuthorData, Message, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'; +import { EmbedAuthorData, Message, ActionRowBuilder, ButtonBuilder, EmbedBuilder, ButtonStyle } from 'discord.js'; import parse from 'parse-duration'; import { stripIndent } from 'common-tags'; import { SteveCommand } from '@lib/extensions/SteveCommand'; @@ -60,7 +60,7 @@ export class PollCommand extends SteveCommand { }, { idHints: this.container.idHits.get(this.name) }); } - public async chatInputRun(interaction: Command.ChatInputInteraction) { + public async chatInputRun(interaction: Command.ChatInputCommandInteraction) { interaction.reply(getLoadingMessage()); const question = interaction.options.getString('question', true); @@ -76,11 +76,11 @@ export class PollCommand extends SteveCommand { const reply = await interaction.fetchReply(); let showName = interaction.user.username; - let showAvatar = interaction.user.displayAvatarURL({ dynamic: true }); + let showAvatar = interaction.user.displayAvatarURL(); if (interaction.member && 'displayName' in interaction.member) { showName = interaction.member.displayName; - showAvatar = interaction.member.displayAvatarURL({ dynamic: true }); + showAvatar = interaction.member.displayAvatarURL(); } const editReply = await this.generatePoll({ @@ -121,7 +121,7 @@ export class PollCommand extends SteveCommand { channelId: response.channel.id, author: { name: `${msg.member?.displayName ?? msg.author.username} asks...`, - iconURL: msg.member?.displayAvatarURL({ dynamic: true }) ?? msg.author.displayAvatarURL({ dynamic: true }) + iconURL: msg.member?.displayAvatarURL() ?? msg.author.displayAvatarURL() } }); @@ -140,7 +140,7 @@ export class PollCommand extends SteveCommand { channelId: string, author: EmbedAuthorData } - ): Promise<{ content: ' ', embeds: MessageEmbed[], components: MessageActionRow[]}> { + ): Promise<{ content: ' ', embeds: EmbedBuilder[], components: ActionRowBuilder[]}> { if (choices.length < 2 || choices.length > 10) { throw new UserError({ identifier: 'InvalidChoiceAmount', @@ -152,23 +152,23 @@ export class PollCommand extends SteveCommand { choices = choices.map((choice, idx) => `${NUMBER_EMOTES[idx]} ${choice}`); const expires = new Date(Date.now() + parse(rawExpires ?? '1d')); - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle(question) - .setColor('RANDOM') + .setColor('Random') .setAuthor(author) .setDescription(`${choices.join('\n')}\n\nThis poll ends at ${dateToTimestamp(expires, 'f')}`); - const components: MessageActionRow[] = []; + const components: ActionRowBuilder[] = []; chunk(choices, 2).forEach((pair) => { - const row = new MessageActionRow(); + const row = new ActionRowBuilder(); pair.forEach((choice) => { row.addComponents([ - new MessageButton() + new ButtonBuilder() .setCustomId( `poll|${choices.indexOf(choice)}|${messageId}` ) - .setStyle('PRIMARY') + .setStyle(ButtonStyle.Primary) .setLabel( choice.length < 80 ? choice diff --git a/src/commands/fun/roll.ts b/src/commands/fun/roll.ts index 47e7ce8..dfe7caf 100644 --- a/src/commands/fun/roll.ts +++ b/src/commands/fun/roll.ts @@ -4,7 +4,7 @@ import { AutocompleteInteraction, Guild, Message, - MessageEmbed, + EmbedBuilder, TextBasedChannel, User } from 'discord.js'; @@ -51,7 +51,7 @@ export class RollCommand extends SteveCommand { }, { idHints: this.container.idHits.get(this.name) }); } - public async chatInputRun(interaction: Command.ChatInputInteraction) { + public async chatInputRun(interaction: Command.ChatInputCommandInteraction) { const parameter = interaction.options.getString('dice', true); const resolvedRoll = await resolveRoll(parameter, interaction.user); @@ -129,10 +129,10 @@ export class RollCommand extends SteveCommand { if (!rollLogId) return; const rollLog = await guild.channels.fetch(rollLogId) as TextBasedChannel; - rollLog.send({ embeds: [new MessageEmbed() - .setAuthor({ name: `${author.tag} rolled...`, iconURL: author.displayAvatarURL({ dynamic: true }) }) + rollLog.send({ embeds: [new EmbedBuilder() + .setAuthor({ name: `${author.tag} rolled...`, iconURL: author.displayAvatarURL() }) .setDescription(result) - .setColor('AQUA') + .setColor('Aqua') .setTimestamp() ] }); } diff --git a/src/commands/reminders/viewreminders.ts b/src/commands/reminders/viewreminders.ts index 2bfbe49..37c006e 100644 --- a/src/commands/reminders/viewreminders.ts +++ b/src/commands/reminders/viewreminders.ts @@ -2,7 +2,7 @@ import { ApplyOptions } from '@sapphire/decorators'; import { PaginatedMessage } from '@sapphire/discord.js-utilities'; import type { CommandOptions } from '@sapphire/framework'; import { chunk } from '@sapphire/utilities'; -import { ColorResolvable, Message, MessageEmbed } from 'discord.js'; +import { ChannelType, ColorResolvable, Message, EmbedBuilder } from 'discord.js'; import prettyMilliseconds from 'pretty-ms'; import { SteveCommand } from '@lib/extensions/SteveCommand'; import type { Reminder } from '@lib/types/database'; @@ -37,7 +37,7 @@ export class UserCommand extends SteveCommand { template: { content: ' ', embeds: [ - new MessageEmbed() + new EmbedBuilder() .setTitle('Your Pending Reminders') .setColor(color) ] @@ -58,7 +58,7 @@ export class UserCommand extends SteveCommand { private getReminderContent(reminder: Reminder, msg: Message): string { return `${ - reminder.mode === 'public' || msg.channel.type === 'DM' + reminder.mode === 'public' || msg.channel.type === ChannelType.DM ? reminder.content : 'Private reminder, contents hidden.' }\nThis reminder goes off at ${dateToTimestamp( diff --git a/src/index.ts b/src/index.ts index e1c5ebd..0eadb62 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,6 +3,7 @@ import '@lib/setup'; import { container, LogLevel } from '@sapphire/framework'; import { SteveBoi } from '@lib/extensions/SteveBoi'; import { startMongo } from '@lib/mongo'; +import { ActivityType, Partials } from 'discord.js'; const main = async () => { await startMongo(); @@ -30,17 +31,18 @@ const main = async () => { }, shards: 'auto', intents: [ - 'GUILDS', - 'GUILD_MEMBERS', - 'GUILD_BANS', - 'GUILD_EMOJIS_AND_STICKERS', - 'GUILD_VOICE_STATES', - 'GUILD_MESSAGES', - 'GUILD_MESSAGE_REACTIONS', - 'DIRECT_MESSAGES', - 'DIRECT_MESSAGE_REACTIONS' + 'MessageContent', + 'Guilds', + 'GuildMembers', + 'GuildBans', + 'GuildEmojisAndStickers', + 'GuildVoiceStates', + 'GuildMessages', + 'GuildMessageReactions', + 'DirectMessages', + 'DirectMessageReactions' ], - partials: ['MESSAGE', 'CHANNEL', 'REACTION'] + partials: [Partials.Message, Partials.Channel, Partials.Reaction] }); try { @@ -50,7 +52,7 @@ const main = async () => { client.user?.setPresence({ activities: [ { - type: 'PLAYING', + type: ActivityType.Playing, name: `${prefix}help` } ] diff --git a/src/interaction-handlers/poll.ts b/src/interaction-handlers/poll.ts index f9daddd..c3c91b7 100644 --- a/src/interaction-handlers/poll.ts +++ b/src/interaction-handlers/poll.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import { InteractionHandler, InteractionHandlerOptions, InteractionHandlerTypes } from '@sapphire/framework'; -import { ButtonInteraction, MessageEmbed } from 'discord.js'; +import { ButtonInteraction, EmbedBuilder } from 'discord.js'; import type { Poll } from '@lib/types/database'; import { dateToTimestamp } from '@lib/utils'; @@ -49,7 +49,7 @@ export class PollHandler extends InteractionHandler { await this.container.db.polls.findOneAndReplace({ _id: poll._id }, newPoll); await interaction.followUp({ content, ephemeral: true }); - const embed = new MessageEmbed(interaction.message.embeds[0]); + const embed = new EmbedBuilder(interaction.message.embeds[0].data); embed.setDescription( `${newPoll.choices .map((newChoice) => `${newChoice.text}${newChoice.votes > 0 ? ` - ${newChoice.votes} vote${newChoice.votes === 1 ? '' : 's'}` : ''}`) diff --git a/src/lib/extensions/SteveBoi.ts b/src/lib/extensions/SteveBoi.ts index f3ec2af..4b36b4f 100644 --- a/src/lib/extensions/SteveBoi.ts +++ b/src/lib/extensions/SteveBoi.ts @@ -1,5 +1,5 @@ import { container, Events, SapphireClient } from '@sapphire/framework'; -import { ClientOptions, MessageEmbed, TextChannel } from 'discord.js'; +import { ActionRowBuilder, ButtonBuilder, ClientOptions, EmbedBuilder, TextChannel } from 'discord.js'; import { schedule, ScheduledTask } from 'node-cron'; import type { CmdStats, DbGuild } from '@lib/types/database'; import { generateSnoozeButtons, getChannel, pickRandom, pluralize } from '@lib/utils'; @@ -86,7 +86,7 @@ export class SteveBoi extends SapphireClient { = this.channels.cache.get(reminder.channel) ?? await this.channels.fetch(reminder.channel); - if (!channel?.isText()) return; + if (!channel?.isTextBased()) return; channel.send({ content: `<@${reminder.user}>, you asked me to remind you about this:\n${reminder.content}`, @@ -114,15 +114,18 @@ export class SteveBoi extends SapphireClient { polls.forEach(async (poll) => { const channel = (await getChannel(poll.channelId)) as TextChannel; - const msg = await channel.messages.fetch(poll.messageId, { - cache: true - }); + const msg = await channel.messages.fetch({ message: poll.messageId, cache: true }); - const { components } = msg; + const newButtons = new ActionRowBuilder(); - components.forEach((row) => { + msg.components.forEach((row) => { row.components.forEach((button) => { - button.setDisabled(true); + newButtons.addComponents([ + new ButtonBuilder({ + ...button.data, + disabled: true + }) + ]); }); }); @@ -143,11 +146,11 @@ export class SteveBoi extends SapphireClient { ) .join('\n'); - const embed = new MessageEmbed(msg.embeds[0]).setDescription( + const embed = new EmbedBuilder(msg.embeds[0].data).setDescription( `${choiceList}\n\nThis poll has ended.` ); - await msg.edit({ components, embeds: [embed] }); + await msg.edit({ components: [newButtons], embeds: [embed] }); container.db.polls.findOneAndDelete({ _id: poll._id }); }); diff --git a/src/lib/extensions/SteveCommand.ts b/src/lib/extensions/SteveCommand.ts index a1b7e83..b8f1482 100644 --- a/src/lib/extensions/SteveCommand.ts +++ b/src/lib/extensions/SteveCommand.ts @@ -1,5 +1,5 @@ import { Command, CommandOptions, PieceContext } from '@sapphire/framework'; -import { Permissions } from 'discord.js'; +import { PermissionsBitField } from 'discord.js'; export abstract class SteveCommand extends Command { @@ -7,10 +7,10 @@ export abstract class SteveCommand extends Command { super(context, { ...options, requiredClientPermissions: options.requiredClientPermissions - ? new Permissions('EMBED_LINKS').add( + ? new PermissionsBitField('EmbedLinks').add( options.requiredClientPermissions ) - : 'EMBED_LINKS' + : 'EmbedLinks' }); } diff --git a/src/lib/extensions/SteveSubcommand.ts b/src/lib/extensions/SteveSubcommand.ts index 50a91d3..135f358 100644 --- a/src/lib/extensions/SteveSubcommand.ts +++ b/src/lib/extensions/SteveSubcommand.ts @@ -1,7 +1,7 @@ import type { PieceContext } from '@sapphire/framework'; import { Subcommand, SubcommandOptions } from '@sapphire/plugin-subcommands'; import { send } from '@sapphire/plugin-editable-commands'; -import { Message, Permissions } from 'discord.js'; +import { Message, PermissionsBitField } from 'discord.js'; export abstract class SteveSubcommand extends Subcommand { @@ -32,10 +32,10 @@ export abstract class SteveSubcommand extends Subcommand { super(context, { ...options, requiredClientPermissions: options.requiredClientPermissions - ? new Permissions('EMBED_LINKS').add( + ? new PermissionsBitField('EmbedLinks').add( options.requiredClientPermissions ) - : 'EMBED_LINKS' + : 'EmbedLinks' }); this.cmdNames = names; diff --git a/src/lib/utils.ts b/src/lib/utils.ts index bc53025..beb6146 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,10 +1,21 @@ import { container } from '@sapphire/framework'; import { send } from '@sapphire/plugin-editable-commands'; -import { Chart } from 'chart.js'; +import { ChartJSNodeCanvas } from 'chartjs-node-canvas'; import ChartDataLabels from 'chartjs-plugin-datalabels'; -import { createCanvas } from 'canvas'; import { oneLine } from 'common-tags'; -import { AnyChannel, Collection, ColorResolvable, Guild, Message, MessageActionRow, MessageAttachment, MessageButton, MessageEmbed, User } from 'discord.js'; +import { + Channel, + Collection, + ColorResolvable, + Guild, + Message, + ActionRowBuilder, + AttachmentBuilder, + ButtonBuilder, + EmbedBuilder, + User, + ButtonStyle +} from 'discord.js'; import type { WithId } from 'mongodb'; import prettyMilliseconds from 'pretty-ms'; import { RandomLoadingMessage } from '@lib/constants'; @@ -48,7 +59,7 @@ export async function getGuild(guildId: string): Promise { export async function getChannel( channelId: string -): Promise { +): Promise { return ( container.client.channels.cache.get(channelId) ?? await container.client.channels.fetch(channelId) @@ -62,8 +73,8 @@ export async function getUser(userId: string): Promise { ); } -export function makeColorEmbed(color: ColorResolvable): MessageEmbed { - return new MessageEmbed() +export function makeColorEmbed(color: ColorResolvable): EmbedBuilder { + return new EmbedBuilder() .setColor(color) .setThumbnail(`https://singlecolorimage.com/get/${color.toString(16).padStart(6, '0')}/400x400`); } @@ -96,7 +107,7 @@ export async function resetCount(msg: Message, reason: string, ping = false, del const newMax = counter > max; const timeTaken = Date.now() - started.getTime(); - const embed = new MessageEmbed() + const embed = new EmbedBuilder() .setTitle(`The count has ended at ${counter}`) .setDescription( counter === 0 @@ -106,7 +117,7 @@ export async function resetCount(msg: Message, reason: string, ping = false, del an average of one count ever ${prettyMilliseconds(timeTaken / counter, { verbose: true })}. ${newMax ? 'This is the new maximum count!' : ''}` ) - .setColor('BLURPLE'); + .setColor('Blurple'); const resultMsg = await msg.channel.send({ embeds: [embed] }); @@ -143,64 +154,61 @@ export async function resetCount(msg: Message, reason: string, ping = false, del msg.channel.send('Count restarting...\n0'); } -export function makeChart(data: Collection, { name, title }: { name?: string, title?: string}): MessageAttachment { - const canvas = createCanvas(1000, 600); - const context = canvas.getContext('2d'); - - const displayChart = new Chart(context, { - type: 'bar', - data: { - labels: Array.from(data.keys()), - datasets: [{ - data: Array.from(data.values()), - backgroundColor: '#5865F2' - }] - }, - options: { - layout: { - padding: 30 +export function makeChart(data: Collection, { name, title }: { name?: string, title?: string}): AttachmentBuilder { + const imageBuffer = new ChartJSNodeCanvas({ width: 1000, height: 600 }) + .renderToBufferSync({ + type: 'bar', + data: { + labels: Array.from(data.keys()), + datasets: [{ + data: Array.from(data.values()), + backgroundColor: '#5865F2' + }] }, - scales: { - y: { - beginAtZero: true, - grid: { display: false } + options: { + layout: { + padding: 30 }, - x: { - display: false, - grid: { display: false } + scales: { + y: { + beginAtZero: true, + grid: { display: false } + }, + x: { + display: false, + grid: { display: false } + } + }, + indexAxis: 'y', + plugins: { + legend: { display: false }, + title: { text: title ?? '', display: !!title }, + datalabels: { + anchor: 'end', + clamp: true, + backgroundColor: '#37393f', + borderRadius: 10 + } } }, - indexAxis: 'y', - plugins: { - legend: { display: false }, - title: { text: title ?? '', display: !!title }, - datalabels: { - anchor: 'end', - clamp: true, - backgroundColor: '#37393f', - borderRadius: 10 - } - } - }, - plugins: [ - ChartDataLabels, - { - id: 'custom_canvas_background_color', - beforeDraw: (chart) => { - const ctx = chart.canvas.getContext('2d'); - if (!ctx) return; - ctx.save(); - ctx.globalCompositeOperation = 'destination-over'; - ctx.fillStyle = '#37393f'; - ctx.fillRect(0, 0, chart.width, chart.height); - ctx.restore(); + plugins: [ + ChartDataLabels, + { + id: 'custom_canvas_background_color', + beforeDraw: (chart) => { + const ctx = chart.canvas.getContext('2d'); + if (!ctx) return; + ctx.save(); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = '#37393f'; + ctx.fillRect(0, 0, chart.width, chart.height); + ctx.restore(); + } } - } - ] - }); - displayChart.render(); + ] + }); - return new MessageAttachment(canvas.toBuffer(), `${name ?? 'chart'}.png`) + return new AttachmentBuilder(imageBuffer, { name: `${name ?? 'chart'}.png` }) .setDescription(`A bar graph${title ? ` titled ${title}` : ''}. The data on the graph is; ${ data.map((value, key) => `${key}: ${value}`).join(', ') }.`); @@ -213,16 +221,16 @@ export function chunkCollection(col: Collection, size: number): Arra return chunks; } -export function sendToFile(content: string, { filename, extension = 'txt' }: { filename: string, extension?: string}): MessageAttachment { - return new MessageAttachment(Buffer.from(content), `${filename}.${extension}`); +export function sendToFile(content: string, { filename, extension = 'txt' }: { filename: string, extension?: string}): AttachmentBuilder { + return new AttachmentBuilder(Buffer.from(content), { name: `${filename}.${extension}` }); } -export function buildErrorPayload(error: Error): [MessageEmbed, MessageAttachment[]] { - const embed = new MessageEmbed() - .setColor('RED') +export function buildErrorPayload(error: Error): [EmbedBuilder, AttachmentBuilder[]] { + const embed = new EmbedBuilder() + .setColor('Red') .setTitle(error.name) .setTimestamp(); - const files: MessageAttachment[] = []; + const files: AttachmentBuilder[] = []; if (error.message) { if (error.message.length < 1000) { @@ -235,27 +243,52 @@ export function buildErrorPayload(error: Error): [MessageEmbed, MessageAttachmen if (error.stack) { if (error.stack.length < 1000) { - embed.addField('Stack Trace', `\`\`\`js\n${error.stack}\`\`\``, false); + embed.addFields([{ name: 'Stack Trace', value: `\`\`\`js\n${error.stack}\`\`\``, inline: false }]); } else { - embed.addField('Stack Trace', 'Full stack too big, sent to file.', false); + embed.addFields([{ name: 'Stack Trace', value: 'Full stack too big, sent to file.', inline: false }]); files.push(sendToFile(error.stack, { filename: 'StackTrace', extension: 'js' })); } } return [embed, files]; } -export function generateSnoozeButtons(userId: string): MessageActionRow[] { - return [new MessageActionRow() +export function generateSnoozeButtons(userId: string): ActionRowBuilder[] { + return [new ActionRowBuilder() .addComponents([ - new MessageButton() + new ButtonBuilder() .setEmoji('💤') .setLabel('Snooze') - .setStyle('SECONDARY') + .setStyle(ButtonStyle.Secondary) .setCustomId(`snooze|${userId}`), - new MessageButton() + new ButtonBuilder() .setEmoji('✅') .setLabel('Done') - .setStyle('SUCCESS') + .setStyle(ButtonStyle.Success) .setCustomId(`remove all components|${userId}`) ])]; } + +export function splitMessage(text: string): string[] { + if (text.length <= 2000) { + return [text]; + } + + const chunks = text.split('\n'); + const messages: string[] = []; + let current = ''; + + chunks.forEach(chunk => { + if (chunk.length > 2000) { + throw new RangeError('SPLIT_MAX_LEN'); + } + + if (current.length + chunk.length > 2000) { + messages.push(current); + current = ''; + } + + current += `${chunk}\n`; + }); + + return messages.concat(current); +} diff --git a/src/listeners/count/messageCreate.ts b/src/listeners/count/messageCreate.ts index 0c7f848..2c78f44 100644 --- a/src/listeners/count/messageCreate.ts +++ b/src/listeners/count/messageCreate.ts @@ -1,5 +1,5 @@ import { Events, Listener } from '@sapphire/framework'; -import type { Message } from 'discord.js'; +import { Message, MessageType } from 'discord.js'; import { resetCount } from '@lib/utils'; import { ApplyOptions } from '@sapphire/decorators'; @@ -12,7 +12,7 @@ export class UserEvent extends Listener { public async run(msg: Message) { const { count: countData } = this.container.client.countChannels.get(msg.channelId) ?? { count: undefined }; - if (!countData || !msg.inGuild() || msg.author.bot || msg.type !== 'DEFAULT') { + if (!countData || !msg.inGuild() || msg.author.bot || msg.type !== MessageType.Default) { return; } diff --git a/src/listeners/removeComponents.ts b/src/listeners/removeComponents.ts index 4b85052..0da0cf2 100644 --- a/src/listeners/removeComponents.ts +++ b/src/listeners/removeComponents.ts @@ -14,8 +14,9 @@ export class UserEvent extends Listener { return interaction.reply({ content: 'How do you know if thats done or not mate?', ephemeral: true }); } - interaction.update({ components: [] }); + return interaction.update({ components: [] }); } + return; } } diff --git a/src/listeners/rolePlay.ts b/src/listeners/rolePlay.ts index a2b9891..a78cb89 100644 --- a/src/listeners/rolePlay.ts +++ b/src/listeners/rolePlay.ts @@ -1,5 +1,5 @@ import { Events, Listener } from '@sapphire/framework'; -import type { Message } from 'discord.js'; +import { Message, MessageType } from 'discord.js'; import { ApplyOptions } from '@sapphire/decorators'; import type { WithId } from 'mongodb'; import type { RPCharter } from '../lib/types/database'; @@ -12,7 +12,7 @@ export class UserEvent extends Listener { public async run(msg: Message) { const hook = this.container.rpChannels.get(msg.channelId); - if (!hook || !msg.inGuild() || msg.author.bot || !['DEFAULT', 'REPLY'].includes(msg.type)) return; + if (!hook || !msg.inGuild() || msg.author.bot || ![MessageType.Default, MessageType.Reply].includes(msg.type)) return; const characters = await this.container.db.rpCharacters.find({ user: msg.author.id, guild: msg.guildId }).toArray(); @@ -56,7 +56,7 @@ export class UserEvent extends Listener { await hook.send({ username: character.name, - content: content === '' ? null : content, + content: content === '' ? undefined : content, avatarURL: character.pfp, files: msg.attachments.toJSON(), allowedMentions: { diff --git a/src/listeners/snooze.ts b/src/listeners/snooze.ts index c40eca6..34255f0 100644 --- a/src/listeners/snooze.ts +++ b/src/listeners/snooze.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Listener } from '@sapphire/framework'; -import { Interaction, MessageActionRow, MessageSelectMenu, TextChannel } from 'discord.js'; +import { Interaction, ActionRowBuilder, StringSelectMenuBuilder, ComponentType, ButtonBuilder } from 'discord.js'; import parse from 'parse-duration'; import { dateToTimestamp, generateSnoozeButtons } from '@lib/utils'; @@ -19,25 +19,19 @@ export class UserEvent extends Listener { return; } - let rawMsg = await interaction.editReply({ components: [this.choices] }); - - if ('channel_id' in rawMsg) { - const chan = this.container.client.channels.cache.get(rawMsg.channel_id) as TextChannel; - rawMsg = await chan.messages.fetch(rawMsg.id); - } - - const msg = rawMsg; + const msg = await interaction.editReply({ components: [this.choices] }); await interaction.editReply({ components: [this.choices] }); const collector = msg.createMessageComponentCollector({ - componentType: 'SELECT_MENU', + componentType: ComponentType.StringSelect, time: 60e3 }); collector.on('collect', async (selectInt) => { if (selectInt.user.id !== interaction.user.id) { - return selectInt.reply({ content: 'This selecty boi isn\'t for you!', ephemeral: true }); + await selectInt.reply({ content: 'This selecty boi isn\'t for you!', ephemeral: true }); + return; } const expires = new Date(interaction.createdTimestamp + parseInt(selectInt.values[0])); @@ -61,11 +55,11 @@ export class UserEvent extends Listener { }); await selectInt.update(`${msg.content}\nI've snoozed this reminder and will remind you again at ${dateToTimestamp(expires)}.`); - collector.stop(`snoozed`); + return collector.stop(`snoozed`); }); collector.on('end', (_, reason) => { - let components: MessageActionRow[] = []; + let components: ActionRowBuilder[] = []; if (reason !== 'snoozed') { components = generateSnoozeButtons(interaction.user.id); @@ -75,71 +69,73 @@ export class UserEvent extends Listener { }); } - private choices = new MessageActionRow({ components: [ - new MessageSelectMenu() - .setCustomId('snooze') - .addOptions([ - { - label: '5 minutes', - value: `${parse('5m')}` - }, - { - label: '10 minutes', - value: `${parse('10m')}` - }, - { - label: '15 minutes', - value: `${parse('15m')}` - }, - { - label: '30 minutes', - value: `${parse('30m')}` - }, - { - label: '1 hour', - value: `${parse('1h')}` - }, - { - label: '2 hours', - value: `${parse('2h')}` - }, - { - label: '3 hours', - value: `${parse('3h')}` - }, - { - label: '4 hours', - value: `${parse('4h')}` - }, - { - label: '5 hours', - value: `${parse('5h')}` - }, - { - label: '6 hours', - value: `${parse('6h')}` - }, - { - label: '7 hours', - value: `${parse('7h')}` - }, - { - label: '8 hours', - value: `${parse('8h')}` - }, - { - label: '1 day', - value: `${parse('1d')}` - }, - { - label: '3 days', - value: `${parse('3d')}` - }, - { - label: '1 week', - value: `${parse('1w')}` - } - ]) - ] }); + private choices = new ActionRowBuilder() + .addComponents([ + new StringSelectMenuBuilder() + .setCustomId('snooze') + .addOptions([ + { + label: '5 minutes', + value: `${parse('5m')}` + }, + { + label: '10 minutes', + value: `${parse('10m')}` + }, + { + label: '15 minutes', + value: `${parse('15m')}` + }, + { + label: '30 minutes', + value: `${parse('30m')}` + }, + { + label: '1 hour', + value: `${parse('1h')}` + }, + { + label: '2 hours', + value: `${parse('2h')}` + }, + { + label: '3 hours', + value: `${parse('3h')}` + }, + { + label: '4 hours', + value: `${parse('4h')}` + }, + { + label: '5 hours', + value: `${parse('5h')}` + }, + { + label: '6 hours', + value: `${parse('6h')}` + }, + { + label: '7 hours', + value: `${parse('7h')}` + }, + { + label: '8 hours', + value: `${parse('8h')}` + }, + { + label: '1 day', + value: `${parse('1d')}` + }, + { + label: '3 days', + value: `${parse('3d')}` + }, + { + label: '1 week', + value: `${parse('1w')}` + } + ]) + ]); + } diff --git a/src/listeners/suggestion.ts b/src/listeners/suggestion.ts index f0c4285..d97ab56 100644 --- a/src/listeners/suggestion.ts +++ b/src/listeners/suggestion.ts @@ -1,6 +1,6 @@ import { ApplyOptions } from '@sapphire/decorators'; import { Listener } from '@sapphire/framework'; -import { Interaction, MessageEmbed } from 'discord.js'; +import { Interaction, EmbedBuilder } from 'discord.js'; import { envParseArray } from '@lib/env-parser'; import { stripIndents } from 'common-tags'; @@ -23,10 +23,10 @@ export class UserEvent extends Listener { return interaction.followUp({ content: 'It looks like I dont have everything I need to connect to GitHub', ephemeral: true }); } - const embed = new MessageEmbed(interaction.message.embeds[0]); - const title = (embed.description?.length ?? 0) > 100 ? `${embed.description?.slice(0, 99)}...` : embed.description ?? ''; - const body = stripIndents`${embed.description?.length ?? 0 > 100 ? embed.description : ''} - Requested by ${embed.author?.name}`; + const embed = new EmbedBuilder(interaction.message.embeds[0].data); + const title = (embed.data.description?.length ?? 0) > 100 ? `${embed.data.description?.slice(0, 99)}...` : embed.data.description ?? ''; + const body = stripIndents`${embed.data.description?.length ?? 0 > 100 ? embed.data.description : ''} + Requested by ${embed.data.author?.name}`; const issue = await this.container.gitHub.issues.create({ owner: process.env.REPO_OWNER, @@ -35,7 +35,7 @@ export class UserEvent extends Listener { body }); - embed.addField('An issue has been created', `[View on GitHub](${issue.data.html_url})`); + embed.addFields([{ name: 'An issue has been created', value: `[View on GitHub](${issue.data.html_url})` }]); return interaction.editReply({ embeds: [embed], components: [] }); } diff --git a/yarn.lock b/yarn.lock index 9f7b098..efd4241 100644 --- a/yarn.lock +++ b/yarn.lock @@ -82,15 +82,15 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.231.0" +"@aws-sdk/client-cognito-identity@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.245.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.231.0 - "@aws-sdk/config-resolver": 3.231.0 - "@aws-sdk/credential-provider-node": 3.231.0 + "@aws-sdk/client-sts": 3.245.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.245.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -99,7 +99,7 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 @@ -107,32 +107,32 @@ __metadata: "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.231.0 - "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.245.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 "@aws-sdk/util-user-agent-node": 3.226.0 "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 309c433d0005c072db5298d75df4f37826350ffc2bdab940c1147f719f5285207e9761ee8f87884b23ea2cf5f8bf7157fcf992008f0a838491954cbe6925a47a + checksum: 4142ba1b7a3c11f785d5da527a743d6a9352f6f97ae983e6f3ee0abf5a1cd755c2196981cbc2f6052686bf820a68f062117c682a5126e55acaacebc5cab862e6 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.231.0" +"@aws-sdk/client-sso-oidc@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.245.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.231.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -141,39 +141,39 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/middleware-user-agent": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.231.0 - "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.245.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 "@aws-sdk/util-user-agent-node": 3.226.0 "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 4ec5e5f0f25969df5d5341cd1f291a763ed2edaeb317228a7873f18f16471f2cbd83bd575f766a4f0f22c3ebfcf69ecd75891fd0518a205c69eb20ded8734c98 + checksum: 6f72ee0df276f8c4019be4d9b3fa1b2cbab7744b13f434f07c9314303290334296be1148276266715ef3cfb37e83ced448fd9d6bb34d09bd21ed41d0a83598dc languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/client-sso@npm:3.231.0" +"@aws-sdk/client-sso@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/client-sso@npm:3.245.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.231.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -182,40 +182,40 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/middleware-user-agent": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.231.0 - "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.245.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 "@aws-sdk/util-user-agent-node": 3.226.0 "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 3551984b8c14f611daa93c7082f2a361caa0c8e985fbfc6d66674ec7f3624364aa7d3c8011aa334729022e3866e5323c6ac18a4ba3e840023128000994d99165 + checksum: e7dd235ee13465438a181c5de2f5bfc1acdaa12a07db74a3255dbb580004c33544d6773252b164dda2e2357ea83f3985afd060dfe42d6064732d36750764eda1 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/client-sts@npm:3.231.0" +"@aws-sdk/client-sts@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/client-sts@npm:3.245.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.231.0 - "@aws-sdk/credential-provider-node": 3.231.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.245.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -224,7 +224,7 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-sdk-sts": 3.226.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 @@ -233,15 +233,15 @@ __metadata: "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.231.0 - "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.245.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 "@aws-sdk/util-user-agent-node": 3.226.0 @@ -249,32 +249,32 @@ __metadata: "@aws-sdk/util-utf8-node": 3.208.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 377eabf0ff0523b7847fe1677084293c322d5525443a859f522b83363eb647a87721245f7b48f7232e2f2f3b49dfdaefdf274e9578915c24617c5d7540624aca + checksum: 3b052be86063978b47b2f4459062ea23a6d94c81951a97428a5445ff062d642a3460114cbf1b20d3925db0667d893db40cbe30b1b8b58a4d749c75d117aab460 languageName: node linkType: hard -"@aws-sdk/config-resolver@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/config-resolver@npm:3.231.0" +"@aws-sdk/config-resolver@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/config-resolver@npm:3.234.0" dependencies: "@aws-sdk/signature-v4": 3.226.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/util-config-provider": 3.208.0 "@aws-sdk/util-middleware": 3.226.0 tslib: ^2.3.1 - checksum: 67ec8d1f547cdde45f9c0daec21864225cfc04fba732e5e157b59d23f987d588fdc1738e1ce43012f885bdb6e65da8105511f5816e5844a5b839192b5feecc64 + checksum: a72bdb1748d7f04c95436ab1e8650b51c1bfd2745114e52f7d05339c61bb6a859306be0c6cc0034ecf4f3b29a2d68b48fe362762a58c90ec55a3444b93b5700d languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.231.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.245.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.231.0 + "@aws-sdk/client-cognito-identity": 3.245.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: f0c2059379f703e72538b00e52d2f5ce01c69a8adf3af370af2e72cc971ffe44963e6611917032326c0207b11fe34133780540e4ab0412e36e6c34b589f3dec3 + checksum: af9ce2a19426056139c380fa2a016d5abb42117e262dc5c3f4741eb1f2d15b394e9b178d6efb2e32f59cd723c6090da769975505368fbbe79b8eb9258c6961a8 languageName: node linkType: hard @@ -302,37 +302,38 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.231.0" +"@aws-sdk/credential-provider-ini@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.245.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.231.0 + "@aws-sdk/credential-provider-process": 3.226.0 + "@aws-sdk/credential-provider-sso": 3.245.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: f6b11d4876602e65464bc25804781b78a6e0c66b39c293178d7e97f2f11c151bd6e23e1e31158c0442dfbc3076f417aeecf44c315d4e509b48e7cfc3be2e7472 + checksum: 35fcdb231efb573c60c25e67a27f64ca892ebab7931e715406826a4d3f87caecd525945f45ecaf7fb7e09a87a744678aba60249c74681160c9fb9d66c0490bf5 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.231.0" +"@aws-sdk/credential-provider-node@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.245.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.231.0 + "@aws-sdk/credential-provider-ini": 3.245.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.231.0 + "@aws-sdk/credential-provider-sso": 3.245.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: e28266dce53130c6e28eb7e82028e29cb2db2f06e1f40c98ae7875bcf2e17553976899f02b93576070c7fd77c131046ec752f543f9aa7e32078e1f3a44c3acf5 + checksum: a9bd115016fc7ce7f2cb50c5cafcd759f861362bb9dd9629e4ea0056519d5b26ad256f6d1d84ef3327c75bef442de8c0e4b54b215870512b43c92866ed0f1403 languageName: node linkType: hard @@ -348,17 +349,17 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.231.0" +"@aws-sdk/credential-provider-sso@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.245.0" dependencies: - "@aws-sdk/client-sso": 3.231.0 + "@aws-sdk/client-sso": 3.245.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.231.0 + "@aws-sdk/token-providers": 3.245.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 0aa69ec7ea5b0115c53972c6ae0419687e0bebc7500fbefa77c1108ecb81e735227982b586180b2fe111427cba17fad75f6db61f69a8b5cf5ad079f7ee09107c + checksum: 95358504631d5451520d5090e7fb337b40dfc12ab30dd84d979165d881f2762798828003b13adcb35921223bf3a498b0e70b7a94ebc14e8b16a4f0adacded8f1 languageName: node linkType: hard @@ -374,25 +375,25 @@ __metadata: linkType: hard "@aws-sdk/credential-providers@npm:^3.186.0": - version: 3.231.0 - resolution: "@aws-sdk/credential-providers@npm:3.231.0" + version: 3.245.0 + resolution: "@aws-sdk/credential-providers@npm:3.245.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.231.0 - "@aws-sdk/client-sso": 3.231.0 - "@aws-sdk/client-sts": 3.231.0 - "@aws-sdk/credential-provider-cognito-identity": 3.231.0 + "@aws-sdk/client-cognito-identity": 3.245.0 + "@aws-sdk/client-sso": 3.245.0 + "@aws-sdk/client-sts": 3.245.0 + "@aws-sdk/credential-provider-cognito-identity": 3.245.0 "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.231.0 - "@aws-sdk/credential-provider-node": 3.231.0 + "@aws-sdk/credential-provider-ini": 3.245.0 + "@aws-sdk/credential-provider-node": 3.245.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.231.0 + "@aws-sdk/credential-provider-sso": 3.245.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: edbf6a2821c5bf38d40a83f8d7c8ab967fff85d2c10af79f6f5df40cd52ef185f988c6499552a0294ca98cb7db34cb77e046a78e779e5ff5d362d104c29acc83 + checksum: a6923907ce97232cf87565e5fc0dac872061d2f065f530f7c91d1693472dd26667a91a662283994b3886a84b557f45e8627d0c847a88ffa0fdf2458a0180bd43 languageName: node linkType: hard @@ -498,17 +499,18 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/middleware-retry@npm:3.229.0" +"@aws-sdk/middleware-retry@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/middleware-retry@npm:3.235.0" dependencies: "@aws-sdk/protocol-http": 3.226.0 "@aws-sdk/service-error-classification": 3.229.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 tslib: ^2.3.1 uuid: ^8.3.2 - checksum: a146879b0d4d940aed398c4bfd288b28e678bff7cbe04983123caf3bcb73fecc801ec19d13ca82ac1b2977515dc71ebe28efc400c07839004213017f93369b04 + checksum: 397226fd10d8b0587a35ccab92160223f10740beb01ccac75dda0e30336b83c091c9aa51b9132a56ff6cccd6353b9e3c6ecf21ae18f20f8127e7e9e209e59a2a languageName: node linkType: hard @@ -667,27 +669,27 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/smithy-client@npm:3.226.0" +"@aws-sdk/smithy-client@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/smithy-client@npm:3.234.0" dependencies: "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 7c77d26367b94286fd0eceb5036f3a931314ab24c01ae64f645ea1390b3dc94d443a751be2be504d36aeeef86c5412facdc7df9624a792d9e97e5d53531f850c + checksum: 7b8299f81fde410b8f597662d4174a29740cb2791a2377e5009a73c0e7531fb440712ab25c837a0351dbceac4763cc8fadc6d4362727cf3ae749b25515da4ea1 languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/token-providers@npm:3.231.0" +"@aws-sdk/token-providers@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/token-providers@npm:3.245.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.231.0 + "@aws-sdk/client-sso-oidc": 3.245.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 3fe2b2776232f2aad499d74ec540431db013520a1c4e3cee6ed4ab4d5cb2a402b1b50dd60f64d1c95e9ebb2bcc44c2244462d62453b9f6226b73082930dcc119 + checksum: 900a73b999c50eb35b3eda594210448329f5068b57a2d8d57ee8e4f3d960116ece36952ca1fbe43b5e8e9119927de916033f73ff969bae3a8394d4ef98f1d0c7 languageName: node linkType: hard @@ -758,39 +760,39 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.226.0" +"@aws-sdk/util-defaults-mode-browser@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.234.0" dependencies: "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: 80a1383ef46c9289b7ef88ed1223e07f06bd3989517157199e325492d3da465d42bd9a975432b6d7c0e7e11f21aea02e5d977ddcc28c9f8b9f13e172fce0e657 + checksum: 79a381a632f867477dc7f948243c8ba82932d3f10325c76a5f2cf96412560648d149ba43ee31794bc45d81158a8c361d890b291880fc0c05f9bafc99cded5ef4 languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-node@npm:3.231.0": - version: 3.231.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.231.0" +"@aws-sdk/util-defaults-mode-node@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.234.0" dependencies: - "@aws-sdk/config-resolver": 3.231.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/credential-provider-imds": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 6dca6704798145569f25002605c4918890ebd2b7bf56d20909192993eea5bcf8fdceff7f51484c9ab7e009a77c3d371e0935666d204c819e703128e857859e73 + checksum: b70becd9e561c1622c75a452ed8c7a8b14b84eba35988159f29476db8c2b47ec72f0b7c19d1a252c725756af1fff1df4201e5e92b6136d1df9170e806dca5219 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-endpoints@npm:3.226.0" +"@aws-sdk/util-endpoints@npm:3.245.0": + version: 3.245.0 + resolution: "@aws-sdk/util-endpoints@npm:3.245.0" dependencies: "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: a05d38c4901801ff8c33d3469b8248ae07a2bb761e8b87f9eb62d7b977bd447fc8a1601c18692a035662818b223be97957d63d389b5393fdd65227cc25aa7903 + checksum: 22783fb178e8901385b20b0d19b944ad41297cc19f0561ac1722e86757ca6910fd3766626a0493372f718a0726bef920a5b39cc41fdceb1012f14e833541041b languageName: node linkType: hard @@ -886,19 +888,6 @@ __metadata: languageName: node linkType: hard -"@discordjs/builders@npm:^0.16.0": - version: 0.16.0 - resolution: "@discordjs/builders@npm:0.16.0" - dependencies: - "@sapphire/shapeshift": ^3.5.1 - discord-api-types: ^0.36.2 - fast-deep-equal: ^3.1.3 - ts-mixer: ^6.0.1 - tslib: ^2.4.0 - checksum: bf7ab00924bf84678c139b32c3b6bda16d62f190a1674ebaa4ec8767c7105890b1375716296037306661e138fe1c09c535b3141a047b7fceafaa92937a76cb8b - languageName: node - linkType: hard - "@discordjs/builders@npm:^1.4.0": version: 1.4.0 resolution: "@discordjs/builders@npm:1.4.0" @@ -913,20 +902,13 @@ __metadata: languageName: node linkType: hard -"@discordjs/collection@npm:1.3.0, @discordjs/collection@npm:^1.2.0": +"@discordjs/collection@npm:1.3.0, @discordjs/collection@npm:^1.2.0, @discordjs/collection@npm:^1.3.0": version: 1.3.0 resolution: "@discordjs/collection@npm:1.3.0" checksum: 5ca6e9757f4c1e19564a0ac96ebfcabd1a83bf3ac0270034a0ea887f418f196caea4b54ebac5aaf0fc28d98f58f12794a6242d07acf08c946f23aa2e0047e87d languageName: node linkType: hard -"@discordjs/collection@npm:^0.7.0": - version: 0.7.0 - resolution: "@discordjs/collection@npm:0.7.0" - checksum: 141aa35a5433bacba3617b533557b4948388c7b59cdaecee51ccd721c1b9242e50d95bdef53ee2491535a017095f5072ace3c3e9e594193f67a1c5a8a4b7db93 - languageName: node - linkType: hard - "@discordjs/node-pre-gyp@npm:^0.4.5": version: 0.4.5 resolution: "@discordjs/node-pre-gyp@npm:0.4.5" @@ -946,6 +928,22 @@ __metadata: languageName: node linkType: hard +"@discordjs/rest@npm:^1.4.0": + version: 1.5.0 + resolution: "@discordjs/rest@npm:1.5.0" + dependencies: + "@discordjs/collection": ^1.3.0 + "@discordjs/util": ^0.1.0 + "@sapphire/async-queue": ^1.5.0 + "@sapphire/snowflake": ^3.2.2 + discord-api-types: ^0.37.23 + file-type: ^18.0.0 + tslib: ^2.4.1 + undici: ^5.13.0 + checksum: 98b3a97fa3dbecd406cefca5e5245d51a1ab9eb748001f9d128065cc6dd6f61cc23efbdfa11e84e5147131fe40239d23c37b503d8c4c1a40b10d67b4c5b255ef + languageName: node + linkType: hard + "@discordjs/util@npm:^0.1.0": version: 0.1.0 resolution: "@discordjs/util@npm:0.1.0" @@ -1002,6 +1000,13 @@ __metadata: languageName: node linkType: hard +"@kurkle/color@npm:^0.3.0": + version: 0.3.2 + resolution: "@kurkle/color@npm:0.3.2" + checksum: 79e97b31f8f6efb28c69d373f94b0c7480226fe8ec95221f518ac998e156444a496727ce47de6d728eb5c3369288e794cba82cae34253deb0d472d3bfe080e49 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^1.0.0": version: 1.0.10 resolution: "@mapbox/node-pre-gyp@npm:1.0.10" @@ -1191,11 +1196,11 @@ __metadata: linkType: hard "@octokit/types@npm:^8.0.0": - version: 8.0.0 - resolution: "@octokit/types@npm:8.0.0" + version: 8.1.1 + resolution: "@octokit/types@npm:8.1.1" dependencies: "@octokit/openapi-types": ^14.0.0 - checksum: 1a0197b2c4c522ac90f145e02b3f8cb048a47f71c2c6bdbf021a03db7dd30ca92a899c0186acb401337f218efe44e60d33cc1cc68715b622bb75bc1a4e79515d + checksum: 4a51ce3d7f0448110dc035fc2cbfa4a0e6b9e5b0c945ad80904a7300830335979a1c75affe3f801baf25350abe003b36195e634f4c2b4ce1b564d812e9f0d649 languageName: node linkType: hard @@ -1215,25 +1220,16 @@ __metadata: languageName: node linkType: hard -"@sapphire/decorators@npm:5.0.0": - version: 5.0.0 - resolution: "@sapphire/decorators@npm:5.0.0" - dependencies: - tslib: ^2.4.0 - checksum: 18f33669e287df45e7805862c16a6e9c1813c7836985270c0c5867db6e9f724879a228fd19d82fd567f4108d671b9fa862d02ef0010e7f21bfcbc87af05d9ff4 - languageName: node - linkType: hard - -"@sapphire/discord-utilities@npm:2.12.0, @sapphire/discord-utilities@npm:^2.12.0": - version: 2.12.0 - resolution: "@sapphire/discord-utilities@npm:2.12.0" +"@sapphire/decorators@npm:6.0.0": + version: 6.0.0 + resolution: "@sapphire/decorators@npm:6.0.0" dependencies: - discord-api-types: ^0.36.3 - checksum: a699d8cca46033a0eafa42dc44651f1e72ccb2a5eb8e94710dbe4b7f154aed0d7729c7eba515bcdfe1592a0b0c8181f2712a43939188a44603b940e877fa81a7 + tslib: ^2.4.1 + checksum: 390ada53c66965596c70c90e3e7cb630e4d66dc8dbf8becd2a2517ca87bdb62907542f9943edee942e619ea9447591205b3ac45da0b98fe24ea3edcce1842e09 languageName: node linkType: hard -"@sapphire/discord-utilities@npm:^3.0.0": +"@sapphire/discord-utilities@npm:3.0.0, @sapphire/discord-utilities@npm:^3.0.0": version: 3.0.0 resolution: "@sapphire/discord-utilities@npm:3.0.0" dependencies: @@ -1242,18 +1238,6 @@ __metadata: languageName: node linkType: hard -"@sapphire/discord.js-utilities@npm:5.1.2": - version: 5.1.2 - resolution: "@sapphire/discord.js-utilities@npm:5.1.2" - dependencies: - "@sapphire/discord-utilities": ^2.12.0 - "@sapphire/duration": ^1.0.0 - "@sapphire/utilities": ^3.11.0 - tslib: ^2.4.1 - checksum: 60c02e2e62699df2c770ac6dae57222dc413b51784b463fffe4aa571493b63a1045c57d5d068cc3761f5cc20ff0b29d3611c34eba876a2092c926ba32973bea0 - languageName: node - linkType: hard - "@sapphire/discord.js-utilities@npm:6.0.1": version: 6.0.1 resolution: "@sapphire/discord.js-utilities@npm:6.0.1" @@ -1319,13 +1303,13 @@ __metadata: languageName: node linkType: hard -"@sapphire/plugin-editable-commands@npm:2.0.1": - version: 2.0.1 - resolution: "@sapphire/plugin-editable-commands@npm:2.0.1" +"@sapphire/plugin-editable-commands@npm:3.0.0": + version: 3.0.0 + resolution: "@sapphire/plugin-editable-commands@npm:3.0.0" dependencies: - "@skyra/editable-commands": ^2.1.4 - tslib: ^2.4.0 - checksum: 3878411476ac56c5ceb40072ee15916a103eac122186f386019a6d57a05a68a7f85229dab4dd17c74617678566fb118bc692060df7ea8a02d069ec521bd7d4b4 + "@skyra/editable-commands": ^3.0.0 + tslib: ^2.4.1 + checksum: 89673f5dfab85b84dcfeeaafcea6b082f853e7de0d2299b14bd0b7dc4b122b4c231055b869d4b20b1a984591ada90cf55ecf6b0d9b200395535cba709f133612 languageName: node linkType: hard @@ -1340,13 +1324,13 @@ __metadata: languageName: node linkType: hard -"@sapphire/plugin-subcommands@npm:3.2.4": - version: 3.2.4 - resolution: "@sapphire/plugin-subcommands@npm:3.2.4" +"@sapphire/plugin-subcommands@npm:4.0.0": + version: 4.0.0 + resolution: "@sapphire/plugin-subcommands@npm:4.0.0" dependencies: "@sapphire/utilities": ^3.11.0 tslib: ^2.4.1 - checksum: 7ba661a71f65f3eb490412b01243ddd46b693ae08b249a447504ce5108bd264b01d20d3d0384f13d9b2fc767b23984534f08440af2cd0e40e2858ac9ff6cc158 + checksum: 711bd5dc3981843bfd89e3a50a1cc660e00e12d590f531eb168481960fbadf66d371fad6010b389352fa5177253d665527bdea895f4203e4303ba8eb6bbeeb26 languageName: node linkType: hard @@ -1366,7 +1350,7 @@ __metadata: languageName: node linkType: hard -"@sapphire/shapeshift@npm:^3.5.1, @sapphire/shapeshift@npm:^3.7.1": +"@sapphire/shapeshift@npm:^3.7.1": version: 3.8.1 resolution: "@sapphire/shapeshift@npm:3.8.1" dependencies: @@ -1376,6 +1360,13 @@ __metadata: languageName: node linkType: hard +"@sapphire/snowflake@npm:^3.2.2": + version: 3.4.0 + resolution: "@sapphire/snowflake@npm:3.4.0" + checksum: 556b7001f33d6edbbbcbca46f6abfa56c732a29e78b693161e358688e688edcb012d2c1bc944e7ffb41bd6c9950d261bc73f95656dc01643361a218b4f5ab985 + languageName: node + linkType: hard + "@sapphire/stopwatch@npm:1.5.0, @sapphire/stopwatch@npm:^1.5.0": version: 1.5.0 resolution: "@sapphire/stopwatch@npm:1.5.0" @@ -1439,10 +1430,17 @@ __metadata: languageName: node linkType: hard -"@skyra/editable-commands@npm:^2.1.4": - version: 2.1.4 - resolution: "@skyra/editable-commands@npm:2.1.4" - checksum: 865c11201c1778543f64dc81e114efae3096bf50653e6301ee576d5d9f2d6623fb3387e39fe06e74ec1b655dd033184d850e5735ea74d54bce169743cc6ab7b3 +"@skyra/editable-commands@npm:^3.0.0": + version: 3.0.0 + resolution: "@skyra/editable-commands@npm:3.0.0" + checksum: f3d21d36b59551d29438ec4ae206b15202973188995e427745829b888a9490de5c5824fc3ad532694778737b516c16922094a73e9989f0d2fa8a5f0949ebf1ae + languageName: node + linkType: hard + +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1 languageName: node linkType: hard @@ -1474,20 +1472,10 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.6.2": - version: 2.6.2 - resolution: "@types/node-fetch@npm:2.6.2" - dependencies: - "@types/node": "*" - form-data: ^3.0.0 - checksum: 6f73b1470000d303d25a6fb92875ea837a216656cb7474f66cdd67bb014aa81a5a11e7ac9c21fe19bee9ecb2ef87c1962bceeaec31386119d1ac86e4c30ad7a6 - languageName: node - linkType: hard - "@types/node@npm:*": - version: 18.11.16 - resolution: "@types/node@npm:18.11.16" - checksum: 23603ecc1cc5afdd2311671565e1bd1a8905e18ed7f05857089eebe524824a3347dd0c3de9c1c291839f7cf21bcf5633903cdf7905efa0fdc7464cc7606fc9fa + version: 18.11.18 + resolution: "@types/node@npm:18.11.18" + checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d languageName: node linkType: hard @@ -1522,7 +1510,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:8.5.4": +"@types/ws@npm:8.5.4, @types/ws@npm:^8.5.3": version: 8.5.4 resolution: "@types/ws@npm:8.5.4" dependencies: @@ -1531,22 +1519,13 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.3": - version: 8.5.3 - resolution: "@types/ws@npm:8.5.3" - dependencies: - "@types/node": "*" - checksum: 0ce46f850d41383fcdc2149bcacc86d7232fa7a233f903d2246dff86e31701a02f8566f40af5f8b56d1834779255c04ec6ec78660fe0f9b2a69cf3d71937e4ae - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.48.0" +"@typescript-eslint/eslint-plugin@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.48.1" dependencies: - "@typescript-eslint/scope-manager": 5.48.0 - "@typescript-eslint/type-utils": 5.48.0 - "@typescript-eslint/utils": 5.48.0 + "@typescript-eslint/scope-manager": 5.48.1 + "@typescript-eslint/type-utils": 5.48.1 + "@typescript-eslint/utils": 5.48.1 debug: ^4.3.4 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 @@ -1559,64 +1538,54 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: cb9cd62fd56670414795e30d30c9fa11ec7ad3a8b0abda48dd17625053a1c26ba1767184b096149bdd0ccb457bec6392306f22211b75f802f4b27366398d16eb + checksum: d8d73d123d16fc9b50b500ef21816dcabdffe0d2dcfdb15089dc5a1015d57cbad709de565d1c830f5058c0d7b410069e2554c0b53d1485fe7b237ea8089e58be languageName: node linkType: hard "@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.46.1 - resolution: "@typescript-eslint/experimental-utils@npm:5.46.1" + version: 5.48.1 + resolution: "@typescript-eslint/experimental-utils@npm:5.48.1" dependencies: - "@typescript-eslint/utils": 5.46.1 + "@typescript-eslint/utils": 5.48.1 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 3c050d8a20afae536b884e371d7019b5a2f15d21eb42ee63913be4afd32a46d6df8196d13a8e6016f4648b94609ff7deced60ba5e17cee209e291486403195c5 + checksum: 3e200b67798c7f253f492a7af3d917abb7e317846c467189601e54ecb51e3c9d50236003728c975d7907b23adaae89293e7d37e1964b39ffde42dad58702bfff languageName: node linkType: hard -"@typescript-eslint/parser@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/parser@npm:5.48.0" +"@typescript-eslint/parser@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/parser@npm:5.48.1" dependencies: - "@typescript-eslint/scope-manager": 5.48.0 - "@typescript-eslint/types": 5.48.0 - "@typescript-eslint/typescript-estree": 5.48.0 + "@typescript-eslint/scope-manager": 5.48.1 + "@typescript-eslint/types": 5.48.1 + "@typescript-eslint/typescript-estree": 5.48.1 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 41d5ce5c8742d286fb083523295a4f186e57bbe4e3da63b6b2de1edbafbcbf6d5225ed3405da2c56e2b0fe1d52bb72babc37508d2ee9b86f6fadad3c4a7950d0 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/scope-manager@npm:5.46.1" - dependencies: - "@typescript-eslint/types": 5.46.1 - "@typescript-eslint/visitor-keys": 5.46.1 - checksum: bf934603dc9c7da71eb26f415d13018f2a96dbba193a773bc440a5c93828365f09bb3db9be55189dfbbace414c6c48d7fad246c0d9717dab4676d0d79d6d8676 + checksum: c624d24eb209b4ce7f0a6c8116712363f10a9c9a5138f240e254ff265526ee4b0fd73b7b6b4b6a0e7611bd9934c42036350dd27f96ae2fa4efdade1a7ebd0e9e languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/scope-manager@npm:5.48.0" +"@typescript-eslint/scope-manager@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/scope-manager@npm:5.48.1" dependencies: - "@typescript-eslint/types": 5.48.0 - "@typescript-eslint/visitor-keys": 5.48.0 - checksum: 96c0ce33d613490690ae6f34e4152f05dbddf3196a6dec89afba4a63cd2d828ae23a98262920b521fe461e7655d38f3a01e9e43588c12392a27bf8cb4f8ae201 + "@typescript-eslint/types": 5.48.1 + "@typescript-eslint/visitor-keys": 5.48.1 + checksum: f60a7efe917798cccf8652925de6be58b023ded6c6ee44ce74d074f0c2a1927680398a6d73bab33d500c69474ad8c54d63b90fcc6e13256712707d12a60e0a64 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/type-utils@npm:5.48.0" +"@typescript-eslint/type-utils@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/type-utils@npm:5.48.1" dependencies: - "@typescript-eslint/typescript-estree": 5.48.0 - "@typescript-eslint/utils": 5.48.0 + "@typescript-eslint/typescript-estree": 5.48.1 + "@typescript-eslint/utils": 5.48.1 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -1624,30 +1593,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 0d57e3bbcaa46e29b588b86b2271341b264f063e71ff5b6d4d35f50f2fe11bd6cdc3c4c95d78493fd17673ecdbd712992b84da1600947ed3bf6ae09de7b99464 + checksum: 2739b35caf48c9edbeab82936de58ce0759ab34955ce7eec1786690d6a63146ae0a6c5d9c76034605d9fe200c87a73ede0772c6244c5df6e66df992d9ebbab72 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/types@npm:5.46.1" - checksum: 91143d3304b8c70d69d9c8e5b7428cce3a222eacfbeb99e592d278668bcf998760731deae064a76157b9a0fc4911fe3178aa24e4ea6fe2ba68dd37113834c924 +"@typescript-eslint/types@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/types@npm:5.48.1" + checksum: 8437986e9d86d792b23327517ae2f9861ec55992d5a9cd55991e525409b6244169436cd708f3987ab7c579e45e59b6eab5a9d3583f7729219e25691164293094 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/types@npm:5.48.0" - checksum: fa27bd9ec7ec5f256b79a371bb05cfbc26902b6a395f38b0cff0e281633ebd76775ad18e41be1bb156868859287295f6833a2a671da57c6347ac7c6bc08a553b - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.46.1" +"@typescript-eslint/typescript-estree@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.48.1" dependencies: - "@typescript-eslint/types": 5.46.1 - "@typescript-eslint/visitor-keys": 5.46.1 + "@typescript-eslint/types": 5.48.1 + "@typescript-eslint/visitor-keys": 5.48.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -1656,81 +1618,35 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 21499b927b4118cd51e841b2e1b7e55621135f923f461b75dc8ca8442de38a82da5a0232dce5229e0266b6fc12d70696e0e912fcf1483d4c44f02e4cad39ed98 + checksum: 2b26e5848ef131e1bb99ed54d8c0efa8279cf8e8f7d8b72de00c2ca6cf2799d96c20f5bbbcf26e14e81b7b9d1035ba509bff30f2d852c174815879e8f14c27ed languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.48.0" - dependencies: - "@typescript-eslint/types": 5.48.0 - "@typescript-eslint/visitor-keys": 5.48.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 2444632243111e51bc83b56140514cb5978bef4d7151fede0dfcff8808afc1ad335b0c60ca86c2811bcc82273b87e59e2e0360bf1b8c014825ff818a1731d127 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/utils@npm:5.46.1" +"@typescript-eslint/utils@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/utils@npm:5.48.1" dependencies: "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.46.1 - "@typescript-eslint/types": 5.46.1 - "@typescript-eslint/typescript-estree": 5.46.1 + "@typescript-eslint/scope-manager": 5.48.1 + "@typescript-eslint/types": 5.48.1 + "@typescript-eslint/typescript-estree": 5.48.1 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: db9fd1dfb2390e66041f9529d564f38ccf74042de68e0e1e3d319ba4d02d7cd969d75dc056f938b98acab53ad7c1e36c68eabb15c0b2e2296b081652fa8d3820 + checksum: 2d112cbb6a920f147c6c3322e404ca3c56c1170e1ede3bcbf16fb779960dc24cdba688b1f2d06acd242859fc1dbc8702da5f8fa8bbf53e7081e41d80bec4c236 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/utils@npm:5.48.0" +"@typescript-eslint/visitor-keys@npm:5.48.1": + version: 5.48.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.48.1" dependencies: - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.48.0 - "@typescript-eslint/types": 5.48.0 - "@typescript-eslint/typescript-estree": 5.48.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - semver: ^7.3.7 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 53f512ae61f72c2b29f2daf8adbc1f37c400cc71156557f69f0745b62c1265d99917a168245e2ee3d88ae458144818d1bf41ced4a764d7d9534b466b29d362fd - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.46.1" - dependencies: - "@typescript-eslint/types": 5.46.1 - eslint-visitor-keys: ^3.3.0 - checksum: 952cf20e29a040e0820e52d6815097abf042ea8e1fd5d013c0a319284ea0e2e29e0ca9ef244717450a6eb9d32ebf7fa9ed91185675a27adc35c9ad070d561b7c - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.48.0": - version: 5.48.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.48.0" - dependencies: - "@typescript-eslint/types": 5.48.0 + "@typescript-eslint/types": 5.48.1 eslint-visitor-keys: ^3.3.0 - checksum: 8d41fb7c93b79df415b43c31da7c9007074d78ab6f16c2d318c23e7974b578ce510f466a9584bd67c526367666974091cb5cfbf6670d29e36fb4ab2e57137515 + checksum: 2bda10cf4e6bc48b0d463767617e48a832d708b9434665dff6ed101f7d33e0d592f02af17a2259bde1bd17e666246448ae78d0fe006148cb93d897fff9b1d134 languageName: node linkType: hard @@ -1874,13 +1790,21 @@ __metadata: languageName: node linkType: hard -"axios@npm:0.27.2": - version: 0.27.2 - resolution: "axios@npm:0.27.2" +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + +"axios@npm:1.2.2": + version: 1.2.2 + resolution: "axios@npm:1.2.2" dependencies: - follow-redirects: ^1.14.9 + follow-redirects: ^1.15.0 form-data: ^4.0.0 - checksum: 38cb7540465fe8c4102850c4368053c21683af85c5fdf0ea619f9628abbcb59415d1e22ebc8a6390d2bbc9b58a9806c874f139767389c862ec9b772235f06854 + proxy-from-env: ^1.1.0 + checksum: 6e357491b38426c5720f7328ecbafca3c643b03952c052d787570672ce7a9365717c2d64db4ce97cfbee3f830fa405101e360e14d0857ef7f96a9f4d814c4e03 languageName: node linkType: hard @@ -1941,11 +1865,11 @@ __metadata: linkType: hard "bson@npm:^4.7.0": - version: 4.7.0 - resolution: "bson@npm:4.7.0" + version: 4.7.2 + resolution: "bson@npm:4.7.2" dependencies: buffer: ^5.6.0 - checksum: 83e7b64afdad5a505073a7e6206e7b345f59e7888fbcb1948fba72b6101a1baf58b7499314f8e24b650567665f7973eda048aabbb1ddcfbadfba7d6c6b0f5e83 + checksum: f357d12c5679c8eb029a62e410ad40fb862b7b91f0fc12a3399fb3668e14aecaa63205ffeeee48735a01d393171743607dcd527eb8c058b6f2bd294079ee4125 languageName: node linkType: hard @@ -1959,6 +1883,15 @@ __metadata: languageName: node linkType: hard +"busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e + languageName: node + linkType: hard + "cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" @@ -2002,7 +1935,7 @@ __metadata: languageName: node linkType: hard -"canvas@npm:2.11.0": +"canvas@npm:2.11.0, canvas@npm:^2.8.0": version: 2.11.0 resolution: "canvas@npm:2.11.0" dependencies: @@ -2035,10 +1968,24 @@ __metadata: languageName: node linkType: hard -"chart.js@npm:3.9.1": - version: 3.9.1 - resolution: "chart.js@npm:3.9.1" - checksum: 9ab0c0ac01215af0b3f020f2e313030fd6e347b48ed17d5484ee9c4e8ead45e78ae71bea16c397621c386b409ce0b14bf17f9f6c2492cd15b56c0f433efdfff6 +"chart.js@npm:4.1.2": + version: 4.1.2 + resolution: "chart.js@npm:4.1.2" + dependencies: + "@kurkle/color": ^0.3.0 + checksum: 938ac88baf04eb8d784a8d89064696375bc12545421186f5ec9b69ba9b6f7b7da960754f351b59b1df2b1c314dfa848aab44267076888e664d5253bc6a4059dd + languageName: node + linkType: hard + +"chartjs-node-canvas@npm:4.1.6": + version: 4.1.6 + resolution: "chartjs-node-canvas@npm:4.1.6" + dependencies: + canvas: ^2.8.0 + tslib: ^2.3.1 + peerDependencies: + chart.js: ^3.5.1 + checksum: 93ee4f7bbcfbd381a63eeed0f5f5f3fecc9a74564aade5bfecd06464239db8a1491ade9d39a921cac3d29048d81b5b8366d31d3c880db50ecb9670d8861583af languageName: node linkType: hard @@ -2258,41 +2205,30 @@ __metadata: languageName: node linkType: hard -"discord-api-types@npm:^0.33.5": - version: 0.33.5 - resolution: "discord-api-types@npm:0.33.5" - checksum: 6dcaad640c5693a69c9a4f5e444e739dde11ba835164ae6fd3dd5a1ab7b4d7f96cd022ed653eeaff2c8051ead0d998a5d502a2915cfacdde596364b82d9e3b3f - languageName: node - linkType: hard - -"discord-api-types@npm:^0.36.2, discord-api-types@npm:^0.36.3": - version: 0.36.3 - resolution: "discord-api-types@npm:0.36.3" - checksum: 3089c0fb37425dc5df03c76d82988d43fcc272699b06a02fc830d0a3bef550009aaebdf6d646529e8a7ccea76ae3f43b099d736ea5ef37a0be143142ab49871d - languageName: node - linkType: hard - -"discord-api-types@npm:^0.37.20, discord-api-types@npm:^0.37.25": +"discord-api-types@npm:^0.37.20, discord-api-types@npm:^0.37.23, discord-api-types@npm:^0.37.25": version: 0.37.28 resolution: "discord-api-types@npm:0.37.28" checksum: c033b9c82d5ecb3f273d563db578e21e982a35d106cc66e7ea42d7ef0a79817ca43badd3aade8a5ddb491bc8679ed08b1bcccc105e64ecd1ea5a53a11c2b1f8b languageName: node linkType: hard -"discord.js@npm:13.12.0": - version: 13.12.0 - resolution: "discord.js@npm:13.12.0" +"discord.js@npm:14.7.1": + version: 14.7.1 + resolution: "discord.js@npm:14.7.1" dependencies: - "@discordjs/builders": ^0.16.0 - "@discordjs/collection": ^0.7.0 - "@sapphire/async-queue": ^1.5.0 - "@types/node-fetch": ^2.6.2 + "@discordjs/builders": ^1.4.0 + "@discordjs/collection": ^1.3.0 + "@discordjs/rest": ^1.4.0 + "@discordjs/util": ^0.1.0 + "@sapphire/snowflake": ^3.2.2 "@types/ws": ^8.5.3 - discord-api-types: ^0.33.5 - form-data: ^4.0.0 - node-fetch: ^2.6.7 - ws: ^8.9.0 - checksum: e7121efac94cf8dba04999f1050cc369e03651afe7c2d440edab415cfac5b6072cca908e7c1310f0027805deaa955922c4bc0d531ff48d84202c643a0bd5141e + discord-api-types: ^0.37.20 + fast-deep-equal: ^3.1.3 + lodash.snakecase: ^4.1.1 + tslib: ^2.4.1 + undici: ^5.13.0 + ws: ^8.11.0 + checksum: fa861275b1f5360ef1b06cd514014ebd4e3f384655834dd1f73fd9f715bee643500f9d837c52f496d306825bc9c3d6c94e67463d91326e3750a28db765926ad6 languageName: node linkType: hard @@ -2376,25 +2312,31 @@ __metadata: linkType: hard "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.20.5 - resolution: "es-abstract@npm:1.20.5" + version: 1.21.1 + resolution: "es-abstract@npm:1.21.1" dependencies: + available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 function.prototype.name: ^1.1.5 get-intrinsic: ^1.1.3 get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 gopd: ^1.0.1 has: ^1.0.3 has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.3 + internal-slot: ^1.0.4 + is-array-buffer: ^3.0.1 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 + is-typed-array: ^1.1.10 is-weakref: ^1.0.2 object-inspect: ^1.12.2 object-keys: ^1.1.1 @@ -2403,8 +2345,21 @@ __metadata: safe-regex-test: ^1.0.0 string.prototype.trimend: ^1.0.6 string.prototype.trimstart: ^1.0.6 + typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - checksum: 00564779ddaf7fb977ab5aa2b8ea2cbd4fa2335ad5368f788bd0bb094c86bc1790335dd9c3e30374bb0af2fa54c724fb4e0c73659dcfe8e427355a56f2b65946 + which-typed-array: ^1.1.9 + checksum: 23ff60d42d17a55d150e7bcedbdb065d4077a8b98c436e0e2e1ef4dd532a6d78a56028673de0bd8ed464a43c46ba781c50d9af429b6a17e44dbd14c7d7fb7926 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 languageName: node linkType: hard @@ -2492,9 +2447,9 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.31.0": - version: 8.31.0 - resolution: "eslint@npm:8.31.0" +"eslint@npm:8.32.0": + version: 8.32.0 + resolution: "eslint@npm:8.32.0" dependencies: "@eslint/eslintrc": ^1.4.1 "@humanwhocodes/config-array": ^0.11.8 @@ -2537,7 +2492,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 5e5688bb864edc6b12d165849994812eefa67fb3fc44bb26f53659b63edcd8bcc68389d27cc6cc9e5b79ee22f24b6f311fa3ed047bddcafdec7d84c1b5561e4f + checksum: 23c8fb3c57291eecd9c1448faf603226a8f885022a2cd96e303459bf72e39b7f54987c6fb948f0f9eecaf7085600e6eb0663482a35ea83da12e9f9141a22b91e languageName: node linkType: hard @@ -2652,11 +2607,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.14.0 - resolution: "fastq@npm:1.14.0" + version: 1.15.0 + resolution: "fastq@npm:1.15.0" dependencies: reusify: ^1.0.4 - checksum: da2c05ec1446ef77b8ba2b76619c90d483404f5087e71e77469fbee797280a1f4ef26a63be15b2377198bc20d09fdf25c7d6e1e492a1e568a29dfdd9bcb7538c + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a languageName: node linkType: hard @@ -2669,6 +2624,17 @@ __metadata: languageName: node linkType: hard +"file-type@npm:^18.0.0": + version: 18.2.0 + resolution: "file-type@npm:18.2.0" + dependencies: + readable-web-to-node-stream: ^3.0.2 + strtok3: ^7.0.0 + token-types: ^5.0.1 + checksum: 6bbb072fb03eee8c3a8ad6bbaa97a81051abaf31f372e42a634dffaec319ae57de06ea632ee47d80c34a501bb1068892a8f8dc2cbcc5efd127784d38f0377712 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -2705,7 +2671,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.9": +"follow-redirects@npm:^1.15.0": version: 1.15.2 resolution: "follow-redirects@npm:1.15.2" peerDependenciesMeta: @@ -2715,14 +2681,12 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 languageName: node linkType: hard @@ -2873,15 +2837,15 @@ __metadata: linkType: hard "glob@npm:^8.0.1": - version: 8.0.3 - resolution: "glob@npm:8.0.3" + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 minimatch: ^5.0.1 once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard @@ -2894,6 +2858,15 @@ __metadata: languageName: node linkType: hard +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + "globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -2961,6 +2934,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + "has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -3046,7 +3026,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e @@ -3054,9 +3034,9 @@ __metadata: linkType: hard "ignore@npm:^5.2.0": - version: 5.2.1 - resolution: "ignore@npm:5.2.1" - checksum: 7251d00cba49fe88c4f3565fadeb4aa726ba38294a9a79ffed542edc47bafd989d4b2ccf65700c5b1b26a1e91dfc7218fb23017937c79216025d5caeec0ee9d5 + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef languageName: node linkType: hard @@ -3108,7 +3088,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3": +"internal-slot@npm:^1.0.4": version: 1.0.4 resolution: "internal-slot@npm:1.0.4" dependencies: @@ -3126,6 +3106,17 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "is-array-buffer@npm:3.0.1" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-typed-array: ^1.1.10 + checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -3152,7 +3143,7 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac @@ -3281,6 +3272,19 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -3374,6 +3378,13 @@ __metadata: languageName: node linkType: hard +"lodash.snakecase@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.snakecase@npm:4.1.1" + checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 + languageName: node + linkType: hard + "lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -3501,11 +3512,11 @@ __metadata: linkType: hard "minimatch@npm:^5.0.1": - version: 5.1.1 - resolution: "minimatch@npm:5.1.1" + version: 5.1.4 + resolution: "minimatch@npm:5.1.4" dependencies: brace-expansion: ^2.0.1 - checksum: 215edd0978320a3354188f84a537d45841f2449af4df4379f79b9b777e71aa4f5722cc9d1717eabd2a70d38ef76ab7b708d24d83ea6a6c909dfd8833de98b437 + checksum: 0de6d7d154e70d12487b30a7bfcb74bd15fd1f1ec007a2516699ba76e63f78ca2e5016c200b242ed75123aff8dcccf49947f71b629fb1b1f221c8e76a13ed8de languageName: node linkType: hard @@ -3699,7 +3710,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2.6.7, node-fetch@npm:^2.6.7": +"node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" dependencies: @@ -3713,9 +3724,23 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.7": + version: 2.6.8 + resolution: "node-fetch@npm:2.6.8" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 91f57be68e29f9b1382750693619e199733a6936998e6d618f1aa779853ad8fc4a2facf170db7957bf1d2510bad33449edf74b5802713d81b63de5986fa3be00 + languageName: node + linkType: hard + "node-gyp@npm:latest": - version: 9.3.0 - resolution: "node-gyp@npm:9.3.0" + version: 9.3.1 + resolution: "node-gyp@npm:9.3.1" dependencies: env-paths: ^2.2.0 glob: ^7.1.4 @@ -3729,7 +3754,7 @@ __metadata: which: ^2.0.2 bin: node-gyp: bin/node-gyp.js - checksum: 589ddd3ed967724ef425f9624bfa47cf73022640ab3eba6d556e92cdc4ddef33b63fce3a467c93b995a3f61df92eafd3c3d1e8dbe4a2c00c383334487dea99c3 + checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 languageName: node linkType: hard @@ -3820,9 +3845,9 @@ __metadata: linkType: hard "object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db languageName: node linkType: hard @@ -3988,6 +4013,13 @@ __metadata: languageName: node linkType: hard +"peek-readable@npm:^5.0.0": + version: 5.0.0 + resolution: "peek-readable@npm:5.0.0" + checksum: bef5ceb50586eb42e14efba274ac57ffe97f0ed272df9239ce029f688f495d9bf74b2886fa27847c706a9db33acda4b7d23bbd09a2d21eb4c2a54da915117414 + languageName: node + linkType: hard + "picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -4044,6 +4076,13 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 + languageName: node + linkType: hard + "ps-tree@npm:^1.2.0": version: 1.2.0 resolution: "ps-tree@npm:1.2.0" @@ -4056,9 +4095,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + version: 2.2.0 + resolution: "punycode@npm:2.2.0" + checksum: 32f291c1b1e8bef8a7d351a369579565bc17530ee5224d2f2b5c37b2647aa0ec7f1972294e2de1b632812f90c8080a7c0c5645c14758aadc0f27b35dd4906d89 languageName: node linkType: hard @@ -4091,6 +4130,15 @@ __metadata: languageName: node linkType: hard +"readable-web-to-node-stream@npm:^3.0.2": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: ^3.6.0 + checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c + languageName: node + linkType: hard + "reflect-metadata@npm:0.1.13": version: 0.1.13 resolution: "reflect-metadata@npm:0.1.13" @@ -4163,6 +4211,15 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:4.0.6": + version: 4.0.6 + resolution: "rimraf@npm:4.0.6" + bin: + rimraf: dist/cjs/src/bin.js + checksum: 5352c855295f6b45a9ee40f72bb68dd19d974ca858defd6dc2409720391b74f0fd50b7aeb3d524ba820b1b5b3e07215d2098e838c2ed9ca00fc83a433427168f + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -4430,15 +4487,15 @@ __metadata: dependencies: "@discordjs/collection": 1.3.0 "@octokit/rest": 19.0.5 - "@sapphire/decorators": 5.0.0 - "@sapphire/discord-utilities": 2.12.0 - "@sapphire/discord.js-utilities": 5.1.2 + "@sapphire/decorators": 6.0.0 + "@sapphire/discord-utilities": 3.0.0 + "@sapphire/discord.js-utilities": 6.0.1 "@sapphire/fetch": 2.4.1 "@sapphire/framework": 4.0.2 "@sapphire/pieces": 3.6.0 - "@sapphire/plugin-editable-commands": 2.0.1 + "@sapphire/plugin-editable-commands": 3.0.0 "@sapphire/plugin-logger": 3.0.1 - "@sapphire/plugin-subcommands": 3.2.4 + "@sapphire/plugin-subcommands": 4.0.0 "@sapphire/stopwatch": 1.5.0 "@sapphire/time-utilities": 1.7.8 "@sapphire/ts-config": 3.3.4 @@ -4448,17 +4505,18 @@ __metadata: "@types/node": 17.0.23 "@types/node-cron": 3.0.7 "@types/ws": 8.5.4 - "@typescript-eslint/eslint-plugin": 5.48.0 - "@typescript-eslint/parser": 5.48.0 - axios: 0.27.2 + "@typescript-eslint/eslint-plugin": 5.48.1 + "@typescript-eslint/parser": 5.48.1 + axios: 1.2.2 canvas: 2.11.0 - chart.js: 3.9.1 + chart.js: 4.1.2 + chartjs-node-canvas: 4.1.6 chartjs-plugin-datalabels: 2.2.0 colorette: 2.0.19 common-tags: 1.8.2 - discord.js: 13.12.0 + discord.js: 14.7.1 dotenv-cra: 3.0.2 - eslint: 8.31.0 + eslint: 8.32.0 eslint-plugin-deprecation: 1.3.3 module-alias: 2.2.2 mongodb: 4.13.0 @@ -4467,8 +4525,8 @@ __metadata: parse-duration: 1.0.2 pretty-ms: 7.0.1 reflect-metadata: 0.1.13 - rimraf: ^3.0.2 - tsc-watch: 5.0.3 + rimraf: 4.0.6 + tsc-watch: 6.0.0 tslib: 2.4.1 typescript: 4.9.4 languageName: unknown @@ -4483,10 +4541,17 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:^0.1.1": - version: 0.1.2 - resolution: "string-argv@npm:0.1.2" - checksum: 6877bd72af145f6e6eafa932818014a57b2f39225c924562b7fccb50f1fcee73717bbcd5e528fd4d86cec32835c14749c32a9d35f06e0bf96637d1e73158203f +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + +"string-argv@npm:^0.3.1": + version: 0.3.1 + resolution: "string-argv@npm:0.3.1" + checksum: efbd0289b599bee808ce80820dfe49c9635610715429c6b7cc50750f0437e3c2f697c81e5c390208c13b5d5d12d904a1546172a88579f6ee5cbaaaa4dc9ec5cf languageName: node linkType: hard @@ -4543,7 +4608,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": +"strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" dependencies: @@ -4573,6 +4638,16 @@ __metadata: languageName: node linkType: hard +"strtok3@npm:^7.0.0": + version: 7.0.0 + resolution: "strtok3@npm:7.0.0" + dependencies: + "@tokenizer/token": ^0.3.0 + peek-readable: ^5.0.0 + checksum: 2ebe7ad8f2aea611dec6742cf6a42e82764892a362907f7ce493faf334501bf981ce21c828dcc300457e6d460dc9c34d644ededb3b01dcb9e37559203cf1748c + languageName: node + linkType: hard + "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -4635,6 +4710,16 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^5.0.1": + version: 5.0.1 + resolution: "token-types@npm:5.0.1" + dependencies: + "@tokenizer/token": ^0.3.0 + ieee754: ^1.2.1 + checksum: 32780123bc6ce8b6a2231d860445c994a02a720abf38df5583ea957aa6626873cd1c4dd8af62314da4cf16ede00c379a765707a3b06f04b8808c38efdae1c785 + languageName: node + linkType: hard + "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -4651,27 +4736,26 @@ __metadata: languageName: node linkType: hard -"ts-mixer@npm:^6.0.1, ts-mixer@npm:^6.0.2": +"ts-mixer@npm:^6.0.2": version: 6.0.2 resolution: "ts-mixer@npm:6.0.2" checksum: cbe9935886fab201f2265ebde8e7e4147a3147ba6b6b4701ed5b92fd52729cda340f45f80f486131d203ed25c8c896a2a3623b2c33cd14314bd7ba961e97ee2e languageName: node linkType: hard -"tsc-watch@npm:5.0.3": - version: 5.0.3 - resolution: "tsc-watch@npm:5.0.3" +"tsc-watch@npm:6.0.0": + version: 6.0.0 + resolution: "tsc-watch@npm:6.0.0" dependencies: cross-spawn: ^7.0.3 node-cleanup: ^2.1.2 ps-tree: ^1.2.0 - string-argv: ^0.1.1 - strip-ansi: ^6.0.0 + string-argv: ^0.3.1 peerDependencies: typescript: "*" bin: - tsc-watch: index.js - checksum: abd63295dd5fda098a45d27912031e6c35a95f1aa20d7a86d6ad1469580400069e6476f2ffd4b88e37886d016443e60b1ae2dbcaf756e324efc67d0fa713fb15 + tsc-watch: dist/lib/tsc-watch.js + checksum: 34e74a703ecb28689d0f6ba311781ff68be47f5f095439654b095f3ea4a5921708fca61b5727e33527639a9a147b42d10bc3fe3595afee92b41b2bacfba06043 languageName: node linkType: hard @@ -4716,6 +4800,17 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + "typescript@npm:4.9.4, typescript@npm:^4.6.3": version: 4.9.4 resolution: "typescript@npm:4.9.4" @@ -4748,6 +4843,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.13.0": + version: 5.15.0 + resolution: "undici@npm:5.15.0" + dependencies: + busboy: ^1.6.0 + checksum: cdc03ceff8d2b76a5ae08dc48d0b9d44dcb970f6e89e8a3cfe7031b9351dd3c90b223c143565c153a5f1165cd573aae1b128e6b9f557b4af4eb36da337a2a345 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -4855,6 +4959,20 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + "which@npm:^1.2.9": version: 1.3.1 resolution: "which@npm:1.3.1" @@ -4900,18 +5018,18 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.9.0": - version: 8.11.0 - resolution: "ws@npm:8.11.0" +"ws@npm:^8.11.0": + version: 8.12.0 + resolution: "ws@npm:8.12.0" peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: 316b33aba32f317cd217df66dbfc5b281a2f09ff36815de222bc859e3424d83766d9eb2bd4d667de658b6ab7be151f258318fb1da812416b30be13103e5b5c67 + checksum: 818ff3f8749c172a95a114cceb8b89cedd27e43a82d65c7ad0f7882b1e96a2ee6709e3746a903c3fa88beec0c8bae9a9fcd75f20858b32a166dfb7519316a5d7 languageName: node linkType: hard From dd83861cbc999173093a09abbb311f1cd031c5c6 Mon Sep 17 00:00:00 2001 From: BenSegal855 Date: Sun, 15 Jan 2023 19:08:12 -0500 Subject: [PATCH 4/4] fix: lockfile resolution --- yarn.lock | 74 +------------------------------------------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/yarn.lock b/yarn.lock index 133295d..efd4241 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1519,15 +1519,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:5.48.1": - version: 5.48.1 - resolution: "@typescript-eslint/eslint-plugin@npm:5.48.1" - dependencies: - "@types/node": "*" - checksum: 0ce46f850d41383fcdc2149bcacc86d7232fa7a233f903d2246dff86e31701a02f8566f40af5f8b56d1834779255c04ec6ec78660fe0f9b2a69cf3d71937e4ae - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:5.48.1": version: 5.48.1 resolution: "@typescript-eslint/eslint-plugin@npm:5.48.1" @@ -1589,16 +1580,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.48.1": - version: 5.48.1 - resolution: "@typescript-eslint/scope-manager@npm:5.48.1" - dependencies: - "@typescript-eslint/types": 5.48.1 - "@typescript-eslint/visitor-keys": 5.48.1 - checksum: f60a7efe917798cccf8652925de6be58b023ded6c6ee44ce74d074f0c2a1927680398a6d73bab33d500c69474ad8c54d63b90fcc6e13256712707d12a60e0a64 - languageName: node - linkType: hard - "@typescript-eslint/type-utils@npm:5.48.1": version: 5.48.1 resolution: "@typescript-eslint/type-utils@npm:5.48.1" @@ -1623,31 +1604,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.48.1": - version: 5.48.1 - resolution: "@typescript-eslint/types@npm:5.48.1" - checksum: 8437986e9d86d792b23327517ae2f9861ec55992d5a9cd55991e525409b6244169436cd708f3987ab7c579e45e59b6eab5a9d3583f7729219e25691164293094 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.46.1" - dependencies: - "@typescript-eslint/types": 5.48.1 - "@typescript-eslint/visitor-keys": 5.48.1 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 2b26e5848ef131e1bb99ed54d8c0efa8279cf8e8f7d8b72de00c2ca6cf2799d96c20f5bbbcf26e14e81b7b9d1035ba509bff30f2d852c174815879e8f14c27ed - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:5.48.1": version: 5.48.1 resolution: "@typescript-eslint/typescript-estree@npm:5.48.1" @@ -1666,24 +1622,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/utils@npm:5.46.1" - dependencies: - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.48.1 - "@typescript-eslint/types": 5.48.1 - "@typescript-eslint/typescript-estree": 5.48.1 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - semver: ^7.3.7 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 2d112cbb6a920f147c6c3322e404ca3c56c1170e1ede3bcbf16fb779960dc24cdba688b1f2d06acd242859fc1dbc8702da5f8fa8bbf53e7081e41d80bec4c236 - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:5.48.1": version: 5.48.1 resolution: "@typescript-eslint/utils@npm:5.48.1" @@ -1702,16 +1640,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.46.1": - version: 5.46.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.46.1" - dependencies: - "@typescript-eslint/types": 5.46.1 - eslint-visitor-keys: ^3.3.0 - checksum: 2bda10cf4e6bc48b0d463767617e48a832d708b9434665dff6ed101f7d33e0d592f02af17a2259bde1bd17e666246448ae78d0fe006148cb93d897fff9b1d134 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.48.1": version: 5.48.1 resolution: "@typescript-eslint/visitor-keys@npm:5.48.1" @@ -4579,7 +4507,7 @@ __metadata: "@types/ws": 8.5.4 "@typescript-eslint/eslint-plugin": 5.48.1 "@typescript-eslint/parser": 5.48.1 - axios: 0.27.2 + axios: 1.2.2 canvas: 2.11.0 chart.js: 4.1.2 chartjs-node-canvas: 4.1.6