From a3c623c41a83881bf76947a57bd34f8a050efc46 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Tue, 13 Feb 2024 16:44:26 +1100 Subject: [PATCH 01/10] Merge Response calls into one. --- src/events/messageCreate.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 86de386..c7ec686 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -76,10 +76,9 @@ export default class MessageCreate { guildBoost: ['Thanks for boosting our server!', 'Thanks for the boost!', 'We appreciate the boost!', `Thank you for the kind boost, <@${message.author.id}>!`], } const GeneralChatID = ConfigHelper.isDevMode() ? '929807948748832801' : '468835415093411863'; - Response.create(message, GeneralChatID, 'morning'); - Response.create(message, GeneralChatID, 'afternoon'); - Response.create(message, GeneralChatID, 'evening'); - Response.create(message, GeneralChatID, 'night'); + + const times_of_day = ['morning', 'afternoon', 'evening', 'night']; + for (let i = 0; i < times_of_day.length; i++) Response.create(message, GeneralChatID, times_of_day[i]); CmdTrigger.registerCmds(client, message, 'register'); CmdTrigger.MFPwTrigger(message, 'farmpw'); From 096d06c9d245b3a7d242e429d43e53e6e39b2799 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:29:48 +1100 Subject: [PATCH 02/10] Move server join date from guildMemberRemove to guildBanAdd --- src/client.ts | 1 + src/events/guildBanAdd.ts | 5 ++++- src/events/guildMemberRemove.ts | 6 ++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/client.ts b/src/client.ts index a37e197..c1bfd3e 100644 --- a/src/client.ts +++ b/src/client.ts @@ -43,6 +43,7 @@ export default class TClient extends Discord.Client { public ytChannels: YouTubeChannelsSvc = new YouTubeChannelsSvc(); public repeatedMessages: IRepeatedMessages = {}; public crosspostSpam: ICrosspostSpam = {}; + public memberJoinDates: Map = new Map(); constructor() { super({ diff --git a/src/events/guildBanAdd.ts b/src/events/guildBanAdd.ts index 161061e..40a32aa 100644 --- a/src/events/guildBanAdd.ts +++ b/src/events/guildBanAdd.ts @@ -6,14 +6,17 @@ export default class GuildBanAdd { const banLog = (await member.guild.fetchAuditLogs({ limit: 1, type: Discord.AuditLogEvent.MemberBanAdd })).entries.first(); if (!banLog) return console.log(`Member was banned from ${member.guild.name} but no audit log for this member.`) const {executor, target, reason } = banLog; + const members_joindate = client.memberJoinDates.get(member.user.id); if (target.id === member.user.id) { const embed = new client.embed().setColor(client.config.embedColorRed).setTimestamp().setThumbnail(member.user.displayAvatarURL({size: 2048})) .setTitle(`Member Banned: ${target.username}`).addFields( {name: '🔹 Moderator', value: `<@${executor.id}>\n\`${executor.id}\``}, + {name: '🔹 Server Join Date', value: members_joindate ? `\n` : '*Unknown timestamp*'}, {name: '🔹 Reason', value: reason === null ? 'Reason unspecified': reason} ); if (!await client.userLevels.fetchUser(member.user.id)) embed.setFooter({text: 'Rank data has been wiped.'}); - (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({embeds: [embed]}) + (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({embeds: [embed]}); + client.memberJoinDates.delete(member.user.id); } else console.log(`User was banned from "${member.guild.name}" but no audit log could be fetched.`) } } diff --git a/src/events/guildMemberRemove.ts b/src/events/guildMemberRemove.ts index f354d24..47ed70a 100644 --- a/src/events/guildMemberRemove.ts +++ b/src/events/guildMemberRemove.ts @@ -4,10 +4,8 @@ export default class GuildMemberRemove { static async run(client:TClient, member:Discord.GuildMember) { if (!client.config.botSwitches.logs) return; if (!member.joinedTimestamp || member.guild?.id != client.config.dcServer.id) return; - if (client.guilds.cache.get(client.config.dcServer.id).bans.cache.has(member.id)) { - (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send(`**${member.user.username}**'s join date is `) - return await client.userLevels.deleteUser(member.id); - }; + client.memberJoinDates.set(member.user.id, `${Math.round(member.joinedTimestamp/1000)}`); + if (client.guilds.cache.get(client.config.dcServer.id).bans.cache.has(member.id)) return await client.userLevels.deleteUser(member.id); let isBot = 'Bot'; if (!member.user.bot) isBot = 'Member'; const levelData = await client.userLevels.fetchUser(member.id); From 40c7e27b6cdc94e40b54bb2057fbcda0ef88d86a Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:40:19 +1100 Subject: [PATCH 03/10] Update PostgreSQL image --- docker-compose.yml | 2 +- postgres-replica-stuff/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7a61ddc..f25b3a0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: - 6379:6379/tcp db: container_name: postgres-master - image: postgres:16.1-alpine3.19 + image: postgres:16.2-alpine3.19 restart: unless-stopped ports: - 5432:5432/tcp diff --git a/postgres-replica-stuff/docker-compose.yml b/postgres-replica-stuff/docker-compose.yml index 549734c..1e15c0b 100644 --- a/postgres-replica-stuff/docker-compose.yml +++ b/postgres-replica-stuff/docker-compose.yml @@ -8,7 +8,7 @@ services: - 6379:6379/tcp db-slave: container_name: postgres-slave - image: postgres:16.1-alpine3.19 + image: postgres:16.2-alpine3.19 restart: unless-stopped ports: - 5432:5432/tcp From d6d66c5c52d99d16164fef78ef38d331e8422af8 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Thu, 15 Feb 2024 07:38:50 +1100 Subject: [PATCH 04/10] Attempt to fix the 'RanIntoHumor' that's been broken under the radar. --- src/commands/mp.ts | 76 +++++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/src/commands/mp.ts b/src/commands/mp.ts index b537665..6d5fa31 100644 --- a/src/commands/mp.ts +++ b/src/commands/mp.ts @@ -9,10 +9,14 @@ import {FSData} from 'src/interfaces'; import {requestServerData, mpModuleDisabled, refreshTimerSecs, playtimeStat} from '../modules/MPModule.js'; async function fetchData(client:TClient, interaction:Discord.ChatInputCommandInteraction, serverName:string):Promise { - const db = await client.MPServer.findInCache(); - const data = await requestServerData(client, db.find(x=>x.serverName === serverName)); - if (!data) return interaction.reply('Ran into a '+RanIntoHumor+' while trying to retrieve server data, please try again later.'); - return data.dss as FSData; + try { + const db = await client.MPServer.findInCache(); + const data = await requestServerData(client, db.find(x=>x.serverName === serverName)); + return data.dss as FSData; + } catch { + Logger.console('error', 'MPDB', 'Function failed - fetchData'); + return interaction.reply('Ran into a '+RanIntoHumor()+' while trying to retrieve server data, please try again later.'); + } } const logPrefix = 'MPDB'; @@ -42,27 +46,30 @@ export default class MP { const canvas = await new CanvasBuilder().generateGraph(PDArr.slice(-120), 'players'); const players:string[] = []; let embedColor:Discord.ColorResolvable; - switch (true){ - case DSS?.slots?.used === DSS?.slots.capacity: - embedColor = client.config.embedColorRed; - break; - case DSS?.slots?.used > 8: - embedColor = client.config.embedColorYellow; - break; - default: - embedColor = client.config.embedColorGreen; - } - for (const player of DSS.slots.players.filter(x=>x.isUsed)) players.push(playtimeStat(player)) - let attachmentName:string = 'MPModule.jpg'; - await interaction.reply({embeds:[new client.embed() - .setTitle(DSS.server?.name.length > 0 ? DSS.server.name : 'Offline') - .setColor(embedColor) - .setDescription(DSS?.slots?.used < 1 ? '*Nobody is playing*' : players.join('\n\n')) - .setImage(`attachment://${attachmentName}`) - .setAuthor({name: `${DSS.slots.used}/${DSS.slots.capacity}`}) - .setFooter({text: `Current time: ${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}) - ], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]}) + try { + switch (true){ + case DSS?.slots?.used === DSS?.slots?.capacity: + embedColor = client.config.embedColorRed; + break; + case DSS?.slots?.used > 8: + embedColor = client.config.embedColorYellow; + break; + default: + embedColor = client.config.embedColorGreen; + } + for (const player of DSS.slots.players.filter(x=>x.isUsed)) players.push(playtimeStat(player)) + let attachmentName:string = 'MPModule.jpg'; + + await interaction.reply({embeds:[new client.embed() + .setTitle(DSS.server?.name.length > 0 ? DSS.server.name : 'Offline') + .setColor(embedColor) + .setDescription(DSS?.slots?.used < 1 ? '*Nobody is playing*' : players.join('\n\n')) + .setImage(`attachment://${attachmentName}`) + .setAuthor({name: `${DSS.slots?.used}/${DSS.slots?.capacity}`}) + .setFooter({text: `Current time: ${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}) + ], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]}); + } catch {} }, details: async()=>{ const DSS = await fetchData(client, interaction, choiceSelector) as FSData; @@ -71,26 +78,25 @@ export default class MP { const server = db.find(x=>x.serverName === choiceSelector); const dEmbed = new client.embed().setColor(client.config.embedColor).setAuthor({name: 'Crossplay server'}).setDescription(MessageTool.concatMessage( - `**Name:** \`${DSS?.server.name.length > 0 ? DSS.server.name : '\u200b'}\``, + `**Name:** \`${DSS.server?.name.length > 0 ? DSS.server.name : '\u200b'}\``, '**Password:** `mf4700`', - `**Map:** \`${DSS.server.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``, + `**Map:** \`${DSS.server?.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``, `**Mods:** [Click here](http://${server.ip}/mods.html) **|** [Direct link](http://${server.ip}/all_mods_download?onlyActive=true)`, '**Filters:** [Click here](https://discord.com/channels/468835415093411861/468835769092669461/926581585938120724)', `Please see <#${channels.serverInfo}> for more additional information and rules.` )); - if (DSS.server.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'}); - await interaction.reply({embeds: [dEmbed]}) + if (DSS.server?.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'}); + DSS.server ? await interaction.reply({embeds: [dEmbed]}) : null; }, status: async()=>{ const DSS = await fetchData(client, interaction, choiceSelector) as FSData; if (!DSS) return console.log('Endpoint failed - status'); - if (DSS.server.name.length > 0) { - await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields( - {name: 'Name', value: `\`${DSS?.server.name}\``}, - {name: 'Players', value: `${DSS.slots.used}/${DSS.slots.capacity}`}, - {name: 'Map', value: DSS?.server.mapName} - ).setFooter({text: `Version: ${DSS?.server.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]}) - } else return interaction.reply('Server is currently offline.') + + DSS.server ? await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields( + {name: 'Name', value: DSS.server?.name?.length < 1 ? '*`Offline`*' : `\`${DSS?.server?.name}\``}, + {name: 'Players', value: `${DSS?.slots.used}/${DSS?.slots.capacity}`}, + {name: 'Map', value: DSS?.server.mapName} + ).setFooter({text: `Version: ${DSS?.server?.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]}) : null }, pallets: async()=>{ const DSS = await fetchData(client, interaction, choiceSelector) as FSData; From b18523556d0efeae7d68c32a0beeae5ddff9af9c Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Fri, 16 Feb 2024 07:46:49 +1100 Subject: [PATCH 05/10] "5 automod violations" --- src/events/messageCreate.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index c7ec686..083a9e0 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -13,7 +13,7 @@ export default class MessageCreate { if (!message.inGuild()) return (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({content: `${this.randomEmotes[Math.floor(Math.random()*this.randomEmotes.length)]} ${MessageTool.formatMention(client.config.whitelist[0], 'user')}\n**${message.author.username}** (\`${message.author.id}\`) sent me a DM, their message is:\`\`\`${message.content}\`\`\``, allowedMentions: {parse: ['users']}}); let automodded: boolean; - if (client.config.botSwitches.automod && !message.member.roles.cache.has(client.config.dcServer.roles.dcmod) && !message.member.roles.cache.has(client.config.dcServer.roles.admin) && message.guildId === client.config.dcServer.id) { + if (client.config.botSwitches.automod && !message.member?.roles.cache.has(client.config.dcServer.roles.dcmod) && !message.member?.roles.cache.has(client.config.dcServer.roles.admin) && message.guildId === client.config.dcServer.id) { const automodFailReason = 'msg got possibly deleted by another bot.'; const automodRules = { phishingDetection: { From 0d245195557220b6ab869bc9341880585b57aff3 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:58:34 +1100 Subject: [PATCH 06/10] Update CanvasBuilder to use methods instead of functions --- src/commands/mp.ts | 4 ++-- src/commands/rank.ts | 4 ++-- .../{CanvasGraph.ts => CanvasBuilder.ts} | 16 +++++----------- 3 files changed, 9 insertions(+), 15 deletions(-) rename src/components/{CanvasGraph.ts => CanvasBuilder.ts} (93%) diff --git a/src/commands/mp.ts b/src/commands/mp.ts index 6d5fa31..ccad14d 100644 --- a/src/commands/mp.ts +++ b/src/commands/mp.ts @@ -1,7 +1,7 @@ import Discord from 'discord.js'; import TClient from '../client.js'; import Logger from '../helpers/Logger.js'; -import CanvasBuilder from '../components/CanvasGraph.js'; +import CanvasBuilder from '../components/CanvasBuilder.js'; import RanIntoHumor from '../helpers/RanIntoHumor.js'; import MessageTool from '../helpers/MessageTool.js'; import PalletLibrary from '../helpers/PalletLibrary.js'; @@ -43,7 +43,7 @@ export default class MP { if (!DSS) return console.log('Endpoint failed - players'); const PDArr = await client.MPServer.fetchPlayerData(choiceSelector); - const canvas = await new CanvasBuilder().generateGraph(PDArr.slice(-120), 'players'); + const canvas = await CanvasBuilder.generateGraph(PDArr.slice(-120), 'players'); const players:string[] = []; let embedColor:Discord.ColorResolvable; diff --git a/src/commands/rank.ts b/src/commands/rank.ts index 6e3c750..49fc66f 100644 --- a/src/commands/rank.ts +++ b/src/commands/rank.ts @@ -3,7 +3,7 @@ import Discord from 'discord.js'; import TClient from '../client.js'; import Formatters from '../helpers/Formatters.js'; import MessageTool from '../helpers/MessageTool.js'; -import CanvasBuilder from '../components/CanvasGraph.js'; +import CanvasBuilder from '../components/CanvasBuilder.js'; export default class Rank { static async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){ if (interaction.guildId !== client.config.dcServer.id) return interaction.reply({content: 'This command doesn\'t work in this server.', ephemeral: true}); @@ -32,7 +32,7 @@ export default class Rank { }); if (data.length < 2) return interaction.reply('Not enough data to generate graph.'); - const graph = await new CanvasBuilder().generateGraph(data, 'leaderboard'); + const graph = await CanvasBuilder.generateGraph(data, 'leaderboard'); interaction.reply({ embeds: [new client.embed().setColor(client.config.embedColor).setTitle('Leaderboard') .setDescription(MessageTool.concatMessage( diff --git a/src/components/CanvasGraph.ts b/src/components/CanvasBuilder.ts similarity index 93% rename from src/components/CanvasGraph.ts rename to src/components/CanvasBuilder.ts index e77c28d..6e8f42f 100644 --- a/src/components/CanvasGraph.ts +++ b/src/components/CanvasBuilder.ts @@ -2,10 +2,10 @@ import {createCanvas, Canvas, SKRSContext2D} from '@napi-rs/canvas'; import {Config} from 'src/interfaces'; import ConfigHelper from '../helpers/ConfigHelper.js'; export default class CanvasBuilder { - private readonly canvas: Canvas; - private readonly ctx: SKRSContext2D; - private readonly config: Config; - private readonly palette = { + private static readonly canvas: Canvas = createCanvas(1500, 750); + private static readonly ctx: SKRSContext2D = this.canvas.getContext('2d'); + private static readonly config: Config = ConfigHelper.readConfig(); + private static readonly palette = { // Color palette for the graph -- The variables are named exactly what it shows in graph to make it easier to be referenced to. oddHorizontal: '#555B63', evenHorizontal: '#3E4245', @@ -16,13 +16,7 @@ export default class CanvasBuilder { greenLine: '#57F287' }; - constructor() { - this.canvas = createCanvas(1500, 750); - this.ctx = this.canvas.getContext('2d'); - this.config = ConfigHelper.readConfig() as Config; - } - - public async generateGraph(data:number[], type:'players'|'leaderboard'):Promise { + public static async generateGraph(data:number[], type:'players'|'leaderboard'):Promise { // Handle negative for (const [i, change] of data.entries()) if (change < 0) data[i] = data[i - 1] || data[i + 1] || 0; From baf717efb4017d28c6ea3f659a1dcdea7ae7bdfd Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Sun, 18 Feb 2024 04:36:38 +1100 Subject: [PATCH 07/10] Update dependencies --- .pnp.cjs | 28 ++++++++++++++-------------- package.json | 4 ++-- yarn.lock | 20 ++++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.pnp.cjs b/.pnp.cjs index 5bbffe1..9ec22ba 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -30,7 +30,7 @@ const RAW_RUNTIME_STATE = ["@octokit/rest", "npm:20.0.2"],\ ["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\ ["@types/ms", "npm:0.7.34"],\ - ["@types/node", "npm:20.11.17"],\ + ["@types/node", "npm:20.11.19"],\ ["@types/node-cron", "npm:3.0.11"],\ ["@types/pg", "npm:8.11.0"],\ ["@types/sequelize", "npm:4.28.20"],\ @@ -45,7 +45,7 @@ const RAW_RUNTIME_STATE = ["redis", "npm:4.6.13"],\ ["sequelize", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:6.37.0"],\ ["simple-git", "npm:3.22.0"],\ - ["systeminformation", "npm:5.21.24"],\ + ["systeminformation", "npm:5.21.25"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ ["undici", "npm:6.6.2"]\ ],\ @@ -631,7 +631,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@types-continuation-local-storage-npm-3.2.7-763e4dc12b-1f272b53bc.zip/node_modules/@types/continuation-local-storage/",\ "packageDependencies": [\ ["@types/continuation-local-storage", "npm:3.2.7"],\ - ["@types/node", "npm:20.11.17"]\ + ["@types/node", "npm:20.11.19"]\ ],\ "linkType": "HARD"\ }]\ @@ -665,10 +665,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@types/node", [\ - ["npm:20.11.17", {\ - "packageLocation": "./.yarn/cache/@types-node-npm-20.11.17-5185bfb3de-3342df8725.zip/node_modules/@types/node/",\ + ["npm:20.11.19", {\ + "packageLocation": "./.yarn/cache/@types-node-npm-20.11.19-5d4958999b-c7f4705d6c.zip/node_modules/@types/node/",\ "packageDependencies": [\ - ["@types/node", "npm:20.11.17"],\ + ["@types/node", "npm:20.11.19"],\ ["undici-types", "npm:5.26.5"]\ ],\ "linkType": "HARD"\ @@ -688,7 +688,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@types-pg-npm-8.11.0-bf104da0ba-91a7ccc5dc.zip/node_modules/@types/pg/",\ "packageDependencies": [\ ["@types/pg", "npm:8.11.0"],\ - ["@types/node", "npm:20.11.17"],\ + ["@types/node", "npm:20.11.19"],\ ["pg-protocol", "npm:1.6.0"],\ ["pg-types", "npm:4.0.1"]\ ],\ @@ -722,7 +722,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@types-ws-npm-8.5.9-91d1b2ab07-7cf66383b8.zip/node_modules/@types/ws/",\ "packageDependencies": [\ ["@types/ws", "npm:8.5.9"],\ - ["@types/node", "npm:20.11.17"]\ + ["@types/node", "npm:20.11.19"]\ ],\ "linkType": "HARD"\ }]\ @@ -781,7 +781,7 @@ const RAW_RUNTIME_STATE = ["@octokit/rest", "npm:20.0.2"],\ ["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\ ["@types/ms", "npm:0.7.34"],\ - ["@types/node", "npm:20.11.17"],\ + ["@types/node", "npm:20.11.19"],\ ["@types/node-cron", "npm:3.0.11"],\ ["@types/pg", "npm:8.11.0"],\ ["@types/sequelize", "npm:4.28.20"],\ @@ -796,7 +796,7 @@ const RAW_RUNTIME_STATE = ["redis", "npm:4.6.13"],\ ["sequelize", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:6.37.0"],\ ["simple-git", "npm:3.22.0"],\ - ["systeminformation", "npm:5.21.24"],\ + ["systeminformation", "npm:5.21.25"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ ["undici", "npm:6.6.2"]\ ],\ @@ -1405,10 +1405,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["systeminformation", [\ - ["npm:5.21.24", {\ - "packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.24-211bacc546/node_modules/systeminformation/",\ + ["npm:5.21.25", {\ + "packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.25-046c250fe0/node_modules/systeminformation/",\ "packageDependencies": [\ - ["systeminformation", "npm:5.21.24"]\ + ["systeminformation", "npm:5.21.25"]\ ],\ "linkType": "HARD"\ }]\ @@ -1517,7 +1517,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/wkx-npm-0.5.0-fca5152cd8-b8975e33f9.zip/node_modules/wkx/",\ "packageDependencies": [\ ["wkx", "npm:0.5.0"],\ - ["@types/node", "npm:20.11.17"]\ + ["@types/node", "npm:20.11.19"]\ ],\ "linkType": "HARD"\ }]\ diff --git a/package.json b/package.json index 403a9b5..aa688de 100644 --- a/package.json +++ b/package.json @@ -46,12 +46,12 @@ "redis": "4.6.13", "sequelize": "6.37.0", "simple-git": "3.22.0", - "systeminformation": "5.21.24", + "systeminformation": "5.21.25", "undici": "6.6.2" }, "devDependencies": { "@types/ms": "0.7.34", - "@types/node": "20.11.17", + "@types/node": "20.11.19", "@types/node-cron": "3.0.11", "@types/pg": "8.11.0", "@types/sequelize": "4.28.20", diff --git a/yarn.lock b/yarn.lock index f34cb98..b38b3ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -484,12 +484,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:20.11.17": - version: 20.11.17 - resolution: "@types/node@npm:20.11.17" +"@types/node@npm:*, @types/node@npm:20.11.19": + version: 20.11.19 + resolution: "@types/node@npm:20.11.19" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/3342df87258d1c56154bcd4b85180f48675427b235971e6e6e2e037353f5a2ae9aaa05ba5df0fe1e2d2f1022c8d856fd39056b9d7f50ea30c0ca3214137cae1d + checksum: 10/c7f4705d6c84aa21679ad180c33c13ca9567f650e66e14bcee77c7c43d14619c7cd3b4d7b2458947143030b7b1930180efa6d12d999b45366abff9fed7a17472 languageName: node linkType: hard @@ -575,7 +575,7 @@ __metadata: "@octokit/rest": "npm:20.0.2" "@toast/tokenservice-client": "npm:1.0.12" "@types/ms": "npm:0.7.34" - "@types/node": "npm:20.11.17" + "@types/node": "npm:20.11.19" "@types/node-cron": "npm:3.0.11" "@types/pg": "npm:8.11.0" "@types/sequelize": "npm:4.28.20" @@ -590,7 +590,7 @@ __metadata: redis: "npm:4.6.13" sequelize: "npm:6.37.0" simple-git: "npm:3.22.0" - systeminformation: "npm:5.21.24" + systeminformation: "npm:5.21.25" typescript: "npm:5.3.3" undici: "npm:6.6.2" languageName: unknown @@ -1077,12 +1077,12 @@ __metadata: languageName: node linkType: hard -"systeminformation@npm:5.21.24": - version: 5.21.24 - resolution: "systeminformation@npm:5.21.24" +"systeminformation@npm:5.21.25": + version: 5.21.25 + resolution: "systeminformation@npm:5.21.25" bin: systeminformation: lib/cli.js - checksum: 10/3796b8474c25420f2fb7dc91b55e5f30050f9eaa01351ed6cfb56569d9789e19245985a9cd65e4b9adcdf13baa5148f2a722e1792d940e8e9ab32872226a53cd + checksum: 10/5b56205879652cfe5e6147a97a0eba450a8d83b8ad304e5e998a9829a16124c7d43969740413857cb2a24bccb1588160dd026649c7eae3fd35cdb9b92c62ab86 conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android) languageName: node linkType: hard From 659cb4808ef98e5737dce390932754bc35bc86f4 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Sun, 18 Feb 2024 05:54:55 +1100 Subject: [PATCH 08/10] Good morning pals! --- src/client.ts | 8 +++++--- src/commands/inviteinfo.ts | 2 +- src/commands/mp.ts | 14 +++++--------- src/commands/statistics.ts | 25 +++++++++++++------------ src/events/messageDelete.ts | 2 +- src/events/messageDeleteBulk.ts | 2 +- src/events/messageUpdate.ts | 4 ++-- src/helpers/MessageTool.ts | 13 ++++++------- src/index.ts | 33 +++++---------------------------- 9 files changed, 39 insertions(+), 64 deletions(-) diff --git a/src/client.ts b/src/client.ts index c1bfd3e..45e1e12 100644 --- a/src/client.ts +++ b/src/client.ts @@ -52,9 +52,11 @@ export default class TClient extends Discord.Client { Discord.GatewayIntentBits.GuildModeration, Discord.GatewayIntentBits.GuildInvites, Discord.GatewayIntentBits.GuildPresences, Discord.GatewayIntentBits.MessageContent, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.DirectMessages - ], partials: [ - Discord.Partials.Channel, Discord.Partials.Message - ], allowedMentions: {users:[], roles:[]} + ], + partials: [ + Discord.Partials.Message + ], + allowedMentions: {users:[], roles:[]} }) this.config = ConfigHelper.loadConfig() as Config; this.setMaxListeners(50); diff --git a/src/commands/inviteinfo.ts b/src/commands/inviteinfo.ts index 013de03..77f4b2c 100644 --- a/src/commands/inviteinfo.ts +++ b/src/commands/inviteinfo.ts @@ -3,7 +3,7 @@ import TClient from '../client.js'; import MessageTool from '../helpers/MessageTool.js'; export default class InviteInfo { static async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){ - await client.fetchInvite(interaction.options.getString('code',true).replace(/(https:\/\/|discord.gg\/)/g,'')).then(async inviteData=> + await client.fetchInvite(interaction.options.getString('code',true).replace(/(https:\/\/)/g,'')).then(async inviteData=> await interaction.reply({embeds:[new client.embed() .setColor(client.config.embedColor).setURL(`https://discord.gg/${inviteData.code}`).setTitle(inviteData.guild.name).setDescription(MessageTool.concatMessage( `ID: \`${inviteData.guild.id}\``, diff --git a/src/commands/mp.ts b/src/commands/mp.ts index ccad14d..973899e 100644 --- a/src/commands/mp.ts +++ b/src/commands/mp.ts @@ -120,16 +120,12 @@ export default class MP { const reason = interaction.options.getString('reason'); const channel = interaction.guild.channels.cache.get(channels.activePlayers) as Discord.TextChannel; const embed = new client.embed().setColor(client.config.embedColor).setAuthor({name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL({size:1024})}).setTimestamp(); + const isLocked = channel.permissionsFor(interaction.guildId).has('SendMessages'); + const titleAction = isLocked ? '🔒 Locked' : '🔓 Unlocked'; - if (channel.permissionsFor(interaction.guildId).has('SendMessages')) { - channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: false}, {type: 0, reason: `Locked by ${interaction.member.displayName}`}); - channel.send({embeds: [embed.setTitle('🔒 Locked').setDescription(`**Reason:**\n${reason}`)]}); - interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} locked successfully`, ephemeral: true}); - } else { - channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: true}, {type: 0, reason: `Unlocked by ${interaction.member.displayName}`}); - channel.send({embeds: [embed.setTitle('🔓 Unlocked').setDescription(`**Reason:**\n${reason}`)]}); - interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} unlocked successfully`, ephemeral: true}); - } + channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: !isLocked}, {type: 0, reason: `${isLocked ? 'Locked' : 'Unlocked'} by ${interaction.member.displayName}`}); + channel.send({embeds: [embed.setTitle(titleAction).setDescription(`**Reason:**\n${reason}`)]}); + interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} ${isLocked ? 'locked' : 'unlocked'} successfully`, ephemeral: true}); }, start: async()=>{ if (client.config.dcServer.id === interaction.guildId) { diff --git a/src/commands/statistics.ts b/src/commands/statistics.ts index 74740ef..574a8fa 100644 --- a/src/commands/statistics.ts +++ b/src/commands/statistics.ts @@ -28,22 +28,23 @@ export default class Statistics { const nameLen = Math.max(...cmdUses.map(x=>x.command.data.name.length), col[0].length) + 2; const usesLen = Math.max(...cmdUses.map(x=>x.uses.toString().length), col[1].length) + 1; - const rows = [`${col[0] + ' '.repeat(nameLen-col[0].length)}|${' '.repeat(usesLen-col[1].length) + col[1]}\n`, '-'.repeat(nameLen) + '-'.repeat(usesLen) + '\n']; + const rows = [`${col[0].padEnd(nameLen)}${col[1].padStart(usesLen)}\n`, '־'.repeat(nameLen + usesLen) + '\n']; cmdUses.forEach(cmd=>{ const name = cmd.command.data.name; const uses = cmd.uses.toString(); - rows.push(`${name+' '.repeat(nameLen-name.length)}${' '.repeat(usesLen-uses.length)+uses}\n`); + rows.push(`${name.padEnd(nameLen)}${uses.padStart(usesLen)}\n`); }); - if (rows.join('').length > 1024) { - let field = ''; - rows.forEach(r=>{ - if (field.length+r.length > 1024) { - embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``}); - field = r; - } - }); - embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``}); - } else embed.addFields({name: '\u200b', value: `\`\`\`\n${rows.join('')}\`\`\``}); + + const fieldChunks = []; + let field = ''; + rows.forEach(r=>{ + if (field.length+r.length > 1024) { + fieldChunks.push(field); + field = r; + } else field += r; + }); + fieldChunks.push(field); + fieldChunks.forEach(field=>embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``})); const pkg = JSON.parse(readFileSync('package.json', 'utf8')); embed.addFields( diff --git a/src/events/messageDelete.ts b/src/events/messageDelete.ts index 14ed391..dcaad2f 100644 --- a/src/events/messageDelete.ts +++ b/src/events/messageDelete.ts @@ -3,7 +3,7 @@ import TClient from '../client.js'; import Logger from '../helpers/Logger.js'; import {disabledChannels} from '../index.js'; export default class MessageDelete { - static run(client:TClient, msg:Discord.Message){ + static run(client:TClient, msg:Discord.Message|Discord.PartialMessage){ if (!client.config.botSwitches.logs) return; if (msg.guild?.id != client.config.dcServer.id || msg.partial || msg.author.bot || disabledChannels.includes(msg.channelId)) return; if (Discord.DiscordAPIError.name === '10008') return Logger.console('log', 'MsgDelete', 'Caught an unexpected error returned by Discord API. (Unknown Message)'); diff --git a/src/events/messageDeleteBulk.ts b/src/events/messageDeleteBulk.ts index 3ea8858..66a50b6 100644 --- a/src/events/messageDeleteBulk.ts +++ b/src/events/messageDeleteBulk.ts @@ -1,7 +1,7 @@ import Discord from 'discord.js'; import TClient from '../client.js'; export default class MessageDeleteBulk { - static run(client:TClient, messages:Discord.Collection>, channel:Discord.GuildTextBasedChannel){ + static run(client:TClient, messages:Discord.Collection|Discord.PartialMessage>, channel:Discord.GuildTextBasedChannel){ if (!client.config.botSwitches.logs || channel.guildId != client.config.dcServer.id) return; if (messages.some(msg=>{ msg.author?.username === undefined ?? null; diff --git a/src/events/messageUpdate.ts b/src/events/messageUpdate.ts index f50bd48..debe913 100644 --- a/src/events/messageUpdate.ts +++ b/src/events/messageUpdate.ts @@ -3,9 +3,9 @@ import TClient from '../client.js'; import MessageTool from '../helpers/MessageTool.js'; import {disabledChannels, rawSwitches} from '../index.js'; export default class MessageUpdate { - static async run(client:TClient, oldMsg:Discord.Message, newMsg:Discord.Message){ + static async run(client:TClient, oldMsg:Discord.Message|Discord.PartialMessage, newMsg:Discord.Message){ if (!client.config.botSwitches.logs) return; - if (oldMsg.guild?.id != client.config.dcServer.id || oldMsg.author === null || oldMsg?.author.bot || oldMsg.partial || newMsg.partial || !newMsg.member || disabledChannels.includes(newMsg.channelId)) return; + if (oldMsg.guild?.id != client.config.dcServer.id || oldMsg.author === null || oldMsg?.author.bot || newMsg.partial || !newMsg.member || disabledChannels.includes(newMsg.channelId)) return; if (await client.prohibitedWords.findWord(newMsg.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n?0-9]|[]|ing\b/g, '').split(' ').join('')) && (!MessageTool.isStaff(newMsg.member))) newMsg.delete(); if (!rawSwitches.MESSAGE_UPDATE || (rawSwitches.MESSAGE_UPDATE && newMsg.content !== oldMsg.content)) { rawSwitches.MESSAGE_UPDATE = true; diff --git a/src/helpers/MessageTool.ts b/src/helpers/MessageTool.ts index 1993442..f46f428 100644 --- a/src/helpers/MessageTool.ts +++ b/src/helpers/MessageTool.ts @@ -1,18 +1,17 @@ import Discord from 'discord.js'; import ConfigHelper from './ConfigHelper.js'; const config = ConfigHelper.readConfig(); -type RoleKeys = keyof typeof config.dcServer.roles; export default class MessageTool { - static embedStruct(color:Discord.ColorResolvable, title:string, description?:string|null, image?:string|null) { + public static embedStruct(color:Discord.ColorResolvable, title:string, description?:string|null, image?:string|null) { const embed = new Discord.EmbedBuilder().setColor(color).setTitle(title); if (description) embed.setDescription(description); if (image) embed.setImage(image); return embed } - static concatMessage =(...messages:string[])=>messages.join('\n'); - static formatMention =(mention:string, type:'user'|'channel'|'role')=>`<${type === 'role' ? '@&' : type === 'channel' ? '#' : '@'}${mention}>`; - static isStaff =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x)); - static youNeedRole =(interaction:Discord.CommandInteraction, role:RoleKeys)=>interaction.reply(`You do not have ${this.formatMention(config.dcServer.roles[role], 'role')} role to use this command.`); - static isModerator =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.filter((x:string)=>/^admin|^dcmod/.test(x)).map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x)); + public static concatMessage =(...messages:string[])=>messages.join('\n'); + public static formatMention =(mention:string, type:'user'|'channel'|'role')=>`<${type === 'role' ? '@&' : type === 'channel' ? '#' : '@'}${mention}>`; + public static isStaff =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x)); + public static youNeedRole =(interaction:Discord.CommandInteraction, role:keyof typeof config.dcServer.roles)=>interaction.reply(`You do not have ${this.formatMention(config.dcServer.roles[role], 'role')} role to use this command.`); + public static isModerator =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.filter((x:string)=>/^admin|^dcmod/.test(x)).map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x)); } diff --git a/src/index.ts b/src/index.ts index cc09e95..6ec8e78 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,27 +9,13 @@ import MPModule, {refreshTimerSecs} from './modules/MPModule.js'; import UsernameHelper from './helpers/UsernameHelper.js'; import {Punishment, RawGatewayPacket, RawMessageDelete, RawMessageUpdate} from 'src/interfaces'; import {readFileSync} from 'node:fs'; -import {execSync} from 'node:child_process'; export const disabledChannels = ['548032776830582794', '541677709487505408', '949380187668242483']; // Error handler function _(error:Error, type:string) { if (JSON.parse(readFileSync('src/errorBlocklist.json', 'utf8')).includes(error.message)) return; console.error(error); - (client.channels.resolve(client.config.dcServer.channels.errors) as Discord.TextChannel | null)?.send({embeds: [new client.embed().setColor('#560000').setTitle('Error caught!').setFooter({text: `Error type: ${type}`}).setDescription(`**Error:**\n\`\`\`${error.message}\`\`\`**Stack:**\n\`\`\`${`${UsernameHelper(error.stack)}`.slice(0, 2500)}\`\`\``)]}) - - if (error.message.includes('could not fdatasync file')) { - client.users.createDM(client.config.whitelist[1]).then(u=>u.send({ - embeds: [new client.embed() - .setColor(client.config.embedColorYellow) - .setTitle('Database error') - .setDescription('I couldn\'t write to the database due to filesystem issues, shutting down...') - .setFields({name: 'Error message', value: `\`\`\`${error.message}\`\`\``}) - .setFooter({text: `Error type: ${type}`}) - ] - })); - setTimeout(()=>execSync('pm2 stop 0', {shell: 'bash'}), 5500); - } + (client.channels.resolve(client.config.dcServer.channels.errors) as Discord.TextChannel | null)?.send({embeds: [new client.embed().setColor('#560000').setTitle('Error caught!').setFooter({text: `Error type: ${type}`}).setDescription(`**Error:**\n\`\`\`${error.message}\`\`\`**Stack:**\n\`\`\`${`${UsernameHelper(error.stack)}`.slice(0, 2500)}\`\`\``)]}); } process.on('unhandledRejection', (error: Error)=>_(error, 'unhandledRejection')); process.on('uncaughtException', (error: Error)=>_(error, 'uncaughtException')); @@ -106,24 +92,15 @@ client.on('raw', async (packet:RawGatewayPacket)=>{ if (typeof packet.d.content === 'undefined') return; const channel = client.channels.cache.get(packet.d.channel_id) as Discord.TextBasedChannel; - const old_message = await channel.messages.fetch(packet.d.id); - const new_message = await channel.messages.fetch(packet.d.id); + const message = await channel.messages.fetch(packet.d.id); - client.emit('messageUpdate', old_message, new_message); + client.emit('messageUpdate', message, message); }); client.on('raw', async (packet:RawGatewayPacket)=>{ if (rawSwitches[packet.t]) return; if (packet.t !== 'MESSAGE_DELETE' || packet.d.guild_id != client.config.dcServer.id || disabledChannels.includes(packet.d.channel_id)) return; - (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({ - embeds: [new client.embed() - .setColor(client.config.embedColorRed) - .setTitle('Message deleted') - .addFields( - {name: 'This was received over raw API event', value: '\u200b'}, - {name: 'Channel', value: `<#${packet.d.channel_id}>`}, - ).setTimestamp() - ] - }); + + Logger.console('log', 'RawEvent:Del', `Message was deleted in #${(client.channels.resolve(packet.d.channel_id) as Discord.TextChannel).name}`); rawSwitches[packet.t] = true; }); From 5673977f1c48b7125c0fccacede702bf25ed0420 Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Sun, 18 Feb 2024 08:31:59 +1100 Subject: [PATCH 09/10] Yarn.lock cleanup --- .pnp.cjs | 323 ++++++++++++++++++++++++++++-------------------------- yarn.lock | 230 +++++++++++++++++++------------------- 2 files changed, 286 insertions(+), 267 deletions(-) diff --git a/.pnp.cjs b/.pnp.cjs index 9ec22ba..3d7c2ab 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -59,7 +59,7 @@ const RAW_RUNTIME_STATE = ["@discordjs/builders", "npm:1.7.0"],\ ["@discordjs/formatters", "npm:0.3.3"],\ ["@discordjs/util", "npm:1.0.2"],\ - ["@sapphire/shapeshift", "npm:3.9.3"],\ + ["@sapphire/shapeshift", "npm:3.9.6"],\ ["discord-api-types", "npm:0.37.61"],\ ["fast-deep-equal", "npm:3.1.3"],\ ["ts-mixer", "npm:6.0.3"],\ @@ -95,17 +95,17 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@discordjs/rest", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.1.0-7d5eafcddd-3e3fbdaac6.zip/node_modules/@discordjs/rest/",\ + ["npm:2.2.0", {\ + "packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.2.0-7742c53181-213245a313.zip/node_modules/@discordjs/rest/",\ "packageDependencies": [\ - ["@discordjs/rest", "npm:2.1.0"],\ + ["@discordjs/rest", "npm:2.2.0"],\ ["@discordjs/collection", "npm:2.0.0"],\ ["@discordjs/util", "npm:1.0.2"],\ - ["@sapphire/async-queue", "npm:1.5.0"],\ - ["@sapphire/snowflake", "npm:3.5.1"],\ - ["@vladfrangu/async_event_emitter", "npm:2.2.2"],\ + ["@sapphire/async-queue", "npm:1.5.2"],\ + ["@sapphire/snowflake", "npm:3.5.3"],\ + ["@vladfrangu/async_event_emitter", "npm:2.2.4"],\ ["discord-api-types", "npm:0.37.61"],\ - ["magic-bytes.js", "npm:1.5.0"],\ + ["magic-bytes.js", "npm:1.8.0"],\ ["tslib", "npm:2.6.2"],\ ["undici", "npm:5.27.2"]\ ],\ @@ -127,23 +127,23 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@discordjs/ws", "npm:1.0.2"],\ ["@discordjs/collection", "npm:2.0.0"],\ - ["@discordjs/rest", "npm:2.1.0"],\ + ["@discordjs/rest", "npm:2.2.0"],\ ["@discordjs/util", "npm:1.0.2"],\ - ["@sapphire/async-queue", "npm:1.5.0"],\ - ["@types/ws", "npm:8.5.9"],\ - ["@vladfrangu/async_event_emitter", "npm:2.2.2"],\ + ["@sapphire/async-queue", "npm:1.5.2"],\ + ["@types/ws", "npm:8.5.10"],\ + ["@vladfrangu/async_event_emitter", "npm:2.2.4"],\ ["discord-api-types", "npm:0.37.61"],\ ["tslib", "npm:2.6.2"],\ - ["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"]\ + ["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@fastify/busboy", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/@fastify-busboy-npm-2.0.0-c6baf48382-6a2366d06b.zip/node_modules/@fastify/busboy/",\ + ["npm:2.1.0", {\ + "packageLocation": "./.yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-f22c1e5c52.zip/node_modules/@fastify/busboy/",\ "packageDependencies": [\ - ["@fastify/busboy", "npm:2.0.0"]\ + ["@fastify/busboy", "npm:2.1.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -276,75 +276,67 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@octokit/core", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-core-npm-5.0.0-c9003d20df-e12bec95c7.zip/node_modules/@octokit/core/",\ + ["npm:5.1.0", {\ + "packageLocation": "./.yarn/cache/@octokit-core-npm-5.1.0-6f995d9055-8062e86a30.zip/node_modules/@octokit/core/",\ "packageDependencies": [\ - ["@octokit/core", "npm:5.0.0"],\ + ["@octokit/core", "npm:5.1.0"],\ ["@octokit/auth-token", "npm:4.0.0"],\ - ["@octokit/graphql", "npm:7.0.1"],\ - ["@octokit/request", "npm:8.1.1"],\ - ["@octokit/request-error", "npm:5.0.0"],\ - ["@octokit/types", "npm:11.1.0"],\ + ["@octokit/graphql", "npm:7.0.2"],\ + ["@octokit/request", "npm:8.2.0"],\ + ["@octokit/request-error", "npm:5.0.1"],\ + ["@octokit/types", "npm:12.5.0"],\ ["before-after-hook", "npm:2.2.3"],\ - ["universal-user-agent", "npm:6.0.0"]\ + ["universal-user-agent", "npm:6.0.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/endpoint", [\ - ["npm:9.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-endpoint-npm-9.0.0-0d4530e44e-ec160fe1a0.zip/node_modules/@octokit/endpoint/",\ + ["npm:9.0.4", {\ + "packageLocation": "./.yarn/cache/@octokit-endpoint-npm-9.0.4-1b64d334f9-7df35c96f2.zip/node_modules/@octokit/endpoint/",\ "packageDependencies": [\ - ["@octokit/endpoint", "npm:9.0.0"],\ - ["@octokit/types", "npm:11.1.0"],\ - ["is-plain-object", "npm:5.0.0"],\ - ["universal-user-agent", "npm:6.0.0"]\ + ["@octokit/endpoint", "npm:9.0.4"],\ + ["@octokit/types", "npm:12.5.0"],\ + ["universal-user-agent", "npm:6.0.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/graphql", [\ - ["npm:7.0.1", {\ - "packageLocation": "./.yarn/cache/@octokit-graphql-npm-7.0.1-5feff6ab44-1c62aa5cfa.zip/node_modules/@octokit/graphql/",\ + ["npm:7.0.2", {\ + "packageLocation": "./.yarn/cache/@octokit-graphql-npm-7.0.2-b5522f5b29-f5dcc51fed.zip/node_modules/@octokit/graphql/",\ "packageDependencies": [\ - ["@octokit/graphql", "npm:7.0.1"],\ - ["@octokit/request", "npm:8.1.1"],\ - ["@octokit/types", "npm:11.1.0"],\ - ["universal-user-agent", "npm:6.0.0"]\ + ["@octokit/graphql", "npm:7.0.2"],\ + ["@octokit/request", "npm:8.2.0"],\ + ["@octokit/types", "npm:12.5.0"],\ + ["universal-user-agent", "npm:6.0.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/openapi-types", [\ - ["npm:18.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-18.0.0-1586e405d6-5d4aa6abab.zip/node_modules/@octokit/openapi-types/",\ + ["npm:19.1.0", {\ + "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-19.1.0-bd98fe458b-3abedc09ba.zip/node_modules/@octokit/openapi-types/",\ "packageDependencies": [\ - ["@octokit/openapi-types", "npm:18.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:19.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-19.0.0-064193076f-87962fee2e.zip/node_modules/@octokit/openapi-types/",\ - "packageDependencies": [\ - ["@octokit/openapi-types", "npm:19.0.0"]\ + ["@octokit/openapi-types", "npm:19.1.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/plugin-paginate-rest", [\ - ["npm:9.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-9.0.0-fb07663301-1fcf2358d2.zip/node_modules/@octokit/plugin-paginate-rest/",\ + ["npm:9.1.5", {\ + "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-9.1.5-9d33eaf13c-5f1793ebeb.zip/node_modules/@octokit/plugin-paginate-rest/",\ "packageDependencies": [\ - ["@octokit/plugin-paginate-rest", "npm:9.0.0"]\ + ["@octokit/plugin-paginate-rest", "npm:9.1.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0", {\ - "packageLocation": "./.yarn/__virtual__/@octokit-plugin-paginate-rest-virtual-9fb782d717/0/cache/@octokit-plugin-paginate-rest-npm-9.0.0-fb07663301-1fcf2358d2.zip/node_modules/@octokit/plugin-paginate-rest/",\ + ["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5", {\ + "packageLocation": "./.yarn/__virtual__/@octokit-plugin-paginate-rest-virtual-092e0c7889/0/cache/@octokit-plugin-paginate-rest-npm-9.1.5-9d33eaf13c-5f1793ebeb.zip/node_modules/@octokit/plugin-paginate-rest/",\ "packageDependencies": [\ - ["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0"],\ - ["@octokit/core", "npm:5.0.0"],\ - ["@octokit/types", "npm:12.0.0"],\ + ["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5"],\ + ["@octokit/core", "npm:5.1.0"],\ + ["@octokit/types", "npm:12.5.0"],\ ["@types/octokit__core", null]\ ],\ "packagePeers": [\ @@ -366,7 +358,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/__virtual__/@octokit-plugin-request-log-virtual-8311198fdf/0/cache/@octokit-plugin-request-log-npm-4.0.0-49c2f6ee8b-2a8a661964.zip/node_modules/@octokit/plugin-request-log/",\ "packageDependencies": [\ ["@octokit/plugin-request-log", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:4.0.0"],\ - ["@octokit/core", "npm:5.0.0"],\ + ["@octokit/core", "npm:5.1.0"],\ ["@types/octokit__core", null]\ ],\ "packagePeers": [\ @@ -377,19 +369,19 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@octokit/plugin-rest-endpoint-methods", [\ - ["npm:10.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-10.0.0-f839bc852a-2984df2c81.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\ + ["npm:10.3.0", {\ + "packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-10.3.0-06a0ae45a8-be202aca31.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\ "packageDependencies": [\ - ["@octokit/plugin-rest-endpoint-methods", "npm:10.0.0"]\ + ["@octokit/plugin-rest-endpoint-methods", "npm:10.3.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0", {\ - "packageLocation": "./.yarn/__virtual__/@octokit-plugin-rest-endpoint-methods-virtual-7363bbf413/0/cache/@octokit-plugin-rest-endpoint-methods-npm-10.0.0-f839bc852a-2984df2c81.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\ + ["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0", {\ + "packageLocation": "./.yarn/__virtual__/@octokit-plugin-rest-endpoint-methods-virtual-ea99ee7f10/0/cache/@octokit-plugin-rest-endpoint-methods-npm-10.3.0-06a0ae45a8-be202aca31.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\ "packageDependencies": [\ - ["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0"],\ - ["@octokit/core", "npm:5.0.0"],\ - ["@octokit/types", "npm:12.0.0"],\ + ["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0"],\ + ["@octokit/core", "npm:5.1.0"],\ + ["@octokit/types", "npm:12.5.0"],\ ["@types/octokit__core", null]\ ],\ "packagePeers": [\ @@ -400,25 +392,24 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@octokit/request", [\ - ["npm:8.1.1", {\ - "packageLocation": "./.yarn/cache/@octokit-request-npm-8.1.1-404934a724-62fd236ef8.zip/node_modules/@octokit/request/",\ + ["npm:8.2.0", {\ + "packageLocation": "./.yarn/cache/@octokit-request-npm-8.2.0-27c446977b-553ba8b99e.zip/node_modules/@octokit/request/",\ "packageDependencies": [\ - ["@octokit/request", "npm:8.1.1"],\ - ["@octokit/endpoint", "npm:9.0.0"],\ - ["@octokit/request-error", "npm:5.0.0"],\ - ["@octokit/types", "npm:11.1.0"],\ - ["is-plain-object", "npm:5.0.0"],\ - ["universal-user-agent", "npm:6.0.0"]\ + ["@octokit/request", "npm:8.2.0"],\ + ["@octokit/endpoint", "npm:9.0.4"],\ + ["@octokit/request-error", "npm:5.0.1"],\ + ["@octokit/types", "npm:12.5.0"],\ + ["universal-user-agent", "npm:6.0.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/request-error", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-request-error-npm-5.0.0-262908a2c1-de7ed29340.zip/node_modules/@octokit/request-error/",\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/@octokit-request-error-npm-5.0.1-eda589102d-a21a4614c4.zip/node_modules/@octokit/request-error/",\ "packageDependencies": [\ - ["@octokit/request-error", "npm:5.0.0"],\ - ["@octokit/types", "npm:11.1.0"],\ + ["@octokit/request-error", "npm:5.0.1"],\ + ["@octokit/types", "npm:12.5.0"],\ ["deprecation", "npm:2.3.1"],\ ["once", "npm:1.4.0"]\ ],\ @@ -430,28 +421,20 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/@octokit-rest-npm-20.0.2-4561cebc71-527e1806ca.zip/node_modules/@octokit/rest/",\ "packageDependencies": [\ ["@octokit/rest", "npm:20.0.2"],\ - ["@octokit/core", "npm:5.0.0"],\ - ["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0"],\ + ["@octokit/core", "npm:5.1.0"],\ + ["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5"],\ ["@octokit/plugin-request-log", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:4.0.0"],\ - ["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0"]\ + ["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@octokit/types", [\ - ["npm:11.1.0", {\ - "packageLocation": "./.yarn/cache/@octokit-types-npm-11.1.0-668299c1c7-ebd510c14c.zip/node_modules/@octokit/types/",\ + ["npm:12.5.0", {\ + "packageLocation": "./.yarn/cache/@octokit-types-npm-12.5.0-17ac978d21-a2c8e736e3.zip/node_modules/@octokit/types/",\ "packageDependencies": [\ - ["@octokit/types", "npm:11.1.0"],\ - ["@octokit/openapi-types", "npm:18.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:12.0.0", {\ - "packageLocation": "./.yarn/cache/@octokit-types-npm-12.0.0-b74b3121ec-68faa94efa.zip/node_modules/@octokit/types/",\ - "packageDependencies": [\ - ["@octokit/types", "npm:12.0.0"],\ - ["@octokit/openapi-types", "npm:19.0.0"]\ + ["@octokit/types", "npm:12.5.0"],\ + ["@octokit/openapi-types", "npm:19.1.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -579,19 +562,19 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@sapphire/async-queue", [\ - ["npm:1.5.0", {\ - "packageLocation": "./.yarn/cache/@sapphire-async-queue-npm-1.5.0-f065e42c78-d22feb63a2.zip/node_modules/@sapphire/async-queue/",\ + ["npm:1.5.2", {\ + "packageLocation": "./.yarn/cache/@sapphire-async-queue-npm-1.5.2-ea45a21892-55e0785997.zip/node_modules/@sapphire/async-queue/",\ "packageDependencies": [\ - ["@sapphire/async-queue", "npm:1.5.0"]\ + ["@sapphire/async-queue", "npm:1.5.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@sapphire/shapeshift", [\ - ["npm:3.9.3", {\ - "packageLocation": "./.yarn/cache/@sapphire-shapeshift-npm-3.9.3-cc74b670e7-9fce0135d4.zip/node_modules/@sapphire/shapeshift/",\ + ["npm:3.9.6", {\ + "packageLocation": "./.yarn/cache/@sapphire-shapeshift-npm-3.9.6-b36d857d93-9d7ab3b334.zip/node_modules/@sapphire/shapeshift/",\ "packageDependencies": [\ - ["@sapphire/shapeshift", "npm:3.9.3"],\ + ["@sapphire/shapeshift", "npm:3.9.6"],\ ["fast-deep-equal", "npm:3.1.3"],\ ["lodash", "npm:4.17.21"]\ ],\ @@ -605,6 +588,13 @@ const RAW_RUNTIME_STATE = ["@sapphire/snowflake", "npm:3.5.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.5.3", {\ + "packageLocation": "./.yarn/cache/@sapphire-snowflake-npm-3.5.3-427ca2a4ee-f306626f76.zip/node_modules/@sapphire/snowflake/",\ + "packageDependencies": [\ + ["@sapphire/snowflake", "npm:3.5.3"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@toast/tokenservice-client", [\ @@ -647,10 +637,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@types/lodash", [\ - ["npm:4.14.201", {\ - "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.201-0c286bbc0c-9b56a2a650.zip/node_modules/@types/lodash/",\ + ["npm:4.14.202", {\ + "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.202-76de3e302b-1bb9760a5b.zip/node_modules/@types/lodash/",\ "packageDependencies": [\ - ["@types/lodash", "npm:4.14.201"]\ + ["@types/lodash", "npm:4.14.202"]\ ],\ "linkType": "HARD"\ }]\ @@ -690,7 +680,7 @@ const RAW_RUNTIME_STATE = ["@types/pg", "npm:8.11.0"],\ ["@types/node", "npm:20.11.19"],\ ["pg-protocol", "npm:1.6.0"],\ - ["pg-types", "npm:4.0.1"]\ + ["pg-types", "npm:4.0.2"]\ ],\ "linkType": "HARD"\ }]\ @@ -702,22 +692,30 @@ const RAW_RUNTIME_STATE = ["@types/sequelize", "npm:4.28.20"],\ ["@types/bluebird", "npm:3.5.42"],\ ["@types/continuation-local-storage", "npm:3.2.7"],\ - ["@types/lodash", "npm:4.14.201"],\ - ["@types/validator", "npm:13.11.6"]\ + ["@types/lodash", "npm:4.14.202"],\ + ["@types/validator", "npm:13.11.9"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@types/validator", [\ - ["npm:13.11.6", {\ - "packageLocation": "./.yarn/cache/@types-validator-npm-13.11.6-83ab3545a6-65991ba600.zip/node_modules/@types/validator/",\ + ["npm:13.11.9", {\ + "packageLocation": "./.yarn/cache/@types-validator-npm-13.11.9-ac3f0e748e-2d397c6929.zip/node_modules/@types/validator/",\ "packageDependencies": [\ - ["@types/validator", "npm:13.11.6"]\ + ["@types/validator", "npm:13.11.9"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@types/ws", [\ + ["npm:8.5.10", {\ + "packageLocation": "./.yarn/cache/@types-ws-npm-8.5.10-a877a38f71-9b414dc5e0.zip/node_modules/@types/ws/",\ + "packageDependencies": [\ + ["@types/ws", "npm:8.5.10"],\ + ["@types/node", "npm:20.11.19"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:8.5.9", {\ "packageLocation": "./.yarn/cache/@types-ws-npm-8.5.9-91d1b2ab07-7cf66383b8.zip/node_modules/@types/ws/",\ "packageDependencies": [\ @@ -728,10 +726,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@vladfrangu/async_event_emitter", [\ - ["npm:2.2.2", {\ - "packageLocation": "./.yarn/cache/@vladfrangu-async_event_emitter-npm-2.2.2-d94a9ff4bf-1c1fcee04a.zip/node_modules/@vladfrangu/async_event_emitter/",\ + ["npm:2.2.4", {\ + "packageLocation": "./.yarn/cache/@vladfrangu-async_event_emitter-npm-2.2.4-0297e524e2-06de49380d.zip/node_modules/@vladfrangu/async_event_emitter/",\ "packageDependencies": [\ - ["@vladfrangu/async_event_emitter", "npm:2.2.2"]\ + ["@vladfrangu/async_event_emitter", "npm:2.2.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -861,7 +859,7 @@ const RAW_RUNTIME_STATE = ["@discordjs/builders", "npm:1.7.0"],\ ["@discordjs/collection", "npm:1.5.3"],\ ["@discordjs/formatters", "npm:0.3.3"],\ - ["@discordjs/rest", "npm:2.1.0"],\ + ["@discordjs/rest", "npm:2.2.0"],\ ["@discordjs/util", "npm:1.0.2"],\ ["@discordjs/ws", "npm:1.0.2"],\ ["@sapphire/snowflake", "npm:3.5.1"],\ @@ -871,7 +869,7 @@ const RAW_RUNTIME_STATE = ["lodash.snakecase", "npm:4.1.1"],\ ["tslib", "npm:2.6.2"],\ ["undici", "npm:5.27.2"],\ - ["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"]\ + ["ws", "virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2"]\ ],\ "linkType": "HARD"\ }]\ @@ -922,15 +920,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["is-plain-object", [\ - ["npm:5.0.0", {\ - "packageLocation": "./.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip/node_modules/is-plain-object/",\ - "packageDependencies": [\ - ["is-plain-object", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["lodash", [\ ["npm:4.17.21", {\ "packageLocation": "./.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/",\ @@ -960,29 +949,29 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["magic-bytes.js", [\ - ["npm:1.5.0", {\ - "packageLocation": "./.yarn/cache/magic-bytes.js-npm-1.5.0-ea66807a2e-ffb86aec8f.zip/node_modules/magic-bytes.js/",\ + ["npm:1.8.0", {\ + "packageLocation": "./.yarn/cache/magic-bytes.js-npm-1.8.0-995d257f15-781c932f64.zip/node_modules/magic-bytes.js/",\ "packageDependencies": [\ - ["magic-bytes.js", "npm:1.5.0"]\ + ["magic-bytes.js", "npm:1.8.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["moment", [\ - ["npm:2.29.4", {\ - "packageLocation": "./.yarn/cache/moment-npm-2.29.4-902943305d-157c5af5a0.zip/node_modules/moment/",\ + ["npm:2.30.1", {\ + "packageLocation": "./.yarn/cache/moment-npm-2.30.1-1c51a5c631-ae42d876d4.zip/node_modules/moment/",\ "packageDependencies": [\ - ["moment", "npm:2.29.4"]\ + ["moment", "npm:2.30.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["moment-timezone", [\ - ["npm:0.5.43", {\ - "packageLocation": "./.yarn/cache/moment-timezone-npm-0.5.43-1304d8602a-f8b66f8562.zip/node_modules/moment-timezone/",\ + ["npm:0.5.45", {\ + "packageLocation": "./.yarn/cache/moment-timezone-npm-0.5.45-2df3ad72a4-45e3793d44.zip/node_modules/moment-timezone/",\ "packageDependencies": [\ - ["moment-timezone", "npm:0.5.43"],\ - ["moment", "npm:2.29.4"]\ + ["moment-timezone", "npm:0.5.45"],\ + ["moment", "npm:2.30.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -1161,17 +1150,17 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["npm:4.0.1", {\ - "packageLocation": "./.yarn/cache/pg-types-npm-4.0.1-8f922557d3-2c686ef361.zip/node_modules/pg-types/",\ + ["npm:4.0.2", {\ + "packageLocation": "./.yarn/cache/pg-types-npm-4.0.2-771d83bf15-f4d529da86.zip/node_modules/pg-types/",\ "packageDependencies": [\ - ["pg-types", "npm:4.0.1"],\ + ["pg-types", "npm:4.0.2"],\ ["pg-int8", "npm:1.0.1"],\ ["pg-numeric", "npm:1.0.2"],\ ["postgres-array", "npm:3.0.2"],\ ["postgres-bytea", "npm:3.0.0"],\ - ["postgres-date", "npm:2.0.1"],\ + ["postgres-date", "npm:2.1.0"],\ ["postgres-interval", "npm:3.0.0"],\ - ["postgres-range", "npm:1.1.3"]\ + ["postgres-range", "npm:1.1.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -1227,10 +1216,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["npm:2.0.1", {\ - "packageLocation": "./.yarn/cache/postgres-date-npm-2.0.1-00e0e0bc9e-908eacec35.zip/node_modules/postgres-date/",\ + ["npm:2.1.0", {\ + "packageLocation": "./.yarn/cache/postgres-date-npm-2.1.0-710ac64466-faa1c70dfa.zip/node_modules/postgres-date/",\ "packageDependencies": [\ - ["postgres-date", "npm:2.0.1"]\ + ["postgres-date", "npm:2.1.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -1253,10 +1242,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["postgres-range", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/postgres-range-npm-1.1.3-46f68e1a9e-356a46d97e.zip/node_modules/postgres-range/",\ + ["npm:1.1.4", {\ + "packageLocation": "./.yarn/cache/postgres-range-npm-1.1.4-018d46d348-035759f17b.zip/node_modules/postgres-range/",\ "packageDependencies": [\ - ["postgres-range", "npm:1.1.3"]\ + ["postgres-range", "npm:1.1.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -1286,10 +1275,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["semver", [\ - ["npm:7.5.4", {\ - "packageLocation": "./.yarn/cache/semver-npm-7.5.4-c4ad957fcd-985dec0d37.zip/node_modules/semver/",\ + ["npm:7.6.0", {\ + "packageLocation": "./.yarn/cache/semver-npm-7.6.0-f4630729f6-1b41018df2.zip/node_modules/semver/",\ "packageDependencies": [\ - ["semver", "npm:7.5.4"],\ + ["semver", "npm:7.6.0"],\ ["lru-cache", "npm:6.0.0"]\ ],\ "linkType": "HARD"\ @@ -1317,22 +1306,22 @@ const RAW_RUNTIME_STATE = ["@types/snowflake-sdk", null],\ ["@types/sqlite3", null],\ ["@types/tedious", null],\ - ["@types/validator", "npm:13.11.6"],\ + ["@types/validator", "npm:13.11.9"],\ ["debug", "virtual:8dde907e274d6cda4b3be6cd808e5a16421eab0e2ce2f6110b97323dbadda969b2dab36e690fd106d5bd3c87e0525cade2b2ba6fb4fb0c0e439212e4cf5c851b#npm:4.3.4"],\ ["dottie", "npm:2.0.6"],\ ["ibm_db", null],\ ["inflection", "npm:1.13.4"],\ ["lodash", "npm:4.17.21"],\ ["mariadb", null],\ - ["moment", "npm:2.29.4"],\ - ["moment-timezone", "npm:0.5.43"],\ + ["moment", "npm:2.30.1"],\ + ["moment-timezone", "npm:0.5.45"],\ ["mysql2", null],\ ["oracledb", null],\ ["pg", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:8.11.3"],\ ["pg-connection-string", "npm:2.6.2"],\ ["pg-hstore", "npm:2.3.4"],\ ["retry-as-promised", "npm:7.0.4"],\ - ["semver", "npm:7.5.4"],\ + ["semver", "npm:7.6.0"],\ ["sequelize-pool", "npm:7.1.0"],\ ["snowflake-sdk", null],\ ["sqlite3", null],\ @@ -1463,7 +1452,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/undici-npm-5.27.2-141c109c0a-2bf96b102f.zip/node_modules/undici/",\ "packageDependencies": [\ ["undici", "npm:5.27.2"],\ - ["@fastify/busboy", "npm:2.0.0"]\ + ["@fastify/busboy", "npm:2.1.0"]\ ],\ "linkType": "HARD"\ }],\ @@ -1471,7 +1460,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/undici-npm-6.6.2-a0bd6785a6-e08ac9c279.zip/node_modules/undici/",\ "packageDependencies": [\ ["undici", "npm:6.6.2"],\ - ["@fastify/busboy", "npm:2.0.0"]\ + ["@fastify/busboy", "npm:2.1.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -1486,10 +1475,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["universal-user-agent", [\ - ["npm:6.0.0", {\ - "packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.zip/node_modules/universal-user-agent/",\ + ["npm:6.0.1", {\ + "packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.1-0388aac597-fdc8e1ae48.zip/node_modules/universal-user-agent/",\ "packageDependencies": [\ - ["universal-user-agent", "npm:6.0.0"]\ + ["universal-user-agent", "npm:6.0.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -1539,10 +1528,34 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-c9d0a10f0a/0/cache/ws-npm-8.14.2-b339ac47a2-815ff01d9b.zip/node_modules/ws/",\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/ws-npm-8.16.0-46943f6199-7c511c59e9.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"],\ + ["ws", "npm:8.16.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-f404185dbb/0/cache/ws-npm-8.16.0-46943f6199-7c511c59e9.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0"],\ + ["@types/bufferutil", null],\ + ["@types/utf-8-validate", null],\ + ["bufferutil", null],\ + ["utf-8-validate", null]\ + ],\ + "packagePeers": [\ + "@types/bufferutil",\ + "@types/utf-8-validate",\ + "bufferutil",\ + "utf-8-validate"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-7b988da0bc/0/cache/ws-npm-8.14.2-b339ac47a2-815ff01d9b.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2"],\ ["@types/bufferutil", null],\ ["@types/utf-8-validate", null],\ ["bufferutil", null],\ diff --git a/yarn.lock b/yarn.lock index b38b3ec..b0f17d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,8 +44,8 @@ __metadata: linkType: hard "@discordjs/rest@npm:^2.1.0": - version: 2.1.0 - resolution: "@discordjs/rest@npm:2.1.0" + version: 2.2.0 + resolution: "@discordjs/rest@npm:2.2.0" dependencies: "@discordjs/collection": "npm:^2.0.0" "@discordjs/util": "npm:^1.0.2" @@ -56,7 +56,7 @@ __metadata: magic-bytes.js: "npm:^1.5.0" tslib: "npm:^2.6.2" undici: "npm:5.27.2" - checksum: 10/3e3fbdaac6ef5f614e3d4213244ae4e293c456dc1c5d4d3d41cd67c33ce32907dc6c54a4d0c89bccd3e910dbf348e7b75b177deea24386208523d9f2498376cf + checksum: 10/213245a3137b6cf1636d904fd105300df9b0e352c28f0e96323046dd8c62da59f4d60503e82b8a500bc07398054f2f479bff5c99d2fa66cf1cef77f4a98e0f98 languageName: node linkType: hard @@ -85,9 +85,9 @@ __metadata: linkType: hard "@fastify/busboy@npm:^2.0.0": - version: 2.0.0 - resolution: "@fastify/busboy@npm:2.0.0" - checksum: 10/6a2366d06b82aac1069b8323792f76f7a8fca02533cb3745fcd218d8f0f953dc4dbef057287237414658cd43f8dede0846ef33398999e3dbe54ddaeefec71c0a + version: 2.1.0 + resolution: "@fastify/busboy@npm:2.1.0" + checksum: 10/f22c1e5c52dc350ddf9ba8be9f87b48d3ea5af00a37fd0a0d1e3e4b37f94d96763e514c68a350c7f570260fdd2f08b55ee090cdd879f92a03249eb0e3fd19113 languageName: node linkType: hard @@ -214,64 +214,56 @@ __metadata: linkType: hard "@octokit/core@npm:^5.0.0": - version: 5.0.0 - resolution: "@octokit/core@npm:5.0.0" + version: 5.1.0 + resolution: "@octokit/core@npm:5.1.0" dependencies: "@octokit/auth-token": "npm:^4.0.0" "@octokit/graphql": "npm:^7.0.0" "@octokit/request": "npm:^8.0.2" "@octokit/request-error": "npm:^5.0.0" - "@octokit/types": "npm:^11.0.0" + "@octokit/types": "npm:^12.0.0" before-after-hook: "npm:^2.2.0" universal-user-agent: "npm:^6.0.0" - checksum: 10/e12bec95c7fc2d286774c8749a67c46a6256ff95a8235294084dccc5a37418911ce7ee2cd72071cf5b333cf2148b0e480665fe09c1b5ba93299408ff3b821e43 + checksum: 10/8062e86a3088f24a691b36d2c3e9f33e864cefcb5f544b0633650358bce280708b111551cbe855ecf6a5190d6fc4fec1220117c329a2c27525940dd97b868614 languageName: node linkType: hard "@octokit/endpoint@npm:^9.0.0": - version: 9.0.0 - resolution: "@octokit/endpoint@npm:9.0.0" + version: 9.0.4 + resolution: "@octokit/endpoint@npm:9.0.4" dependencies: - "@octokit/types": "npm:^11.0.0" - is-plain-object: "npm:^5.0.0" + "@octokit/types": "npm:^12.0.0" universal-user-agent: "npm:^6.0.0" - checksum: 10/ec160fe1a0d5244ef380b1f4fce9586bcf82ee5f24f92f128aec898255eb148620f5622fcd0dc876678b0f84dc8e7210469108afc150c0080916b7c16fbfe49e + checksum: 10/7df35c96f2b5628fe5b3f44a72614be9b439779c06b4dd1bb72283b3cb2ea53e59e1f9a108798efe5404b6856f4380a4c5be12d93255d854f0683cd6e22f3a27 languageName: node linkType: hard "@octokit/graphql@npm:^7.0.0": - version: 7.0.1 - resolution: "@octokit/graphql@npm:7.0.1" + version: 7.0.2 + resolution: "@octokit/graphql@npm:7.0.2" dependencies: "@octokit/request": "npm:^8.0.1" - "@octokit/types": "npm:^11.0.0" + "@octokit/types": "npm:^12.0.0" universal-user-agent: "npm:^6.0.0" - checksum: 10/1c62aa5cfa71bcc5f3bc6159aaa0b26af84cfe2c0eca6edbf60ea9b49df95eaa24e7be4a60d7f85de6b9f6859345c9e3a3296ff45d6e817cf604a4028eb5d44d + checksum: 10/f5dcc51fed5304f65dab83fcea4c2a569107d3b71e8d084199dc44f0d0cfc852c9e1f341b06ae66601f9da4af3aad416b0c62dcd0567ac7568f072d8d90d502e languageName: node linkType: hard -"@octokit/openapi-types@npm:^18.0.0": - version: 18.0.0 - resolution: "@octokit/openapi-types@npm:18.0.0" - checksum: 10/5d4aa6abab9b67585bc8496afca4c6377ea1ffccfa17acacd325cefb5fd825799e1d292b498b34023093088b65571c201f4f7e3ba1d3248352f247a1801f6570 - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^19.0.0": - version: 19.0.0 - resolution: "@octokit/openapi-types@npm:19.0.0" - checksum: 10/87962fee2e9981d3e81c6786a6c0663095cde1cf7e5ef7d3fa5f6fa89f9b625f70cdf99d3dedcb0755b66926c3521a9e4c8ac9ece4fcf29a04820adba7325099 +"@octokit/openapi-types@npm:^19.1.0": + version: 19.1.0 + resolution: "@octokit/openapi-types@npm:19.1.0" + checksum: 10/3abedc09baa91bb4de00a2b82bf519401c2b6388913b7caa98541002c9e9612eba8256926323b1e40782ac700309a3373bb8c13520af325cef1accc40cb4566b languageName: node linkType: hard "@octokit/plugin-paginate-rest@npm:^9.0.0": - version: 9.0.0 - resolution: "@octokit/plugin-paginate-rest@npm:9.0.0" + version: 9.1.5 + resolution: "@octokit/plugin-paginate-rest@npm:9.1.5" dependencies: - "@octokit/types": "npm:^12.0.0" + "@octokit/types": "npm:^12.4.0" peerDependencies: "@octokit/core": ">=5" - checksum: 10/1fcf2358d260f91ac995ceec725584fadda3a17cd895459942c78aa69c43969d1bb79e80b1cce80870dc28d018f1eaa39aeb1d4f1076e90b8b65378675fa9e02 + checksum: 10/5f1793ebebc9e2feaf8574beb2308b6fe9d0fec69d3fc3c93ed7ce8083d34e7ae7452121bd88b27e9ba91da29d648f8ffbf19d6f02787f8273a8bb0e3fbc2b9f languageName: node linkType: hard @@ -285,37 +277,36 @@ __metadata: linkType: hard "@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": - version: 10.0.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.0.0" + version: 10.3.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.3.0" dependencies: - "@octokit/types": "npm:^12.0.0" + "@octokit/types": "npm:^12.4.0" peerDependencies: "@octokit/core": ">=5" - checksum: 10/2984df2c818624d393ea4ebbb9fb79c2f44e34facdc213221a8f6c41320dff50cd5cabb17af361c2b2a497fdec48a673abaec667196a77845cdb2b2d3e8426b3 + checksum: 10/be202aca31a513e9e06eda680ae761d05a944a2900523c2041a8ac6bc43e7a5bab0f76bcba09ef96ed48e3b1fabe4104a174b2f839dfb7a2a6f3d632023b4c6a languageName: node linkType: hard "@octokit/request-error@npm:^5.0.0": - version: 5.0.0 - resolution: "@octokit/request-error@npm:5.0.0" + version: 5.0.1 + resolution: "@octokit/request-error@npm:5.0.1" dependencies: - "@octokit/types": "npm:^11.0.0" + "@octokit/types": "npm:^12.0.0" deprecation: "npm:^2.0.0" once: "npm:^1.4.0" - checksum: 10/de7ed2934035650c67b619130c407c6eec7fc80c9c47c27131feaace76fa01c64e35338cb19d4b3838f5f53f3d174a5f0933e1dc7921b952411b0457b599dc71 + checksum: 10/a21a4614c46cb173e4ba73fa048576204f1ddc541dee3e7c938ef36088566e3b25e04ca1f96f375ec2e3cc29b7ba970b3b078a89a20bc50cdcdbed879db94573 languageName: node linkType: hard "@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": - version: 8.1.1 - resolution: "@octokit/request@npm:8.1.1" + version: 8.2.0 + resolution: "@octokit/request@npm:8.2.0" dependencies: "@octokit/endpoint": "npm:^9.0.0" "@octokit/request-error": "npm:^5.0.0" - "@octokit/types": "npm:^11.1.0" - is-plain-object: "npm:^5.0.0" + "@octokit/types": "npm:^12.0.0" universal-user-agent: "npm:^6.0.0" - checksum: 10/62fd236ef88de3bc7ecb652414751eb3934f589727e938736cb1b76545384d6db225abeae12371a1d6017bff2ae82948bf529af6b746131bdb3a270bfb177ac1 + checksum: 10/553ba8b99ea6fe2d3b66b2be6df06f7fe62a0b81e441d334ef25388cf0fcdab4a888fcfe2c1fb1ada262c233bcf7169da3ad5e03f024060ea5723f7753b0de3e languageName: node linkType: hard @@ -331,21 +322,12 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^11.0.0, @octokit/types@npm:^11.1.0": - version: 11.1.0 - resolution: "@octokit/types@npm:11.1.0" +"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.4.0": + version: 12.5.0 + resolution: "@octokit/types@npm:12.5.0" dependencies: - "@octokit/openapi-types": "npm:^18.0.0" - checksum: 10/ebd510c14c4b26df127b76b4ed6b4b9a97cd6ec7a047532060f8346bfb29a68414c7189ee2b98f5386bcd7fa1a8c29af8e8460e5a7373cf6bf38a11775c8e26d - languageName: node - linkType: hard - -"@octokit/types@npm:^12.0.0": - version: 12.0.0 - resolution: "@octokit/types@npm:12.0.0" - dependencies: - "@octokit/openapi-types": "npm:^19.0.0" - checksum: 10/68faa94efaa132d96a4f0d68a82f74c0d6cda2bb644007d9fa5c6d3a5a724981dd72e82ce0d7631df1b04502c470fce311b39becb170e03382521a31ad2aecfa + "@octokit/openapi-types": "npm:^19.1.0" + checksum: 10/a2c8e736e368c781b9389a41fe4ec2cf81563674cf8d74bcc28bf1901dfc4b0c092101c7b333309933b8c14a5a3d1de9ca7eaec93451c41b708b4936e0960894 languageName: node linkType: hard @@ -406,29 +388,36 @@ __metadata: linkType: hard "@sapphire/async-queue@npm:^1.5.0": - version: 1.5.0 - resolution: "@sapphire/async-queue@npm:1.5.0" - checksum: 10/d22feb63a226486b4a463df145e7e8a94d7149b0772d485e6d315348c8dd4318c7a1724b0961cc023cae4070c0d7f73cbb914310ccbee330007c9bb54a04ae5f + version: 1.5.2 + resolution: "@sapphire/async-queue@npm:1.5.2" + checksum: 10/55e0785997ec34479509c134a3ffc5e9dc0c183b56b1cb95b0505539972a538b0bff8922c1d051ebeee227b000f79f1f499f1897229a117644833375093aa7b3 languageName: node linkType: hard "@sapphire/shapeshift@npm:^3.9.3": - version: 3.9.3 - resolution: "@sapphire/shapeshift@npm:3.9.3" + version: 3.9.6 + resolution: "@sapphire/shapeshift@npm:3.9.6" dependencies: fast-deep-equal: "npm:^3.1.3" lodash: "npm:^4.17.21" - checksum: 10/9fce0135d4b6b2acbab83af078dcc5d9780c83c2cea9094178f19128d78ca7e7fa0d90f5b1c4ed4ab345194eb138415e4c902a1014eff2c5d68b77e75f5774e9 + checksum: 10/9d7ab3b3341514363598e48666ec32ec631e0f3b408eb851d4397e479f93c70a471610949d30b9450beaf212df721ffa7c4da3ed3d0fbaffebcb1dfe73ab3f4c languageName: node linkType: hard -"@sapphire/snowflake@npm:3.5.1, @sapphire/snowflake@npm:^3.5.1": +"@sapphire/snowflake@npm:3.5.1": version: 3.5.1 resolution: "@sapphire/snowflake@npm:3.5.1" checksum: 10/12d09f0e4f52f86bdc330d70e4a3042f212d787c2d40e7bc41769218c8d08649786109aa78d777262a658a8f29f12ef5bacc6188d46fd1dd35a4e1f29d378723 languageName: node linkType: hard +"@sapphire/snowflake@npm:^3.5.1": + version: 3.5.3 + resolution: "@sapphire/snowflake@npm:3.5.3" + checksum: 10/f306626f76a6e9bdc7de9130c1baf7ddcd8681d7d03b2ab6f2404081f71c94085d4001e8a62ae2c2372b3b54d2d52ec21d43695f2c73fb101caabc2d3bf524aa + languageName: node + linkType: hard + "@toast/tokenservice-client@npm:1.0.12": version: 1.0.12 resolution: "@toast/tokenservice-client@npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz" @@ -464,9 +453,9 @@ __metadata: linkType: hard "@types/lodash@npm:*": - version: 4.14.201 - resolution: "@types/lodash@npm:4.14.201" - checksum: 10/9b56a2a650880045343055e63c7ad73df97188453aa3de8375dc97670748d467f6f4a3b59d689f4ae45dd947d4c0b3ecd873763910336238736056dce20cfe56 + version: 4.14.202 + resolution: "@types/lodash@npm:4.14.202" + checksum: 10/1bb9760a5b1dda120132c4b987330d67979c95dbc22612678682cd61b00302e190f4207228f3728580059cdab5582362262e3819aea59960c1017bd2b9fb26f6 languageName: node linkType: hard @@ -517,13 +506,13 @@ __metadata: linkType: hard "@types/validator@npm:*, @types/validator@npm:^13.7.17": - version: 13.11.6 - resolution: "@types/validator@npm:13.11.6" - checksum: 10/65991ba60029361b279009efb16cf08a576002742c3a5b84e50e19f74083dafb51cdc697ad54e94befb298c46a468b554844552b9ce78663a4cf7e2030a907f6 + version: 13.11.9 + resolution: "@types/validator@npm:13.11.9" + checksum: 10/2d397c69293cc726e0cf1b4c74c563ca4e459b00f216f3ff0ac184c9648103be27169e8c67f85be9c6e7a3fcbb149c6add66a2547b185a1b25aa79e4b61261bd languageName: node linkType: hard -"@types/ws@npm:8.5.9, @types/ws@npm:^8.5.9": +"@types/ws@npm:8.5.9": version: 8.5.9 resolution: "@types/ws@npm:8.5.9" dependencies: @@ -532,10 +521,19 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^8.5.9": + version: 8.5.10 + resolution: "@types/ws@npm:8.5.10" + dependencies: + "@types/node": "npm:*" + checksum: 10/9b414dc5e0b6c6f1ea4b1635b3568c58707357f68076df9e7cd33194747b7d1716d5189c0dbdd68c8d2521b148e88184cf881bac7429eb0e5c989b001539ed31 + languageName: node + linkType: hard + "@vladfrangu/async_event_emitter@npm:^2.2.2": - version: 2.2.2 - resolution: "@vladfrangu/async_event_emitter@npm:2.2.2" - checksum: 10/1c1fcee04aecfa3cceb05e9bcd3a8aae053ce0512e79e7f878a5d2b8458a926aa3e6da553be0a431e7acb58d9aec3df435a845653a642b864c6b67e2a44ec40c + version: 2.2.4 + resolution: "@vladfrangu/async_event_emitter@npm:2.2.4" + checksum: 10/06de49380dc47fe712768b0e49286e54a114de962da36ef021d4b03fcff7ec8338b46179d8b3eba4c0e02b2926bbf1e6ea0f9c6c08f6f081361947a7f6719ce9 languageName: node linkType: hard @@ -690,13 +688,6 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:^5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c - languageName: node - linkType: hard - "lodash.snakecase@npm:4.1.1": version: 4.1.1 resolution: "lodash.snakecase@npm:4.1.1" @@ -721,25 +712,25 @@ __metadata: linkType: hard "magic-bytes.js@npm:^1.5.0": - version: 1.5.0 - resolution: "magic-bytes.js@npm:1.5.0" - checksum: 10/ffb86aec8f4d05446355433392f5a67882c9cbcd46bc1d53ece4f46f73938ec16a35ad4d53decda661185c92e3007a94243bf48809bc73f111a8a28b63eeee19 + version: 1.8.0 + resolution: "magic-bytes.js@npm:1.8.0" + checksum: 10/781c932f649f99f334de61d18cd8dd36a0613f8c524756dcfea657d34e114161ef704ae9bf04287f0c1a5341c1a9bd766907199dfb5e916d1e336de9ff103544 languageName: node linkType: hard "moment-timezone@npm:^0.5.43": - version: 0.5.43 - resolution: "moment-timezone@npm:0.5.43" + version: 0.5.45 + resolution: "moment-timezone@npm:0.5.45" dependencies: moment: "npm:^2.29.4" - checksum: 10/f8b66f8562960d6c2ec90ea7e2ca8c10bd5f5cf5ced2eaaac83deb1011b145d0154e8d77018cf5e913d489898a343122a3d815768809653ab039306dce1db1eb + checksum: 10/45e3793d44bea8e826c934a335ebf0b92c6d6dae562fdb59d8c45a16d5c11de4d6692b5fa7eebca969881f06b81b55f8535883bfbc727b597d601709fa5a2bb2 languageName: node linkType: hard "moment@npm:^2.29.4": - version: 2.29.4 - resolution: "moment@npm:2.29.4" - checksum: 10/157c5af5a0ba8196e577bc67feb583303191d21ba1f7f2af30b3b40d4c63a64d505ba402be2a1454832082fac6be69db1e0d186c3279dae191e6634b0c33705c + version: 2.30.1 + resolution: "moment@npm:2.30.1" + checksum: 10/ae42d876d4ec831ef66110bdc302c0657c664991e45cf2afffc4b0f6cd6d251dde11375c982a5c0564ccc0fa593fc564576ddceb8c8845e87c15f58aa6baca69 languageName: node linkType: hard @@ -856,17 +847,17 @@ __metadata: linkType: hard "pg-types@npm:^4.0.1": - version: 4.0.1 - resolution: "pg-types@npm:4.0.1" + version: 4.0.2 + resolution: "pg-types@npm:4.0.2" dependencies: pg-int8: "npm:1.0.1" pg-numeric: "npm:1.0.2" postgres-array: "npm:~3.0.1" postgres-bytea: "npm:~3.0.0" - postgres-date: "npm:~2.0.1" + postgres-date: "npm:~2.1.0" postgres-interval: "npm:^3.0.0" postgres-range: "npm:^1.1.1" - checksum: 10/2c686ef361856ff9695a40cf34d7bb59bcf2218bd1f121d7fc8b77a75cc4106c09519e9520a82aac8fce4540dec81f695458b8e43bfc420ba74eb9b5005b5619 + checksum: 10/f4d529da864d4169afab300eb8629a84a6a06aa70c471160a7e46c34b6d4dd0e61cbd57d10d98c3a36e98f474e2ff85d41e4b1c953a321146b4bae09372c58d3 languageName: node linkType: hard @@ -940,10 +931,10 @@ __metadata: languageName: node linkType: hard -"postgres-date@npm:~2.0.1": - version: 2.0.1 - resolution: "postgres-date@npm:2.0.1" - checksum: 10/908eacec35faf9b6fa4248074e7c8db0fc4ac6a2e0a00eacef9fb9cf44a25fc6f100af7cda09f5d89d076c87923b59e940a309560d86aded4753985c97255be1 +"postgres-date@npm:~2.1.0": + version: 2.1.0 + resolution: "postgres-date@npm:2.1.0" + checksum: 10/faa1c70dfad0e35bd4aa7cb6088fcd4e4f039aa25dc42150129178fc2a0baa7e37eca0bf18e4142a40dea18d1955459b08783f78ec487ef27b4b93ab5e854597 languageName: node linkType: hard @@ -964,9 +955,9 @@ __metadata: linkType: hard "postgres-range@npm:^1.1.1": - version: 1.1.3 - resolution: "postgres-range@npm:1.1.3" - checksum: 10/356a46d97eab301cca0dbf7a65be6f68c4a7e33d304909e5ca840038b1210390e1d33fcc3b566c42020f7b97e9de189bc5286d1ec8d7ba2445ed3377c576ce9e + version: 1.1.4 + resolution: "postgres-range@npm:1.1.4" + checksum: 10/035759f17b44bf9ba7e71a30402ed2ca1e2b7fabb3ad794b08169a5b453d38d06905a6dfb51fe41a3f6d9fac4e183dac9e769b95053053db933be16785edce1f languageName: node linkType: hard @@ -992,13 +983,13 @@ __metadata: linkType: hard "semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" + version: 7.6.0 + resolution: "semver@npm:7.6.0" dependencies: lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 10/985dec0d372370229a262c737063860fabd4a1c730662c1ea3200a2f649117761a42184c96df62a0e885e76fbd5dace41087d6c1ac0351b13c0df5d6bcb1b5ac + checksum: 10/1b41018df2d8aca5a1db4729985e8e20428c650daea60fcd16e926e9383217d00f574fab92d79612771884a98d2ee2a1973f49d630829a8d54d6570defe62535 languageName: node linkType: hard @@ -1161,9 +1152,9 @@ __metadata: linkType: hard "universal-user-agent@npm:^6.0.0": - version: 6.0.0 - resolution: "universal-user-agent@npm:6.0.0" - checksum: 10/5092bbc80dd0d583cef0b62c17df0043193b74f425112ea6c1f69bc5eda21eeec7a08d8c4f793a277eb2202ffe9b44bec852fa3faff971234cd209874d1b79ef + version: 6.0.1 + resolution: "universal-user-agent@npm:6.0.1" + checksum: 10/fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c languageName: node linkType: hard @@ -1199,7 +1190,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.14.2, ws@npm:^8.14.2": +"ws@npm:8.14.2": version: 8.14.2 resolution: "ws@npm:8.14.2" peerDependencies: @@ -1214,6 +1205,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.14.2": + version: 8.16.0 + resolution: "ws@npm:8.16.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10/7c511c59e979bd37b63c3aea4a8e4d4163204f00bd5633c053b05ed67835481995f61a523b0ad2b603566f9a89b34cb4965cb9fab9649fbfebd8f740cea57f17 + languageName: node + linkType: hard + "xtend@npm:^4.0.0": version: 4.0.2 resolution: "xtend@npm:4.0.2" From b3ff2d0b192fd0bed9f752814264b46525b7c8eb Mon Sep 17 00:00:00 2001 From: toast-ts <96593068+toast-ts@users.noreply.github.com> Date: Sun, 18 Feb 2024 08:35:15 +1100 Subject: [PATCH 10/10] Prevent databases from being killed during update --- startDocker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/startDocker.sh b/startDocker.sh index d09ebfd..6957c61 100755 --- a/startDocker.sh +++ b/startDocker.sh @@ -2,6 +2,6 @@ docker compose -f docker-compose.bot.yml down && \ docker compose -f docker-compose.bot.yml build && \ -docker compose -f docker-compose.bot.yml up -d --remove-orphans +docker compose -f docker-compose.bot.yml up -d exit 0