From 295ed2b9bcd569b5a3646a20bc8b89fb4173a3ac Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Mon, 11 Dec 2023 11:37:18 +0700 Subject: [PATCH 01/20] New ClearSlash file --- clearSlash.mjs | 121 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 112 insertions(+), 9 deletions(-) diff --git a/clearSlash.mjs b/clearSlash.mjs index d5200165..64c1b0fa 100644 --- a/clearSlash.mjs +++ b/clearSlash.mjs @@ -1,13 +1,116 @@ import { REST } from "discord.js"; import { Routes } from "discord-api-types/v10"; -import { ConfigDataService } from "./dist/utils/config.js"; +import fs from "fs"; +import _ from "lodash"; +import { config } from "dotenv"; +import { load } from "js-yaml"; +config(); -(async () => { - const configData = new ConfigDataService().data; - const rest = new REST({ version: "10" }).setToken(configData.bot.TOKEN); - const client = await rest.get(Routes.user()); +class ClearSlash { + constructor() { + this.execute() + } - rest.put(Routes.applicationCommands(client.id), { body: [] }) - .then(() => console.log('Successfully deleted all application commands.')) - .catch(console.error); -})(); \ No newline at end of file + async execute() { + const configData = this.ConfigData + const rest = new REST({ version: "10" }).setToken(configData.bot.TOKEN); + const client = await rest.get(Routes.user()); + + rest.put(Routes.applicationCommands(client.id), { body: [] }) + .then(() => console.log('Successfully deleted all application commands.')) + .catch(console.error); + } + + get ConfigData() { + const yaml_files = this.YAMLPraseServices("./app.yml"); + + let doc; + + const res = load(yaml_files); + doc = res; + if (process.env.DOCKER_COMPOSE_MODE) { + // Change lavalink data + const lavalink_changedata = doc.lavalink.NODES[0]; + lavalink_changedata.url = String(process.env.NODE_URL); + lavalink_changedata.name = String(process.env.NODE_URL); + lavalink_changedata.auth = String(process.env.NODE_AUTH); + lavalink_changedata.secure = false; + + // Change bot data + const bot_chagedata = doc.bot; + bot_chagedata.TOKEN = String(process.env.TOKEN); + + // Change db data + const db_chnagedata = doc.features.DATABASE; + if (db_chnagedata.driver == "mongodb") { + db_chnagedata.config.uri = String(process.env.MONGO_URI); + } + } + + return doc; + } + + YAMLPraseServices(path) { + const boolean = ["true", "false", "null", "undefined"]; + + const line = this.readline(path); + const res_array = []; + + for (let i = 0; i < line.length; i++) { + var element = line[i]; + var re = /\${(.*?)\}/; + + if (re.exec(element) !== null || re.exec(element)) { + const extract = re.exec(element); + if ( + process.env[extract[1]] && + boolean.includes(process.env[extract[1]].trim().toLowerCase()) + ) { + const boolean_prase_res = + this.parseBoolean(process.env[extract[1]]); + res_array.push( + _.replace(element, extract[0], String(boolean_prase_res)) + ); + } else { + res_array.push( + _.replace(element, extract[0], process.env[extract[1]]) + ); + } + } else { + res_array.push(element); + } + } + + return res_array.join("\r\n"); + } + + parseBoolean(value) { + if (typeof value === "string") { + value = value.trim().toLowerCase(); + } + switch (value) { + case "true": + return true; + case "null": + return "null"; + case "undefined": + return undefined; + default: + return false; + } + } + + readline(path) { + const res_array = []; + + const res = fs.readFileSync(path, "utf-8"); + + res.split(/\r?\n/).forEach(function (line) { + res_array.push(line); + }); + + return res_array; + } +} + +new ClearSlash() \ No newline at end of file From d53b6b3b70450d081b692e5823c6230a4c28250d Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 13 Dec 2023 16:28:09 +0700 Subject: [PATCH 02/20] 247 features drop, ay music when restart [3.1.1] --- src/commands/prefix/Music/247.ts | 26 ++++++ src/commands/prefix/Music/Loop.ts | 10 +++ src/commands/prefix/Music/LoopQueue.ts | 20 +++-- src/commands/prefix/Music/Nowplaying.ts | 2 +- src/commands/prefix/Music/Volume.ts | 9 ++ src/commands/prefix/Utils/Status.ts | 96 ++++++++++------------ src/commands/slash/Music/247.ts | 37 +++++++++ src/commands/slash/Music/Loop.ts | 10 +++ src/commands/slash/Music/LoopQueue.ts | 14 +++- src/commands/slash/Music/Nowplaying.ts | 2 +- src/commands/slash/Music/Volume.ts | 8 ++ src/commands/slash/Playlist/Info.ts | 1 - src/commands/slash/Utils/Setup.ts | 18 ++-- src/commands/slash/Utils/Status.ts | 92 +++++++++------------ src/database/schema/AutoReconnect.ts | 8 ++ src/database/setup/client.ts | 93 ++++++++++----------- src/database/setup/lavalink.ts | 46 ++++++++++- src/events/player/playerDestroy.ts | 11 +++ src/events/player/playerEmpty.ts | 3 +- src/events/player/playerStart.ts | 58 +++++++++++-- src/handlers/Player/ButtonCommands/Loop.ts | 15 ++++ src/languages/en/noplayer.yaml | 2 + src/languages/th/noplayer.yaml | 2 + src/languages/vi/noplayer.yaml | 2 + src/manifest.xml | 2 +- 25 files changed, 400 insertions(+), 187 deletions(-) diff --git a/src/commands/prefix/Music/247.ts b/src/commands/prefix/Music/247.ts index 3ea4ccb3..b2994da5 100644 --- a/src/commands/prefix/Music/247.ts +++ b/src/commands/prefix/Music/247.ts @@ -1,6 +1,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; export default class implements PrefixCommand { name = "247"; @@ -63,10 +64,27 @@ export default class implements PrefixCommand { .setColor(client.color); msg.edit({ content: " ", embeds: [on] }); } else if (!data) { + if (!player.queue.current || player.queue.current == null) + return msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_music")}` + ) + .setColor(client.color), + ], + }); + await client.db.autoreconnect.set(`${message.guild!.id}`, { guild: player.guildId, text: player.textId, voice: player.voiceId, + current: player.queue.current?.uri, + config: { + loop: player.loop, + volume: player.volume, + }, + queue: player.queue.length !== 0 ? this.queueUri(player) : [], }); const on = new EmbedBuilder() @@ -75,4 +93,12 @@ export default class implements PrefixCommand { return msg.edit({ content: " ", embeds: [on] }); } } + + queueUri(player: KazagumoPlayer) { + const res = []; + for (let data of player.queue) { + res.push(data.uri); + } + return res; + } } diff --git a/src/commands/prefix/Music/Loop.ts b/src/commands/prefix/Music/Loop.ts index bea3dc6a..e4173255 100644 --- a/src/commands/prefix/Music/Loop.ts +++ b/src/commands/prefix/Music/Loop.ts @@ -2,6 +2,7 @@ import { EmbedBuilder, Message, PermissionsBitField } from "discord.js"; import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; export default class implements PrefixCommand { name = "loop"; @@ -68,22 +69,31 @@ export default class implements PrefixCommand { if (mode == "track") { await player.setLoop(KazagumoLoop.track); + this.setLoop247(client, player, String(KazagumoLoop.track)); const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_current")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped] }); } else if (mode == "queue") { await player.setLoop(KazagumoLoop.queue); + this.setLoop247(client, player, String(KazagumoLoop.queue)); const looped_queue = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_all")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped_queue] }); } else if (mode === "none") { await player.setLoop(KazagumoLoop.none); + this.setLoop247(client, player, String(KazagumoLoop.none)); const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "unloop_all")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped] }); } } + + async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); + } + } } diff --git a/src/commands/prefix/Music/LoopQueue.ts b/src/commands/prefix/Music/LoopQueue.ts index 58a67b6a..0defe83e 100644 --- a/src/commands/prefix/Music/LoopQueue.ts +++ b/src/commands/prefix/Music/LoopQueue.ts @@ -1,7 +1,8 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoLoopMode } from "../../../@types/Lavalink.js"; +import { KazagumoLoop, KazagumoLoopMode } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; // Main code export default class implements PrefixCommand { @@ -20,11 +21,6 @@ export default class implements PrefixCommand { language: string, prefix: string ) { - const loop_mode = { - none: "none", - track: "track", - queue: "queue", - }; const msg = await message.reply({ embeds: [ new EmbedBuilder() @@ -62,7 +58,8 @@ export default class implements PrefixCommand { }); if (player.loop === "queue") { - await player.setLoop(loop_mode.none as KazagumoLoopMode); + await player.setLoop(KazagumoLoop.none); + this.setLoop247(client, player, String(KazagumoLoop.none)); const unloopall = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "unloopall")}`) @@ -70,7 +67,8 @@ export default class implements PrefixCommand { return msg.edit({ content: " ", embeds: [unloopall] }); } else if (player.loop === "none") { - await player.setLoop(loop_mode.queue as KazagumoLoopMode); + await player.setLoop(KazagumoLoop.queue); + this.setLoop247(client, player, String(KazagumoLoop.queue)); const loopall = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loopall")}`) @@ -79,4 +77,10 @@ export default class implements PrefixCommand { return msg.edit({ content: " ", embeds: [loopall] }); } } + + async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); + } + } } diff --git a/src/commands/prefix/Music/Nowplaying.ts b/src/commands/prefix/Music/Nowplaying.ts index 306c2234..96002eb0 100644 --- a/src/commands/prefix/Music/Nowplaying.ts +++ b/src/commands/prefix/Music/Nowplaying.ts @@ -68,7 +68,7 @@ export default class implements PrefixCommand { }, { name: `${client.i18n.get(language, "player", "volume_title")}`, - value: `${player.volume}%`, + value: `${player.volume * 100}%`, inline: true, }, { diff --git a/src/commands/prefix/Music/Volume.ts b/src/commands/prefix/Music/Volume.ts index 4b3647b6..ce76322c 100644 --- a/src/commands/prefix/Music/Volume.ts +++ b/src/commands/prefix/Music/Volume.ts @@ -1,6 +1,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; // Main code export default class implements PrefixCommand { @@ -92,6 +93,8 @@ export default class implements PrefixCommand { await player.setVolume(Number(value)); + this.setVol247(client, player, Number(value)); + const changevol = new EmbedBuilder() .setDescription( `${client.i18n.get(language, "music", "volume_msg", { @@ -102,4 +105,10 @@ export default class implements PrefixCommand { msg.edit({ content: " ", embeds: [changevol] }); } + + async setVol247(client: Manager, player: KazagumoPlayer, vol: number) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.volume`, vol); + } + } } diff --git a/src/commands/prefix/Utils/Status.ts b/src/commands/prefix/Utils/Status.ts index 422a3102..486b652b 100644 --- a/src/commands/prefix/Utils/Status.ts +++ b/src/commands/prefix/Utils/Status.ts @@ -1,11 +1,7 @@ -import { - EmbedBuilder, - ChannelType, - version, - Message, - TextChannel, -} from "discord.js"; +import { EmbedBuilder, ChannelType, version, Message } from "discord.js"; import ms from "pretty-ms"; +import os from "os"; +import { stripIndents } from "common-tags"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; @@ -43,7 +39,7 @@ export default class implements PrefixCommand { if (choose === "create") { const StatusChannel = await client.db.status.get(`${message.guild!.id}`); - if (StatusChannel!.enable == true) + if (StatusChannel !== null && StatusChannel!.enable == true) return message.reply({ embeds: [ new EmbedBuilder() @@ -65,52 +61,8 @@ export default class implements PrefixCommand { parent: parent.id, }); - const info = new EmbedBuilder() - .setTitle(client.user!.tag + " Status") - .addFields([ - { - name: "Uptime", - value: `\`\`\`${ms(client.uptime!)}\`\`\``, - inline: true, - }, - { - name: "WebSocket Ping", - value: `\`\`\`${client.ws.ping}ms\`\`\``, - inline: true, - }, - { - name: "Memory", - value: `\`\`\`${(process.memoryUsage().rss / 1024 / 1024).toFixed( - 2 - )} MB RSS\n${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed( - 2 - )} MB Heap\`\`\``, - inline: true, - }, - { - name: "Guild Count", - value: `\`\`\`${client.guilds.cache.size} guilds\`\`\``, - inline: true, - }, - { - name: "User Count", - value: `\`\`\`${client.users.cache.size} users\`\`\``, - inline: true, - }, - { - name: "Node", - value: `\`\`\`${process.version} on ${process.platform} ${process.arch}\`\`\``, - inline: true, - }, - { - name: "Cached Data", - value: `\`\`\`${client.users.cache.size} users\n${client.emojis.cache.size} emojis\`\`\``, - inline: true, - }, - { name: "Discord.js", value: `\`\`\`${version}\`\`\``, inline: true }, - ]) - .setTimestamp() - .setColor(client.color); + const info = this.infoChannelembed(client); + const channel_msg = await textChannel.send({ content: ``, embeds: [info], @@ -183,4 +135,40 @@ export default class implements PrefixCommand { await client.db.status.set(`${message.guild!.id}`, deleted_data); } } + + infoChannelembed(client: Manager) { + const total = os.totalmem() / 1024 / 1024; + const used = process.memoryUsage().rss / 1024 / 1024; + + const hostInfo = stripIndents`\`\`\` + - OS: ${os.type()} ${os.release()} (${os.arch()}) + - CPU: ${os.cpus()[0].model} + - Uptime: ${ms(client.uptime as number)} + - RAM: ${(total / 1024).toFixed(2)} GB + - Memory Usage: ${used.toFixed(2)}/${total.toFixed(2)} (MB) + - Node.js: ${process.version} + \`\`\``; + + const botInfo = stripIndents`\`\`\` + - Codename: ${client.metadata.codename} + - Bot version: ${client.metadata.version} + - Autofix version: ${client.metadata.autofix} + - Discord.js: ${version} + - WebSocket Ping: ${client.ws.ping}ms + - Guild Count: ${client.guilds.cache.size} + - User count: ${client.guilds.cache.reduce((a, b) => a + b.memberCount, 0)} + \`\`\``; + + return new EmbedBuilder() + .setAuthor({ + name: client.user!.tag + " Status", + iconURL: String(client.user!.displayAvatarURL({ size: 2048 })), + }) + .setColor(client.color) + .addFields( + { name: "Host info", value: hostInfo }, + { name: "Bot info", value: botInfo } + ) + .setTimestamp(); + } } diff --git a/src/commands/slash/Music/247.ts b/src/commands/slash/Music/247.ts index ad4da2bf..bfc72d8f 100644 --- a/src/commands/slash/Music/247.ts +++ b/src/commands/slash/Music/247.ts @@ -5,6 +5,7 @@ import { CommandOptionInterface, SlashCommand, } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; export default class implements SlashCommand { name = ["247"]; @@ -56,6 +57,17 @@ export default class implements SlashCommand { ], }); + if (!player.queue.current || player.queue.current == null) + return msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_music")}` + ) + .setColor(client.color), + ], + }); + let data = await client.db.autoreconnect.get(`${interaction.guild!.id}`); if (data) { @@ -65,10 +77,27 @@ export default class implements SlashCommand { .setColor(client.color); msg.edit({ content: " ", embeds: [on] }); } else if (!data) { + if (!player.queue.current || player.queue.current == null) + return msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_music")}` + ) + .setColor(client.color), + ], + }); + await client.db.autoreconnect.set(`${interaction.guild!.id}`, { guild: player.guildId, text: player.textId, voice: player.voiceId, + current: player.queue.current?.uri, + config: { + loop: player.loop, + volume: player.volume, + }, + queue: player.queue.length !== 0 ? this.queueUri(player) : [], }); const on = new EmbedBuilder() @@ -77,4 +106,12 @@ export default class implements SlashCommand { return msg.edit({ content: " ", embeds: [on] }); } } + + queueUri(player: KazagumoPlayer) { + const res = []; + for (let data of player.queue) { + res.push(data.uri); + } + return res; + } } diff --git a/src/commands/slash/Music/Loop.ts b/src/commands/slash/Music/Loop.ts index 3e0984d6..24d83182 100644 --- a/src/commands/slash/Music/Loop.ts +++ b/src/commands/slash/Music/Loop.ts @@ -8,6 +8,7 @@ import { import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; export default class implements SlashCommand { name = ["loop"]; @@ -87,22 +88,31 @@ export default class implements SlashCommand { if (mode == "current") { await player.setLoop(KazagumoLoop.track); + this.setLoop247(client, player, String(KazagumoLoop.track)); const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_current")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped] }); } else if (mode == "queue") { await player.setLoop(KazagumoLoop.queue); + this.setLoop247(client, player, String(KazagumoLoop.queue)); const looped_queue = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_all")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped_queue] }); } else if (mode === "none") { await player.setLoop(KazagumoLoop.none); + this.setLoop247(client, player, String(KazagumoLoop.none)); const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "unloop_all")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [looped] }); } } + + async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); + } + } } diff --git a/src/commands/slash/Music/LoopQueue.ts b/src/commands/slash/Music/LoopQueue.ts index dd395c10..2729313d 100644 --- a/src/commands/slash/Music/LoopQueue.ts +++ b/src/commands/slash/Music/LoopQueue.ts @@ -1,6 +1,8 @@ import { EmbedBuilder, CommandInteraction, GuildMember } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoLoop } from "../../../@types/Lavalink.js"; // Main code export default class implements SlashCommand { @@ -54,7 +56,8 @@ export default class implements SlashCommand { ], }); if (player.loop === "queue") { - await player.setLoop("none"); + await player.setLoop(KazagumoLoop.none); + this.setLoop247(client, player, String(KazagumoLoop.none)); const unloopall = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "unloopall")}`) @@ -62,7 +65,8 @@ export default class implements SlashCommand { return msg.edit({ content: " ", embeds: [unloopall] }); } else if (player.loop === "none") { - await player.setLoop("queue"); + await player.setLoop(KazagumoLoop.queue); + this.setLoop247(client, player, String(KazagumoLoop.queue)); const loopall = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loopall")}`) @@ -71,4 +75,10 @@ export default class implements SlashCommand { return msg.edit({ content: " ", embeds: [loopall] }); } } + + async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); + } + } } diff --git a/src/commands/slash/Music/Nowplaying.ts b/src/commands/slash/Music/Nowplaying.ts index 451f37c6..9a11e044 100644 --- a/src/commands/slash/Music/Nowplaying.ts +++ b/src/commands/slash/Music/Nowplaying.ts @@ -64,7 +64,7 @@ export default class implements SlashCommand { }, { name: `${client.i18n.get(language, "player", "volume_title")}`, - value: `${player.volume}%`, + value: `${player.volume * 100}%`, inline: true, }, { diff --git a/src/commands/slash/Music/Volume.ts b/src/commands/slash/Music/Volume.ts index 62cfd2e5..6e304a34 100644 --- a/src/commands/slash/Music/Volume.ts +++ b/src/commands/slash/Music/Volume.ts @@ -7,6 +7,7 @@ import { } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { KazagumoPlayer } from "better-kazagumo"; // Main code export default class implements SlashCommand { @@ -94,6 +95,7 @@ export default class implements SlashCommand { }); await player.setVolume(Number(value)); + this.setVol247(client, player, Number(value)); const changevol = new EmbedBuilder() .setDescription( @@ -105,4 +107,10 @@ export default class implements SlashCommand { msg.edit({ content: " ", embeds: [changevol] }); } + + async setVol247(client: Manager, player: KazagumoPlayer, vol: number) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.config.volume`, vol); + } + } } diff --git a/src/commands/slash/Playlist/Info.ts b/src/commands/slash/Playlist/Info.ts index 090305c6..eb17e534 100644 --- a/src/commands/slash/Playlist/Info.ts +++ b/src/commands/slash/Playlist/Info.ts @@ -45,7 +45,6 @@ export default class implements SlashCommand { ], }); - const created = humanizeDuration(Date.now() - info.created, { largest: 1 }); const name = await client.users.fetch(info.owner); diff --git a/src/commands/slash/Utils/Setup.ts b/src/commands/slash/Utils/Setup.ts index b29ce8a4..9a66d499 100644 --- a/src/commands/slash/Utils/Setup.ts +++ b/src/commands/slash/Utils/Setup.ts @@ -142,15 +142,15 @@ export default class implements SlashCommand { if (SetupChannel.enable == false) return interaction.editReply({ embeds: [embed_none] }); - const fetchedTextChannel = interaction.guild!.channels.cache.get( - SetupChannel.channel - ); - const fetchedVoiceChannel = interaction.guild!.channels.cache.get( - SetupChannel.voice - ); - const fetchedCategory = interaction.guild!.channels.cache.get( - SetupChannel.category - ); + const fetchedTextChannel = SetupChannel.channel + ? interaction.guild!.channels.cache.get(SetupChannel.channel) + : undefined; + const fetchedVoiceChannel = SetupChannel.voice + ? interaction.guild!.channels.cache.get(SetupChannel.voice) + : undefined; + const fetchedCategory = SetupChannel.category + ? interaction.guild!.channels.cache.get(SetupChannel.category) + : undefined; const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Utils/Status.ts b/src/commands/slash/Utils/Status.ts index 19a02c29..00a40efd 100644 --- a/src/commands/slash/Utils/Status.ts +++ b/src/commands/slash/Utils/Status.ts @@ -1,17 +1,16 @@ import { EmbedBuilder, ApplicationCommandOptionType, - PermissionsBitField, ChannelType, version, CommandInteraction, CommandInteractionOptionResolver, - TextChannel, } from "discord.js"; import ms from "pretty-ms"; import { Manager } from "../../../manager.js"; -import { SetupInfoChannel } from "../../../@types/Setup.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import os from "os"; +import { stripIndents } from "common-tags"; export default class implements SlashCommand { name = ["settings", "status"]; @@ -51,7 +50,7 @@ export default class implements SlashCommand { const SetupChannel = await client.db.status.get( `${interaction.guild!.id}` ); - if (SetupChannel!.enable == true) + if (SetupChannel !== null && SetupChannel!.enable == true) return interaction.editReply({ embeds: [ new EmbedBuilder() @@ -72,52 +71,7 @@ export default class implements SlashCommand { parent: parent.id, }); - const info = new EmbedBuilder() - .setTitle(client.user!.tag + " Status") - .addFields([ - { - name: "Uptime", - value: `\`\`\`${ms(client.uptime as number)}\`\`\``, - inline: true, - }, - { - name: "WebSocket Ping", - value: `\`\`\`${client.ws.ping}ms\`\`\``, - inline: true, - }, - { - name: "Memory", - value: `\`\`\`${(process.memoryUsage().rss / 1024 / 1024).toFixed( - 2 - )} MB RSS\n${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed( - 2 - )} MB Heap\`\`\``, - inline: true, - }, - { - name: "Guild Count", - value: `\`\`\`${client.guilds.cache.size} guilds\`\`\``, - inline: true, - }, - { - name: "User Count", - value: `\`\`\`${client.users.cache.size} users\`\`\``, - inline: true, - }, - { - name: "Node", - value: `\`\`\`${process.version} on ${process.platform} ${process.arch}\`\`\``, - inline: true, - }, - { - name: "Cached Data", - value: `\`\`\`${client.users.cache.size} users\n${client.emojis.cache.size} emojis\`\`\``, - inline: true, - }, - { name: "Discord.js", value: `\`\`\`${version}\`\`\``, inline: true }, - ]) - .setTimestamp() - .setColor(client.color); + const info = this.infoChannelembed(client); const channel_msg = await textChannel.send({ content: ``, @@ -161,7 +115,7 @@ export default class implements SlashCommand { embeds: [embed_none], }); - if (SetupChannel!.enable == false) + if (SetupChannel.enable == false) return interaction.editReply({ embeds: [embed_none], }); @@ -197,4 +151,40 @@ export default class implements SlashCommand { return client.db.status.set(`${interaction.guild!.id}`, deleted_data); } } + + infoChannelembed(client: Manager) { + const total = os.totalmem() / 1024 / 1024; + const used = process.memoryUsage().rss / 1024 / 1024; + + const hostInfo = stripIndents`\`\`\` + - OS: ${os.type()} ${os.release()} (${os.arch()}) + - CPU: ${os.cpus()[0].model} + - Uptime: ${ms(client.uptime as number)} + - RAM: ${(total / 1024).toFixed(2)} GB + - Memory Usage: ${used.toFixed(2)}/${total.toFixed(2)} (MB) + - Node.js: ${process.version} + \`\`\``; + + const botInfo = stripIndents`\`\`\` + - Codename: ${client.metadata.codename} + - Bot version: ${client.metadata.version} + - Autofix version: ${client.metadata.autofix} + - Discord.js: ${version} + - WebSocket Ping: ${client.ws.ping}ms + - Guild Count: ${client.guilds.cache.size} + - User count: ${client.guilds.cache.reduce((a, b) => a + b.memberCount, 0)} + \`\`\``; + + return new EmbedBuilder() + .setAuthor({ + name: client.user!.tag + " Status", + iconURL: String(client.user!.displayAvatarURL({ size: 2048 })), + }) + .setColor(client.color) + .addFields( + { name: "Host info", value: hostInfo }, + { name: "Bot info", value: botInfo } + ) + .setTimestamp(); + } } diff --git a/src/database/schema/AutoReconnect.ts b/src/database/schema/AutoReconnect.ts index cb70d80a..b5bce6f0 100644 --- a/src/database/schema/AutoReconnect.ts +++ b/src/database/schema/AutoReconnect.ts @@ -1,5 +1,13 @@ +import { KazagumoTrack } from "better-kazagumo"; + export interface AutoReconnect { guild: string; text: string; voice: string; + current: string; + config: { + loop: string; + volume: number; + }; + queue: string[]; } diff --git a/src/database/setup/client.ts b/src/database/setup/client.ts index 43d13111..d5c3d22f 100644 --- a/src/database/setup/client.ts +++ b/src/database/setup/client.ts @@ -3,6 +3,8 @@ import { EmbedBuilder, TextChannel, version } from "discord.js"; import { Manager } from "../../manager.js"; import chalk from "chalk"; import cron from "node-cron"; +import os from "os"; +import { stripIndents } from "common-tags"; export class ClientDataService { client: Manager; @@ -11,53 +13,43 @@ export class ClientDataService { this.execute(); } - infoChannelembed() { + get infoChannelembed() { + const total = os.totalmem() / 1024 / 1024; + const used = process.memoryUsage().rss / 1024 / 1024; + + const hostInfo = stripIndents`\`\`\` + - OS: ${os.type()} ${os.release()} (${os.arch()}) + - CPU: ${os.cpus()[0].model} + - Uptime: ${ms(this.client.uptime as number)} + - RAM: ${(total / 1024).toFixed(2)} GB + - Memory Usage: ${used.toFixed(2)}/${total.toFixed(2)} (MB) + - Node.js: ${process.version} + \`\`\``; + + const botInfo = stripIndents`\`\`\` + - Codename: ${this.client.metadata.codename} + - Bot version: ${this.client.metadata.version} + - Autofix version: ${this.client.metadata.autofix} + - Discord.js: ${version} + - WebSocket Ping: ${this.client.ws.ping}ms + - Guild Count: ${this.client.guilds.cache.size} + - User count: ${this.client.guilds.cache.reduce( + (a, b) => a + b.memberCount, + 0 + )} + \`\`\``; + return new EmbedBuilder() - .setTitle(this.client.user!.tag + " Status") - .addFields([ - { - name: "Uptime", - value: `\`\`\`${ms(this.client.uptime!)}\`\`\``, - inline: true, - }, - { - name: "WebSocket Ping", - value: `\`\`\`${this.client.ws.ping}ms\`\`\``, - inline: true, - }, - { - name: "Memory", - value: `\`\`\`${(process.memoryUsage().rss / 1024 / 1024).toFixed( - 2 - )} MB RSS\n${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed( - 2 - )} MB Heap\`\`\``, - inline: true, - }, - { - name: "Guild Count", - value: `\`\`\`${this.client.guilds.cache.size} guilds\`\`\``, - inline: true, - }, - { - name: "User Count", - value: `\`\`\`${this.client.users.cache.size} users\`\`\``, - inline: true, - }, - { - name: "Node", - value: `\`\`\`${process.version} on ${process.platform} ${process.arch}\`\`\``, - inline: true, - }, - { - name: "Cached Data", - value: `\`\`\`${this.client.users.cache.size} users\n${this.client.emojis.cache.size} emojis\`\`\``, - inline: true, - }, - { name: "Discord.js", value: `\`\`\`${version}\`\`\``, inline: true }, - ]) - .setTimestamp() - .setColor(this.client.color); + .setAuthor({ + name: this.client.user!.tag + " Status", + iconURL: String(this.client.user!.displayAvatarURL({ size: 2048 })), + }) + .setColor(this.client.color) + .addFields( + { name: "Host info", value: hostInfo }, + { name: "Bot info", value: botInfo } + ) + .setTimestamp(); } async setupPremium() { @@ -84,13 +76,16 @@ export class ClientDataService { }); if (!SetupChannel) return; - const fetched_info = this.infoChannelembed(); + const fetched_info = this.infoChannelembed; SetupChannel.forEach(async (g) => { - const fetch_channel = await this.client.channels.fetch(g.channel); + const fetch_channel = + g.channel.length !== 0 + ? await this.client.channels.fetch(g.channel) + : undefined; + if (!fetch_channel) return; const text_channel = fetch_channel! as TextChannel; const interval_text = await text_channel.messages!.fetch(g.statmsg); - if (!fetch_channel) return; await interval_text.edit({ content: ``, embeds: [fetched_info] }); }); }); diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index 7313de28..3ba58f38 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -2,6 +2,8 @@ import chalk from "chalk"; import { Manager } from "../../manager.js"; import { AutoReconnect } from "../schema/AutoReconnect.js"; import chillout from "chillout"; +import { KazagumoLoopMode } from "../../@types/Lavalink.js"; +import { KazagumoPlayer } from "better-kazagumo"; export class AutoReconnectLavalinkService { client: Manager; @@ -72,11 +74,53 @@ export class AutoReconnectLavalinkService { const voice = this.client.channels.cache.get(data.value.voice); if (!channel || !voice) return this.client.db.autoreconnect.delete(`${data.id}`); - await this.client.manager.createPlayer({ + const player = await this.client.manager.createPlayer({ guildId: data.value.guild, voiceId: data.value.voice, textId: data.value.text, deaf: true, }); + + if (data.value.current && data.value.current.length !== 0) { + const search = await player.search(data.value.current, { + requester: this.client.user, + }); + if (!search.tracks.length) return; + await player.play(search.tracks[0]); + + if (data.value.queue.length !== 0) + await this.queueDataPush(data.value.queue, player); + + if (data.value.config.loop !== "none") + player.setLoop(data.value.config.loop as KazagumoLoopMode); + if (data.value.config.volume !== 1) + player.setVolume(data.value.config.volume); + } + } + + async queueDataPush(query: string[], player: KazagumoPlayer) { + const SongAdd = []; + let SongLoad = 0; + + for (const data of query) { + const res = await player.search(data, { + requester: this.client.user, + }); + if (res.type == "TRACK") { + SongAdd.push(res.tracks[0]); + SongLoad++; + } else if (res.type == "PLAYLIST") { + for (let t = 0; t < res.tracks.length; t++) { + SongAdd.push(res.tracks[t]); + SongLoad++; + } + } else if (res.type == "SEARCH") { + SongAdd.push(res.tracks[0]); + SongLoad++; + } + if (SongLoad == query.length) { + player.queue.add(SongAdd); + } + } } } diff --git a/src/events/player/playerDestroy.ts b/src/events/player/playerDestroy.ts index 775ef4a7..7a3d67f9 100644 --- a/src/events/player/playerDestroy.ts +++ b/src/events/player/playerDestroy.ts @@ -2,6 +2,7 @@ import { KazagumoPlayer } from "better-kazagumo"; import { Manager } from "../../manager.js"; import { EmbedBuilder, Client, TextChannel } from "discord.js"; import { ClearMessageService } from "../../functions/clearMsg.js"; +import { KazagumoLoop } from "../../@types/Lavalink.js"; export default class { async execute(client: Manager, player: KazagumoPlayer) { @@ -51,6 +52,16 @@ export default class { `${client.i18n.get(language, "player", "queue_end_desc")}` ); + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set(`${player.guildId}.current`, ""); + await client.db.autoreconnect.set(`${player.guildId}.config.volume`, 100); + await client.db.autoreconnect.set( + `${player.guildId}.config.loop`, + KazagumoLoop.none + ); + await client.db.autoreconnect.set(`${player.guildId}.queue`, []); + } + if (channel) { const msg = await channel.send({ embeds: [embed] }); diff --git a/src/events/player/playerEmpty.ts b/src/events/player/playerEmpty.ts index 7155cea9..deb29a63 100644 --- a/src/events/player/playerEmpty.ts +++ b/src/events/player/playerEmpty.ts @@ -13,7 +13,6 @@ export default class { /////////// Update Music Setup /////////// const guild = await client.guilds.cache.get(player.guildId); - let data = await client.db.language.get(`${player.guildId}`); if (player.data.get("autoplay") === true) { const requester = player.data.get("requester"); @@ -27,9 +26,9 @@ export default class { } client.logger.info(`Player Empty in @ ${guild!.name} / ${player.guildId}`); - if (data) return; await player.destroy(); + if (client.websocket) client.websocket.send( JSON.stringify({ op: "player_destroy", guild: player.guildId }) diff --git a/src/events/player/playerStart.ts b/src/events/player/playerStart.ts index ba75412a..fee8194f 100644 --- a/src/events/player/playerStart.ts +++ b/src/events/player/playerStart.ts @@ -123,6 +123,21 @@ export default class { } } + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set( + `${player.guildId}.current`, + player.queue.current?.uri + ); + await client.db.autoreconnect.set( + `${player.guildId}.config.volume`, + player.volume + ); + await client.db.autoreconnect.set( + `${player.guildId}.config.loop`, + player.loop + ); + } + if (Control == ControlEnum.Disable) return; // const card = new musicCard() @@ -334,16 +349,22 @@ export default class { if (!player) { collector.stop(); } - const loop_mode = { - none: "none", - track: "track", - queue: "queue", - }; + + async function setLoop247(loop: string) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set( + `${player.guildId}.config.loop`, + loop + ); + } + } if (player.loop === "queue") { player.setLoop(KazagumoLoop.none); - await new ReplyInteractionService( + setLoop247(String(KazagumoLoop.none)); + + new ReplyInteractionService( client, message, `${client.i18n.get(language, "music", "unloopall")}` @@ -351,7 +372,10 @@ export default class { return; } else if (player.loop === "none") { player.setLoop(KazagumoLoop.queue); - await new ReplyInteractionService( + + setLoop247(String(KazagumoLoop.none)); + + new ReplyInteractionService( client, message, `${client.i18n.get(language, "music", "loopall")}` @@ -363,6 +387,15 @@ export default class { collector.stop(); } + async function setVol247(vol: number) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set( + `${player.guildId}.config.volume`, + vol + ); + } + } + const reply_msg = `${client.i18n.get( language, "player", @@ -378,6 +411,7 @@ export default class { } player.setVolume(player.volume * 100 + 10); + setVol247(player.volume * 100 + 10); await new ReplyInteractionService(client, message, reply_msg); return; } else if (id === "voldown") { @@ -385,6 +419,15 @@ export default class { collector.stop(); } + async function setVol247(vol: number) { + if (await client.db.autoreconnect.get(player.guildId)) { + await client.db.autoreconnect.set( + `${player.guildId}.config.volume`, + vol + ); + } + } + const reply_msg = `${client.i18n.get( language, "player", @@ -400,6 +443,7 @@ export default class { } player.setVolume(player.volume * 100 - 10); + setVol247(player.volume * 100 - 10); await new ReplyInteractionService(client, message, reply_msg); return; diff --git a/src/handlers/Player/ButtonCommands/Loop.ts b/src/handlers/Player/ButtonCommands/Loop.ts index 416b7dfb..f6eda878 100644 --- a/src/handlers/Player/ButtonCommands/Loop.ts +++ b/src/handlers/Player/ButtonCommands/Loop.ts @@ -30,6 +30,8 @@ export class ButtonLoop { case "none": await this.player.setLoop(KazagumoLoop.track); + this.setLoop247(String(KazagumoLoop.track)); + const looptrack = new EmbedBuilder() .setDescription( `${this.client.i18n.get(this.language, "music", "loop_current")}` @@ -44,6 +46,8 @@ export class ButtonLoop { case "track": await this.player.setLoop(KazagumoLoop.queue); + this.setLoop247(String(KazagumoLoop.queue)); + const loopall = new EmbedBuilder() .setDescription( `${this.client.i18n.get(this.language, "music", "loop_all")}` @@ -58,6 +62,8 @@ export class ButtonLoop { case "queue": await this.player.setLoop(KazagumoLoop.none); + this.setLoop247(String(KazagumoLoop.none)); + const unloopall = new EmbedBuilder() .setDescription( `${this.client.i18n.get(this.language, "music", "unloopall")}` @@ -70,4 +76,13 @@ export class ButtonLoop { break; } } + + async setLoop247(loop: string) { + if (await this.client.db.autoreconnect.get(this.player.guildId)) { + await this.client.db.autoreconnect.set( + `${this.player.guildId}.config.loop`, + loop + ); + } + } } diff --git a/src/languages/en/noplayer.yaml b/src/languages/en/noplayer.yaml index 23e50dc6..386c6b2f 100644 --- a/src/languages/en/noplayer.yaml +++ b/src/languages/en/noplayer.yaml @@ -5,3 +5,5 @@ no_player: "No song/s currently playing within this guild." # Need to join voice & same voice to use command! no_voice: "You need to be in a same/voice channel." + +no_music: "You need to be play a song to use this command" diff --git a/src/languages/th/noplayer.yaml b/src/languages/th/noplayer.yaml index 165c6836..af3218f3 100644 --- a/src/languages/th/noplayer.yaml +++ b/src/languages/th/noplayer.yaml @@ -5,3 +5,5 @@ no_player: "ไม่มีเพลงที่กำลังเล่นอ # Need to join voice & same voice to use command! no_voice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน" + +no_music: "คุณต้องเล่นเพลงเพื่อใช้คำสั่งนี้" diff --git a/src/languages/vi/noplayer.yaml b/src/languages/vi/noplayer.yaml index c3326c99..04b3a2bf 100644 --- a/src/languages/vi/noplayer.yaml +++ b/src/languages/vi/noplayer.yaml @@ -5,3 +5,5 @@ no_player: "Không có bài hát nào hiện đang phát trong guild này." # Need to join voice & same voice to use command! no_voice: "Bạn cần ở trong cùng một kênh thoại." + +no_music: "Bạn cần phát một bài hát để sử dụng lệnh này" diff --git a/src/manifest.xml b/src/manifest.xml index f3d82320..a07d341a 100644 --- a/src/manifest.xml +++ b/src/manifest.xml @@ -7,7 +7,7 @@ - 3.1.0 + 3.1.1 4.1.0 hatsuharu (AzurLane) From 2ca7c041ef327ab5312c7fce1c5b50598ebf72bc Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 13 Dec 2023 17:32:11 +0700 Subject: [PATCH 03/20] Fix premium gen --- src/commands/slash/Premium/Generate.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/slash/Premium/Generate.ts b/src/commands/slash/Premium/Generate.ts index cd4d20f9..0327123e 100644 --- a/src/commands/slash/Premium/Generate.ts +++ b/src/commands/slash/Premium/Generate.ts @@ -28,15 +28,15 @@ export default class implements SlashCommand { }, { name: "Weekly", - value: "Weekly", + value: "weekly", }, { name: "Monthly", - value: "Monthly", + value: "monthly", }, { name: "Yearly", - value: "Yearly", + value: "yearly", }, ], }, From 3fae5d41683b99f27b0a37db8c4d716e009679b6 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 13 Dec 2023 18:06:37 +0700 Subject: [PATCH 04/20] Fix queue not update --- src/events/player/playerStart.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/events/player/playerStart.ts b/src/events/player/playerStart.ts index fee8194f..5026d8a2 100644 --- a/src/events/player/playerStart.ts +++ b/src/events/player/playerStart.ts @@ -136,6 +136,16 @@ export default class { `${player.guildId}.config.loop`, player.loop ); + + function queueUri() { + const res = []; + for (let data of player.queue) { + res.push(data.uri); + } + return res.length !== 0 ? res : []; + } + + await client.db.autoreconnect.set(`${player.guildId}.queue`, queueUri()); } if (Control == ControlEnum.Disable) return; From 7dba7739fc998f8710299e55fab8aa76a8ccb21c Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 14 Dec 2023 12:22:30 +0700 Subject: [PATCH 05/20] Add autoreconnect on en restart (Bot will require a stable host, don't run in replit. I don't want to implement that on my bot) --- src/commands/prefix/Info/Help.ts | 3 +- src/commands/prefix/Music/247.ts | 49 ++++++----------- src/commands/prefix/Music/Loop.ts | 9 +++- src/commands/prefix/Music/LoopQueue.ts | 6 ++- src/commands/prefix/Music/Play.ts | 32 ++++++++++- src/commands/prefix/Music/Volume.ts | 6 ++- src/commands/slash/Info/Help.ts | 3 +- src/commands/slash/Music/247.ts | 60 +++++---------------- src/commands/slash/Music/Loop.ts | 6 ++- src/commands/slash/Music/LoopQueue.ts | 6 ++- src/commands/slash/Music/Play.ts | 34 +++++++++++- src/commands/slash/Music/Volume.ts | 8 ++- src/database/build/AutoReconnect.ts | 62 ++++++++++++++++++++++ src/database/schema/AutoReconnect.ts | 1 + src/database/setup/lavalink.ts | 8 ++- src/events/guild/voiceStateUpdate.ts | 7 ++- src/events/player/playerDestroy.ts | 18 ++++--- src/events/player/playerEnd.ts | 7 ++- src/events/player/playerStart.ts | 8 ++- src/handlers/Player/ButtonCommands/Loop.ts | 7 ++- src/handlers/Player/loadUpdate.ts | 2 +- 21 files changed, 235 insertions(+), 107 deletions(-) create mode 100644 src/database/build/AutoReconnect.ts diff --git a/src/commands/prefix/Info/Help.ts b/src/commands/prefix/Info/Help.ts index 083a5e2a..53eec776 100644 --- a/src/commands/prefix/Info/Help.ts +++ b/src/commands/prefix/Info/Help.ts @@ -144,7 +144,8 @@ export default class implements PrefixCommand { filter: (i) => i.isStringSelectMenu() && i.user && - i.message.author.id == client.user!.id, + i.message.author.id == client.user!.id && + i.user.id == message.author.id, time: 60000, }); collector.on("collect", async (m) => { diff --git a/src/commands/prefix/Music/247.ts b/src/commands/prefix/Music/247.ts index b2994da5..60b07570 100644 --- a/src/commands/prefix/Music/247.ts +++ b/src/commands/prefix/Music/247.ts @@ -2,6 +2,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements PrefixCommand { name = "247"; @@ -55,50 +56,30 @@ export default class implements PrefixCommand { ], }); - let data = await client.db.autoreconnect.get(`${message.guild?.id}`); + const data = await new AutoReconnectBuilder(client, player).execute( + message.guild?.id! + ); - if (data) { - await client.db.autoreconnect.delete(`${message.guild!.id}`); + if (data.twentyfourseven) { + await client.db.autoreconnect.set( + `${message.guild!.id}.twentyfourseven`, + false + ); const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_off")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [on] }); - } else if (!data) { - if (!player.queue.current || player.queue.current == null) - return msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_music")}` - ) - .setColor(client.color), - ], - }); - - await client.db.autoreconnect.set(`${message.guild!.id}`, { - guild: player.guildId, - text: player.textId, - voice: player.voiceId, - current: player.queue.current?.uri, - config: { - loop: player.loop, - volume: player.volume, - }, - queue: player.queue.length !== 0 ? this.queueUri(player) : [], - }); + } + if (!data.twentyfourseven) { + await client.db.autoreconnect.set( + `${message.guild!.id}.twentyfourseven`, + true + ); const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_on")}`) .setColor(client.color); return msg.edit({ content: " ", embeds: [on] }); } } - - queueUri(player: KazagumoPlayer) { - const res = []; - for (let data of player.queue) { - res.push(data.uri); - } - return res; - } } diff --git a/src/commands/prefix/Music/Loop.ts b/src/commands/prefix/Music/Loop.ts index e4173255..5582a3f1 100644 --- a/src/commands/prefix/Music/Loop.ts +++ b/src/commands/prefix/Music/Loop.ts @@ -3,6 +3,7 @@ import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements PrefixCommand { name = "loop"; @@ -70,6 +71,7 @@ export default class implements PrefixCommand { if (mode == "track") { await player.setLoop(KazagumoLoop.track); this.setLoop247(client, player, String(KazagumoLoop.track)); + const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_current")}`) .setColor(client.color); @@ -77,6 +79,7 @@ export default class implements PrefixCommand { } else if (mode == "queue") { await player.setLoop(KazagumoLoop.queue); this.setLoop247(client, player, String(KazagumoLoop.queue)); + const looped_queue = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "loop_all")}`) .setColor(client.color); @@ -84,6 +87,7 @@ export default class implements PrefixCommand { } else if (mode === "none") { await player.setLoop(KazagumoLoop.none); this.setLoop247(client, player, String(KazagumoLoop.none)); + const looped = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "unloop_all")}`) .setColor(client.color); @@ -92,7 +96,10 @@ export default class implements PrefixCommand { } async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { - if (await client.db.autoreconnect.get(player.guildId)) { + const data = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (data) { await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); } } diff --git a/src/commands/prefix/Music/LoopQueue.ts b/src/commands/prefix/Music/LoopQueue.ts index 0defe83e..e040879d 100644 --- a/src/commands/prefix/Music/LoopQueue.ts +++ b/src/commands/prefix/Music/LoopQueue.ts @@ -3,6 +3,7 @@ import { Manager } from "../../../manager.js"; import { KazagumoLoop, KazagumoLoopMode } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code export default class implements PrefixCommand { @@ -79,7 +80,10 @@ export default class implements PrefixCommand { } async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { - if (await client.db.autoreconnect.get(player.guildId)) { + const data = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (data) { await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); } } diff --git a/src/commands/prefix/Music/Play.ts b/src/commands/prefix/Music/Play.ts index e7cc8861..34c3ca35 100644 --- a/src/commands/prefix/Music/Play.ts +++ b/src/commands/prefix/Music/Play.ts @@ -36,7 +36,10 @@ export default class implements PrefixCommand { }); const { channel } = message.member!.voice; - if (!channel) + if ( + !channel || + message.member!.voice.channel !== message.guild!.members.me!.voice.channel + ) return msg.edit({ embeds: [ new EmbedBuilder() @@ -54,6 +57,9 @@ export default class implements PrefixCommand { textId: message.channel.id, deaf: true, }); + else if (player && !this.checkSameVoice(message, client, language, msg)) { + return; + } const result = await player.search(value, { requester: message.author }); const tracks = result.tracks; @@ -121,4 +127,28 @@ export default class implements PrefixCommand { msg.edit({ content: " ", embeds: [embed] }); } } + + checkSameVoice( + message: Message, + client: Manager, + language: string, + msg: Message + ) { + if ( + message.member!.voice.channel !== message.guild!.members.me!.voice.channel + ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return false; + } + + return true; + } } diff --git a/src/commands/prefix/Music/Volume.ts b/src/commands/prefix/Music/Volume.ts index ce76322c..4319fb7f 100644 --- a/src/commands/prefix/Music/Volume.ts +++ b/src/commands/prefix/Music/Volume.ts @@ -2,6 +2,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code export default class implements PrefixCommand { @@ -107,7 +108,10 @@ export default class implements PrefixCommand { } async setVol247(client: Manager, player: KazagumoPlayer, vol: number) { - if (await client.db.autoreconnect.get(player.guildId)) { + const data = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (data) { await client.db.autoreconnect.set(`${player.guildId}.config.volume`, vol); } } diff --git a/src/commands/slash/Info/Help.ts b/src/commands/slash/Info/Help.ts index 895a21c7..69080fe1 100644 --- a/src/commands/slash/Info/Help.ts +++ b/src/commands/slash/Info/Help.ts @@ -90,7 +90,8 @@ export default class implements SlashCommand { filter: (i) => i.isStringSelectMenu() && i.user && - i.message.author.id == client.user!.id, + i.message.author.id == client.user!.id && + i.user.id == interaction.user.id, time: 60000, }); collector.on("collect", async (m) => { diff --git a/src/commands/slash/Music/247.ts b/src/commands/slash/Music/247.ts index bfc72d8f..f613fdd3 100644 --- a/src/commands/slash/Music/247.ts +++ b/src/commands/slash/Music/247.ts @@ -6,6 +6,7 @@ import { SlashCommand, } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements SlashCommand { name = ["247"]; @@ -57,61 +58,28 @@ export default class implements SlashCommand { ], }); - if (!player.queue.current || player.queue.current == null) - return msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_music")}` - ) - .setColor(client.color), - ], - }); + const data = await new AutoReconnectBuilder(client, player).execute( + interaction.guild!.id + ); - let data = await client.db.autoreconnect.get(`${interaction.guild!.id}`); - - if (data) { - await client.db.autoreconnect.delete(`${interaction.guild!.id}`); + if (data.twentyfourseven) { + await client.db.autoreconnect.set( + `${interaction.guild!.id}.twentyfourseven`, + false + ); const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_off")}`) .setColor(client.color); msg.edit({ content: " ", embeds: [on] }); - } else if (!data) { - if (!player.queue.current || player.queue.current == null) - return msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_music")}` - ) - .setColor(client.color), - ], - }); - - await client.db.autoreconnect.set(`${interaction.guild!.id}`, { - guild: player.guildId, - text: player.textId, - voice: player.voiceId, - current: player.queue.current?.uri, - config: { - loop: player.loop, - volume: player.volume, - }, - queue: player.queue.length !== 0 ? this.queueUri(player) : [], - }); - + } else { + await client.db.autoreconnect.set( + `${interaction.guild!.id}.twentyfourseven`, + true + ); const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_on")}`) .setColor(client.color); return msg.edit({ content: " ", embeds: [on] }); } } - - queueUri(player: KazagumoPlayer) { - const res = []; - for (let data of player.queue) { - res.push(data.uri); - } - return res; - } } diff --git a/src/commands/slash/Music/Loop.ts b/src/commands/slash/Music/Loop.ts index 24d83182..36f84eb1 100644 --- a/src/commands/slash/Music/Loop.ts +++ b/src/commands/slash/Music/Loop.ts @@ -9,6 +9,7 @@ import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements SlashCommand { name = ["loop"]; @@ -111,7 +112,10 @@ export default class implements SlashCommand { } async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { - if (await client.db.autoreconnect.get(player.guildId)) { + const check = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (check) { await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); } } diff --git a/src/commands/slash/Music/LoopQueue.ts b/src/commands/slash/Music/LoopQueue.ts index 2729313d..4040bd0f 100644 --- a/src/commands/slash/Music/LoopQueue.ts +++ b/src/commands/slash/Music/LoopQueue.ts @@ -3,6 +3,7 @@ import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code export default class implements SlashCommand { @@ -77,7 +78,10 @@ export default class implements SlashCommand { } async setLoop247(client: Manager, player: KazagumoPlayer, loop: string) { - if (await client.db.autoreconnect.get(player.guildId)) { + const check = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (check) { await client.db.autoreconnect.set(`${player.guildId}.config.loop`, loop); } } diff --git a/src/commands/slash/Music/Play.ts b/src/commands/slash/Music/Play.ts index 45de7523..448c79d8 100644 --- a/src/commands/slash/Music/Play.ts +++ b/src/commands/slash/Music/Play.ts @@ -5,6 +5,7 @@ import { CommandInteraction, CommandInteractionOptionResolver, GuildMember, + Message, } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; @@ -72,13 +73,19 @@ export default class implements SlashCommand { ], }); - if (!player) + if (!player) { player = await client.manager.createPlayer({ guildId: interaction.guild!.id, voiceId: (interaction.member as GuildMember).voice.channel!.id, textId: interaction.channel!.id, deaf: true, }); + } else if ( + player && + !this.checkSameVoice(interaction, client, language, msg) + ) { + return; + } if (!(value as string)) return msg.edit({ @@ -158,4 +165,29 @@ export default class implements SlashCommand { } } catch (e) {} } + + checkSameVoice( + interaction: CommandInteraction, + client: Manager, + language: string, + msg: Message + ) { + if ( + (interaction.member as GuildMember)!.voice.channel !== + interaction.guild!.members.me!.voice.channel + ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return false; + } + + return true; + } } diff --git a/src/commands/slash/Music/Volume.ts b/src/commands/slash/Music/Volume.ts index 6e304a34..1c58d4ed 100644 --- a/src/commands/slash/Music/Volume.ts +++ b/src/commands/slash/Music/Volume.ts @@ -8,6 +8,7 @@ import { import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; import { KazagumoPlayer } from "better-kazagumo"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code export default class implements SlashCommand { @@ -109,8 +110,11 @@ export default class implements SlashCommand { } async setVol247(client: Manager, player: KazagumoPlayer, vol: number) { - if (await client.db.autoreconnect.get(player.guildId)) { - await client.db.autoreconnect.set(`${player.guildId}.config.volume`, vol); + const check = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); + if (check) { + await client.db.autoreconnect.set(`${player.guildId}.config.loop`, vol); } } } diff --git a/src/database/build/AutoReconnect.ts b/src/database/build/AutoReconnect.ts new file mode 100644 index 00000000..fd166349 --- /dev/null +++ b/src/database/build/AutoReconnect.ts @@ -0,0 +1,62 @@ +import { KazagumoPlayer } from "better-kazagumo"; +import { Manager } from "../../manager.js"; + +export class AutoReconnectBuilder { + client: Manager; + player?: KazagumoPlayer; + constructor(client: Manager, player?: KazagumoPlayer) { + this.client = client; + this.player = player; + } + + async execute(guildId: string) { + const check = await this.client.db.autoreconnect.get(guildId); + if (check) return check; + if (!this.player) return await this.noPlayerBuild(guildId); + return await this.playerBuild(guildId); + } + + async get(guildId: string) { + const check = await this.client.db.autoreconnect.get(guildId); + if (check) return check; + else null; + } + + async noPlayerBuild(guildId: string) { + return await this.client.db.autoreconnect.set(`${guildId}`, { + guild: guildId, + text: "", + voice: "", + current: "", + config: { + loop: "none", + volume: 100, + }, + queue: [], + twentyfourseven: true, + }); + } + + async playerBuild(guildId: string) { + return await this.client.db.autoreconnect.set(`${guildId}`, { + guild: this.player?.guildId, + text: this.player?.textId, + voice: this.player?.voiceId, + current: this.player?.queue.current ?? "", + config: { + loop: this.player?.loop, + volume: this.player?.volume, + }, + queue: this.player?.queue.length !== 0 ? this.queueUri() : [], + twentyfourseven: true, + }); + } + + queueUri() { + const res = []; + for (let data of this.player?.queue!) { + res.push(data.uri); + } + return res; + } +} diff --git a/src/database/schema/AutoReconnect.ts b/src/database/schema/AutoReconnect.ts index b5bce6f0..451b6ac6 100644 --- a/src/database/schema/AutoReconnect.ts +++ b/src/database/schema/AutoReconnect.ts @@ -10,4 +10,5 @@ export interface AutoReconnect { volume: number; }; queue: string[]; + twentyfourseven: boolean; } diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index 3ba58f38..a596a11f 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -72,8 +72,12 @@ export class AutoReconnectLavalinkService { async connectChannel(data: { id: string; value: AutoReconnect }) { const channel = this.client.channels.cache.get(data.value.text); const voice = this.client.channels.cache.get(data.value.voice); - if (!channel || !voice) - return this.client.db.autoreconnect.delete(`${data.id}`); + if (!channel || !voice) { + this.client.db.autoreconnect.set(`${data.id}.text`, ""); + this.client.db.autoreconnect.set(`${data.id}.voice`, ""); + return; + } + const player = await this.client.manager.createPlayer({ guildId: data.value.guild, voiceId: data.value.voice, diff --git a/src/events/guild/voiceStateUpdate.ts b/src/events/guild/voiceStateUpdate.ts index 53321bb9..6a717601 100644 --- a/src/events/guild/voiceStateUpdate.ts +++ b/src/events/guild/voiceStateUpdate.ts @@ -8,6 +8,7 @@ import { TextChannel, } from "discord.js"; import { Manager } from "../../manager.js"; +import { AutoReconnectBuilder } from "../../database/build/AutoReconnect.js"; export default class { async execute(client: Manager, oldState: VoiceState, newState: VoiceState) { @@ -16,7 +17,9 @@ export default class { "The database is not yet connected so this event will temporarily not execute. Please try again later!" ); - let data = await client.db.autoreconnect.get(`${newState.guild.id}`); + let data = await new AutoReconnectBuilder(client).execute( + newState.guild.id + ); if (oldState.channel === null && oldState.id !== client.user!.id) { if (client.websocket) @@ -71,7 +74,7 @@ export default class { if (!oldState.guild.members.cache.get(client.user!.id)!.voice.channelId) return; - if (data) return; + if (!data.twentyfourseven) return; const vcRoom = oldState.guild.members.me!.voice.channel!.id; diff --git a/src/events/player/playerDestroy.ts b/src/events/player/playerDestroy.ts index 7a3d67f9..41b7197b 100644 --- a/src/events/player/playerDestroy.ts +++ b/src/events/player/playerDestroy.ts @@ -3,6 +3,7 @@ import { Manager } from "../../manager.js"; import { EmbedBuilder, Client, TextChannel } from "discord.js"; import { ClearMessageService } from "../../functions/clearMsg.js"; import { KazagumoLoop } from "../../@types/Lavalink.js"; +import { AutoReconnectBuilder } from "../../database/build/AutoReconnect.js"; export default class { async execute(client: Manager, player: KazagumoPlayer) { @@ -26,18 +27,23 @@ export default class { ); const channel = client.channels.cache.get(player.textId) as TextChannel; client.sent_queue.set(player.guildId, false); - let data = await client.db.autoreconnect.get(`${player.guildId}`); + let data = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); if (!channel) return; - if (player.state == 5 && data) { + if (player.state == 5 && data.twentyfourseven) { await client.manager.createPlayer({ - guildId: data.guild, - voiceId: data.voice, - textId: data.text, + guildId: data.guild!, + voiceId: data.voice!, + textId: data.text!, deaf: true, }); - } + } else + await new AutoReconnectBuilder(client, player).noPlayerBuild( + player.guildId + ); let guildModel = await client.db.language.get(`${channel.guild.id}`); if (!guildModel) { diff --git a/src/events/player/playerEnd.ts b/src/events/player/playerEnd.ts index 8ef24581..801e991f 100644 --- a/src/events/player/playerEnd.ts +++ b/src/events/player/playerEnd.ts @@ -2,6 +2,7 @@ import { KazagumoPlayer } from "better-kazagumo"; import { Manager } from "../../manager.js"; import { EmbedBuilder, Client, TextChannel } from "discord.js"; import { ClearMessageService } from "../../functions/clearMsg.js"; +import { AutoReconnectBuilder } from "../../database/build/AutoReconnect.js"; export default class { async execute(client: Manager, player: KazagumoPlayer) { @@ -38,11 +39,13 @@ export default class { ); } - let data = await client.db.autoreconnect.get(`${player.guildId}`); + let data = await new AutoReconnectBuilder(client, player).execute( + player.guildId + ); const channel = client.channels.cache.get(player.textId) as TextChannel; if (!channel) return; - if (data) return; + if (data.twentyfourseven) return; if (player.queue.length || player!.queue!.current) return new ClearMessageService(client, channel, player); diff --git a/src/events/player/playerStart.ts b/src/events/player/playerStart.ts index 5026d8a2..27cec724 100644 --- a/src/events/player/playerStart.ts +++ b/src/events/player/playerStart.ts @@ -11,7 +11,6 @@ import { import { EmbedBuilder } from "discord.js"; import { FormatDuration } from "../../structures/FormatDuration.js"; import { QueueDuration } from "../../structures/QueueDuration.js"; -// import { musicCard } from "musicard"; import { playerRowOne, playerRowOneEdited, @@ -20,6 +19,7 @@ import { import { ReplyInteractionService } from "../../functions/replyInteraction.js"; import { KazagumoLoop } from "../../@types/Lavalink.js"; import { ControlEnum } from "../../database/schema/Control.js"; +import { AutoReconnectBuilder } from "../../database/build/AutoReconnect.js"; export default class { async execute(client: Manager, player: KazagumoPlayer, track: KazagumoTrack) { @@ -123,7 +123,9 @@ export default class { } } - if (await client.db.autoreconnect.get(player.guildId)) { + const autoreconnect = new AutoReconnectBuilder(client, player); + + if (await autoreconnect.get(player.guildId)) { await client.db.autoreconnect.set( `${player.guildId}.current`, player.queue.current?.uri @@ -146,6 +148,8 @@ export default class { } await client.db.autoreconnect.set(`${player.guildId}.queue`, queueUri()); + } else { + await autoreconnect.execute(player.guildId); } if (Control == ControlEnum.Disable) return; diff --git a/src/handlers/Player/ButtonCommands/Loop.ts b/src/handlers/Player/ButtonCommands/Loop.ts index f6eda878..61ba37f8 100644 --- a/src/handlers/Player/ButtonCommands/Loop.ts +++ b/src/handlers/Player/ButtonCommands/Loop.ts @@ -2,6 +2,7 @@ import { ButtonInteraction, EmbedBuilder, VoiceBasedChannel } from "discord.js"; import { Manager } from "../../../manager.js"; import { KazagumoPlayer } from "better-kazagumo"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; +import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export class ButtonLoop { client: Manager; @@ -78,7 +79,11 @@ export class ButtonLoop { } async setLoop247(loop: string) { - if (await this.client.db.autoreconnect.get(this.player.guildId)) { + const check = await new AutoReconnectBuilder( + this.client, + this.player + ).execute(this.player.guildId); + if (check) { await this.client.db.autoreconnect.set( `${this.player.guildId}.config.loop`, loop diff --git a/src/handlers/Player/loadUpdate.ts b/src/handlers/Player/loadUpdate.ts index 0e37a5e7..6bc2b979 100644 --- a/src/handlers/Player/loadUpdate.ts +++ b/src/handlers/Player/loadUpdate.ts @@ -95,7 +95,7 @@ export class playerLoadUpdate { .setFooter({ text: `${client.i18n.get(language, "setup", "setup_footer", { songs: `${player.queue.size}`, - volume: `${player.volume}`, + volume: `${player.volume * 100}`, duration: qDuration, })}`, }); //${player.queue.length} • Song's in Queue | Volume • ${player.volume}% | ${qDuration} • Total Duration From a601279eb3ec0e2713aff9c9cb8e4255990fb182 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 14 Dec 2023 17:52:52 +0700 Subject: [PATCH 06/20] Fix 247 interface --- src/database/build/AutoReconnect.ts | 4 ++-- src/languages/en/noplayer.yaml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/database/build/AutoReconnect.ts b/src/database/build/AutoReconnect.ts index fd166349..77daee5a 100644 --- a/src/database/build/AutoReconnect.ts +++ b/src/database/build/AutoReconnect.ts @@ -33,7 +33,7 @@ export class AutoReconnectBuilder { volume: 100, }, queue: [], - twentyfourseven: true, + twentyfourseven: false, }); } @@ -48,7 +48,7 @@ export class AutoReconnectBuilder { volume: this.player?.volume, }, queue: this.player?.queue.length !== 0 ? this.queueUri() : [], - twentyfourseven: true, + twentyfourseven: false, }); } diff --git a/src/languages/en/noplayer.yaml b/src/languages/en/noplayer.yaml index 386c6b2f..4c91be9b 100644 --- a/src/languages/en/noplayer.yaml +++ b/src/languages/en/noplayer.yaml @@ -3,6 +3,8 @@ # No song playing in guild! no_player: "No song/s currently playing within this guild." +no_current_player: "Please use `/join` to use this command." + # Need to join voice & same voice to use command! no_voice: "You need to be in a same/voice channel." From 35ceb71f1c11d37c4a21f33675ee837f5f797f03 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 14 Dec 2023 18:04:29 +0700 Subject: [PATCH 07/20] Setup patch --- src/handlers/Player/loadContent.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/handlers/Player/loadContent.ts b/src/handlers/Player/loadContent.ts index eebe872b..ba5aefd6 100644 --- a/src/handlers/Player/loadContent.ts +++ b/src/handlers/Player/loadContent.ts @@ -154,6 +154,23 @@ export class playerLoadContent { textId: message.channel.id, deaf: true, }); + else { + if ( + message.member!.voice.channel !== + message.guild!.members.me!.voice.channel + ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return + } + } const result = await player.search(song, { requester: message.author }); const tracks = result.tracks; From 44099e8f8898e21c076ef04097a07dadf34494fc Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 14 Dec 2023 19:46:11 +0700 Subject: [PATCH 08/20] Autoreconnect patch [setup query issue not finished] --- src/commands/prefix/Music/Seek.ts | 4 ---- src/commands/slash/Music/Seek.ts | 4 ---- src/database/build/AutoReconnect.ts | 2 +- src/database/setup/lavalink.ts | 2 ++ src/events/guild/voiceStateUpdate.ts | 4 ++-- src/events/player/playerDestroy.ts | 35 +++++++++++----------------- src/events/player/playerEnd.ts | 4 ++-- src/events/player/playerStart.ts | 24 +------------------ 8 files changed, 21 insertions(+), 58 deletions(-) diff --git a/src/commands/prefix/Music/Seek.ts b/src/commands/prefix/Music/Seek.ts index 3bec461b..47e89924 100644 --- a/src/commands/prefix/Music/Seek.ts +++ b/src/commands/prefix/Music/Seek.ts @@ -24,7 +24,6 @@ export default class implements PrefixCommand { let value; const time = args[0]; - console.log(time_regex.test(time), time.split(/:/)); if (!time_regex.test(time)) return message.reply({ embeds: [ @@ -40,7 +39,6 @@ export default class implements PrefixCommand { const min = Number(m) * 60; const sec = Number(s); value = min + sec; - console.log(value); } const msg = await message.reply({ @@ -98,8 +96,6 @@ export default class implements PrefixCommand { if (song_position < value * 1000) final_res = song_position + value * 1000; else final_res = value * 1000; - console.log(final_res / 1000); - const Duration = new FormatDuration().parse(final_res); const seeked = new EmbedBuilder() diff --git a/src/commands/slash/Music/Seek.ts b/src/commands/slash/Music/Seek.ts index 3f773667..3d5d4076 100644 --- a/src/commands/slash/Music/Seek.ts +++ b/src/commands/slash/Music/Seek.ts @@ -38,7 +38,6 @@ export default class implements SlashCommand { interaction.options as CommandInteractionOptionResolver ).getString("time"); - console.log(time_regex.test(time!), time!.split(/:/)); if (!time_regex.test(time!)) return interaction.editReply({ embeds: [ @@ -54,7 +53,6 @@ export default class implements SlashCommand { const min = Number(m) * 60; const sec = Number(s); value = min + sec; - console.log(value); } const msg = await interaction.editReply({ @@ -113,8 +111,6 @@ export default class implements SlashCommand { if (song_position < value * 1000) final_res = song_position + value * 1000; else final_res = value * 1000; - console.log(final_res / 1000); - const Duration = new FormatDuration().parse(final_res); const seeked = new EmbedBuilder() diff --git a/src/database/build/AutoReconnect.ts b/src/database/build/AutoReconnect.ts index 77daee5a..7c334876 100644 --- a/src/database/build/AutoReconnect.ts +++ b/src/database/build/AutoReconnect.ts @@ -42,7 +42,7 @@ export class AutoReconnectBuilder { guild: this.player?.guildId, text: this.player?.textId, voice: this.player?.voiceId, - current: this.player?.queue.current ?? "", + current: this.player?.queue.current?.uri ?? "", config: { loop: this.player?.loop, volume: this.player?.volume, diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index a596a11f..2727e69a 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -51,6 +51,8 @@ export class AutoReconnectLavalinkService { lavalink_mess + `Lavalink avalible, remove interval and continue setup!` ); + console.log(maindata) + chillout.forEach( maindata, async (data: { id: string; value: AutoReconnect }) => { diff --git a/src/events/guild/voiceStateUpdate.ts b/src/events/guild/voiceStateUpdate.ts index 6a717601..70b7fb29 100644 --- a/src/events/guild/voiceStateUpdate.ts +++ b/src/events/guild/voiceStateUpdate.ts @@ -17,7 +17,7 @@ export default class { "The database is not yet connected so this event will temporarily not execute. Please try again later!" ); - let data = await new AutoReconnectBuilder(client).execute( + let data = await new AutoReconnectBuilder(client).get( newState.guild.id ); @@ -74,7 +74,7 @@ export default class { if (!oldState.guild.members.cache.get(client.user!.id)!.voice.channelId) return; - if (!data.twentyfourseven) return; + if (data && !data.twentyfourseven) return; const vcRoom = oldState.guild.members.me!.voice.channel!.id; diff --git a/src/events/player/playerDestroy.ts b/src/events/player/playerDestroy.ts index 41b7197b..48061f19 100644 --- a/src/events/player/playerDestroy.ts +++ b/src/events/player/playerDestroy.ts @@ -27,23 +27,24 @@ export default class { ); const channel = client.channels.cache.get(player.textId) as TextChannel; client.sent_queue.set(player.guildId, false); - let data = await new AutoReconnectBuilder(client, player).execute( + let data = await new AutoReconnectBuilder(client, player).get( player.guildId ); if (!channel) return; - if (player.state == 5 && data.twentyfourseven) { - await client.manager.createPlayer({ - guildId: data.guild!, - voiceId: data.voice!, - textId: data.text!, - deaf: true, - }); - } else - await new AutoReconnectBuilder(client, player).noPlayerBuild( - player.guildId - ); + if (player.state == 5 && data !== null && data) { + if (data.twentyfourseven) { + await client.manager.createPlayer({ + guildId: data.guild!, + voiceId: data.voice!, + textId: data.text!, + deaf: true, + }); + await new AutoReconnectBuilder(client, player).noPlayerBuild(player.guildId) + } + else await client.db.autoreconnect.delete(player.guildId) + } let guildModel = await client.db.language.get(`${channel.guild.id}`); if (!guildModel) { @@ -58,16 +59,6 @@ export default class { `${client.i18n.get(language, "player", "queue_end_desc")}` ); - if (await client.db.autoreconnect.get(player.guildId)) { - await client.db.autoreconnect.set(`${player.guildId}.current`, ""); - await client.db.autoreconnect.set(`${player.guildId}.config.volume`, 100); - await client.db.autoreconnect.set( - `${player.guildId}.config.loop`, - KazagumoLoop.none - ); - await client.db.autoreconnect.set(`${player.guildId}.queue`, []); - } - if (channel) { const msg = await channel.send({ embeds: [embed] }); diff --git a/src/events/player/playerEnd.ts b/src/events/player/playerEnd.ts index 801e991f..5ef3b2bb 100644 --- a/src/events/player/playerEnd.ts +++ b/src/events/player/playerEnd.ts @@ -39,13 +39,13 @@ export default class { ); } - let data = await new AutoReconnectBuilder(client, player).execute( + let data = await new AutoReconnectBuilder(client, player).get( player.guildId ); const channel = client.channels.cache.get(player.textId) as TextChannel; if (!channel) return; - if (data.twentyfourseven) return; + if (data && data.twentyfourseven) return; if (player.queue.length || player!.queue!.current) return new ClearMessageService(client, channel, player); diff --git a/src/events/player/playerStart.ts b/src/events/player/playerStart.ts index 27cec724..c9e451ed 100644 --- a/src/events/player/playerStart.ts +++ b/src/events/player/playerStart.ts @@ -149,33 +149,11 @@ export default class { await client.db.autoreconnect.set(`${player.guildId}.queue`, queueUri()); } else { - await autoreconnect.execute(player.guildId); + await autoreconnect.playerBuild(player.guildId); } if (Control == ControlEnum.Disable) return; - // const card = new musicCard() - // .setName(String(song?.title)) - // .setAuthor(String(song?.author)) - // .setColor(String(client.color)) - // .setTheme("classic") - // .setBrightness(50) - // .setThumbnail( - // track.thumbnail - // ? track.thumbnail - // : `https://img.youtube.com/vi/${track.identifier}/hqdefault.jpg` - // ) - // .setProgress(10) - // .setStartTime("0:00") - // .setEndTime(formatduration(song!.length)) - // .setRequester((song?.requester as User).username); - - // const cardBuffer = await card.build(); - - // const attachment = new AttachmentBuilder(cardBuffer, { - // name: "musiccard.png", - // }); - const embeded = new EmbedBuilder() .setAuthor({ name: `${client.i18n.get(language, "player", "track_title")}`, From 16cbcb0513d6e69989811ae1fa2eb9e76e7d2673 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 14 Dec 2023 20:19:15 +0700 Subject: [PATCH 09/20] Patch player setup --- src/events/guild/voiceStateUpdate.ts | 4 ++-- src/handlers/Player/loadContent.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/events/guild/voiceStateUpdate.ts b/src/events/guild/voiceStateUpdate.ts index 70b7fb29..45eefc47 100644 --- a/src/events/guild/voiceStateUpdate.ts +++ b/src/events/guild/voiceStateUpdate.ts @@ -49,6 +49,8 @@ export default class { const player = client.manager?.players.get(newState.guild.id); if (!player) return; + if (data && data.twentyfourseven) return; + if (!newState.guild.members.cache.get(client.user!.id)!.voice.channelId) player.destroy(); @@ -74,8 +76,6 @@ export default class { if (!oldState.guild.members.cache.get(client.user!.id)!.voice.channelId) return; - if (data && !data.twentyfourseven) return; - const vcRoom = oldState.guild.members.me!.voice.channel!.id; const leaveEmbed = client.channels.cache.get(player.textId) as TextChannel; diff --git a/src/handlers/Player/loadContent.ts b/src/handlers/Player/loadContent.ts index ba5aefd6..c3e49b65 100644 --- a/src/handlers/Player/loadContent.ts +++ b/src/handlers/Player/loadContent.ts @@ -147,6 +147,8 @@ export class playerLoadContent { let msg = await message.channel.messages.fetch(database!.playmsg); + await message.delete(); + if (!player) player = await client.manager.createPlayer({ guildId: message.guild.id, @@ -159,7 +161,7 @@ export class playerLoadContent { message.member!.voice.channel !== message.guild!.members.me!.voice.channel ) { - msg.edit({ + msg.reply({ embeds: [ new EmbedBuilder() .setDescription( @@ -175,8 +177,6 @@ export class playerLoadContent { const result = await player.search(song, { requester: message.author }); const tracks = result.tracks; - await message.delete(); - if (!result.tracks.length) { msg.edit({ content: `${client.i18n.get( From 169cdf99730fd951f33a2dbea1348fc1e7205b0e Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Fri, 15 Dec 2023 09:48:44 +0700 Subject: [PATCH 10/20] Add rebuild 247 for Autoreconnect builder --- src/database/build/AutoReconnect.ts | 15 +++++++++++++++ src/database/setup/lavalink.ts | 2 +- src/events/guild/voiceStateUpdate.ts | 4 +--- src/events/player/playerDestroy.ts | 9 ++++++--- src/handlers/Player/loadContent.ts | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/database/build/AutoReconnect.ts b/src/database/build/AutoReconnect.ts index 7c334876..c1e27c9b 100644 --- a/src/database/build/AutoReconnect.ts +++ b/src/database/build/AutoReconnect.ts @@ -52,6 +52,21 @@ export class AutoReconnectBuilder { }); } + async build247(guildId: string, mode: boolean = true, voiceId: string = "") { + return await this.client.db.autoreconnect.set(`${guildId}`, { + guild: this.player?.guildId, + text: this.player?.textId, + voice: voiceId, + current: "", + config: { + loop: "none", + volume: 100, + }, + queue: [], + twentyfourseven: mode, + }); + } + queueUri() { const res = []; for (let data of this.player?.queue!) { diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index 2727e69a..bb9b4777 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -51,7 +51,7 @@ export class AutoReconnectLavalinkService { lavalink_mess + `Lavalink avalible, remove interval and continue setup!` ); - console.log(maindata) + console.log(maindata); chillout.forEach( maindata, diff --git a/src/events/guild/voiceStateUpdate.ts b/src/events/guild/voiceStateUpdate.ts index 45eefc47..165eb8f5 100644 --- a/src/events/guild/voiceStateUpdate.ts +++ b/src/events/guild/voiceStateUpdate.ts @@ -17,9 +17,7 @@ export default class { "The database is not yet connected so this event will temporarily not execute. Please try again later!" ); - let data = await new AutoReconnectBuilder(client).get( - newState.guild.id - ); + let data = await new AutoReconnectBuilder(client).get(newState.guild.id); if (oldState.channel === null && oldState.id !== client.user!.id) { if (client.websocket) diff --git a/src/events/player/playerDestroy.ts b/src/events/player/playerDestroy.ts index 48061f19..2c81c67f 100644 --- a/src/events/player/playerDestroy.ts +++ b/src/events/player/playerDestroy.ts @@ -35,15 +35,18 @@ export default class { if (player.state == 5 && data !== null && data) { if (data.twentyfourseven) { + await new AutoReconnectBuilder(client, player).build247( + player.guildId, + true, + data.voice + ); await client.manager.createPlayer({ guildId: data.guild!, voiceId: data.voice!, textId: data.text!, deaf: true, }); - await new AutoReconnectBuilder(client, player).noPlayerBuild(player.guildId) - } - else await client.db.autoreconnect.delete(player.guildId) + } else await client.db.autoreconnect.delete(player.guildId); } let guildModel = await client.db.language.get(`${channel.guild.id}`); diff --git a/src/handlers/Player/loadContent.ts b/src/handlers/Player/loadContent.ts index c3e49b65..ffafa9d6 100644 --- a/src/handlers/Player/loadContent.ts +++ b/src/handlers/Player/loadContent.ts @@ -170,7 +170,7 @@ export class playerLoadContent { .setColor(client.color), ], }); - return + return; } } From 289339ee95b1809ddddc726e6b81b619d2a49eba Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Sat, 16 Dec 2023 18:17:11 +0700 Subject: [PATCH 11/20] Remove console.log --- src/database/setup/lavalink.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index bb9b4777..a596a11f 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -51,8 +51,6 @@ export class AutoReconnectLavalinkService { lavalink_mess + `Lavalink avalible, remove interval and continue setup!` ); - console.log(maindata); - chillout.forEach( maindata, async (data: { id: string; value: AutoReconnect }) => { From 057c66b0f8dda961d6095af19232c30b4dac0c87 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Sat, 16 Dec 2023 18:29:14 +0700 Subject: [PATCH 12/20] Update 247 command --- src/commands/prefix/Music/247.ts | 10 ++++++---- src/commands/slash/Music/247.ts | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/commands/prefix/Music/247.ts b/src/commands/prefix/Music/247.ts index 60b07570..09a789be 100644 --- a/src/commands/prefix/Music/247.ts +++ b/src/commands/prefix/Music/247.ts @@ -61,10 +61,12 @@ export default class implements PrefixCommand { ); if (data.twentyfourseven) { - await client.db.autoreconnect.set( - `${message.guild!.id}.twentyfourseven`, - false - ); + data.current || data.current.length !== 0 + ? await client.db.autoreconnect.set( + `${message.guild!.id}.twentyfourseven`, + false + ) + : await client.db.autoreconnect.delete(`${message.guild!.id}`); const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_off")}`) .setColor(client.color); diff --git a/src/commands/slash/Music/247.ts b/src/commands/slash/Music/247.ts index f613fdd3..c7187a58 100644 --- a/src/commands/slash/Music/247.ts +++ b/src/commands/slash/Music/247.ts @@ -63,10 +63,13 @@ export default class implements SlashCommand { ); if (data.twentyfourseven) { - await client.db.autoreconnect.set( - `${interaction.guild!.id}.twentyfourseven`, - false - ); + data.current || data.current.length !== 0 + ? await client.db.autoreconnect.set( + `${interaction.guild!.id}.twentyfourseven`, + false + ) + : await client.db.autoreconnect.delete(`${interaction.guild!.id}`); + const on = new EmbedBuilder() .setDescription(`${client.i18n.get(language, "music", "247_off")}`) .setColor(client.color); From 0ada97f492d0c54e3a43fe024af19bacbf6e624e Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 20 Dec 2023 09:29:05 +0700 Subject: [PATCH 13/20] Merge some main commit (#17) From 3fbd023f569be76f8b332e1928b79a69da49a229 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 20 Dec 2023 12:26:58 +0700 Subject: [PATCH 14/20] Again? (#18) From de0976522ac030118f06fc02a963f7d232226eda Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Wed, 20 Dec 2023 15:36:16 +0700 Subject: [PATCH 15/20] cange version to v3.2.0 --- src/manifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/manifest.xml b/src/manifest.xml index a07d341a..8800bc2d 100644 --- a/src/manifest.xml +++ b/src/manifest.xml @@ -7,7 +7,7 @@ - 3.1.1 + 3.2.0 4.1.0 hatsuharu (AzurLane) From 16d4424875956c3c5c1220104002f5bc76614bec Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 21 Dec 2023 11:27:09 +0700 Subject: [PATCH 16/20] Remove 'autoComplete' event, pack all autocomplete function into command file --- src/commands/prefix/Music/Play.ts | 33 +++++---- src/commands/slash/Music/Play.ts | 83 ++++++++++++++++++----- src/commands/slash/Playlist/Add.ts | 56 ++++++++++++++++ src/events/guild/autoComplete.ts | 97 --------------------------- src/events/guild/interactionCreate.ts | 16 +++-- src/manager.ts | 17 ++++- 6 files changed, 166 insertions(+), 136 deletions(-) delete mode 100644 src/events/guild/autoComplete.ts diff --git a/src/commands/prefix/Music/Play.ts b/src/commands/prefix/Music/Play.ts index 34c3ca35..d134c839 100644 --- a/src/commands/prefix/Music/Play.ts +++ b/src/commands/prefix/Music/Play.ts @@ -1,4 +1,4 @@ -import { EmbedBuilder, Message, PermissionsBitField } from "discord.js"; +import { EmbedBuilder, Message } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; import { Manager } from "../../../manager.js"; @@ -57,8 +57,17 @@ export default class implements PrefixCommand { textId: message.channel.id, deaf: true, }); - else if (player && !this.checkSameVoice(message, client, language, msg)) { - return; + else if (player && !this.checkSameVoice(message)) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return } const result = await player.search(value, { requester: message.author }); @@ -128,27 +137,15 @@ export default class implements PrefixCommand { } } - checkSameVoice( + private checkSameVoice( message: Message, - client: Manager, - language: string, - msg: Message ) { if ( message.member!.voice.channel !== message.guild!.members.me!.voice.channel ) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` - ) - .setColor(client.color), - ], - }); return false; + } else { + return true; } - - return true; } } diff --git a/src/commands/slash/Music/Play.ts b/src/commands/slash/Music/Play.ts index 448c79d8..1879b7dc 100644 --- a/src/commands/slash/Music/Play.ts +++ b/src/commands/slash/Music/Play.ts @@ -6,11 +6,13 @@ import { CommandInteractionOptionResolver, GuildMember, Message, + AutocompleteInteraction, } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { AutocompleteInteractionChoices, GlobalInteraction } from "../../../@types/Interaction.js"; export default class implements SlashCommand { name = ["play"]; @@ -82,8 +84,17 @@ export default class implements SlashCommand { }); } else if ( player && - !this.checkSameVoice(interaction, client, language, msg) + !this.checkSameVoice(interaction) ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); return; } @@ -166,28 +177,70 @@ export default class implements SlashCommand { } catch (e) {} } - checkSameVoice( + private checkSameVoice( interaction: CommandInteraction, - client: Manager, - language: string, - msg: Message ) { if ( (interaction.member as GuildMember)!.voice.channel !== interaction.guild!.members.me!.voice.channel ) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` - ) - .setColor(client.color), - ], - }); return false; + } else { + return true; + } + } + + // Autocomplete function + async autocomplete( + client: Manager, + interaction: GlobalInteraction, + language: string, + ) { + let choice: AutocompleteInteractionChoices[] = []; + const url = String((interaction as CommandInteraction).options.get( + "search" + )!.value); + + const Random = + client.config.lavalink.DEFAULT[ + Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) + ]; + + const match = client.REGEX.some((match) => { + return match.test(url) == true; + }); + + if (match == true) { + choice.push({ name: url, value: url }); + await (interaction as AutocompleteInteraction) + .respond(choice) + .catch(() => {}); + return; + } + + if (client.lavalink_using.length == 0) { + choice.push({ + name: `${client.i18n.get(language, "music", "no_node")}`, + value: `${client.i18n.get(language, "music", "no_node")}`, + }); + return; + } + const searchRes = await client.manager.search(url || Random); + + if (searchRes.tracks.length == 0 || !searchRes.tracks) { + return choice.push({ name: "Error song not matches", value: url }); + } + + for (let i = 0; i < 10; i++) { + const x = searchRes.tracks[i]; + choice.push({ + name: x.title ? x.title : "Unknown track name", + value: x.uri ? x.uri : url, + }); } - return true; + await (interaction as AutocompleteInteraction) + .respond(choice) + .catch(() => {}); } } diff --git a/src/commands/slash/Playlist/Add.ts b/src/commands/slash/Playlist/Add.ts index c5a6736a..652d6d41 100644 --- a/src/commands/slash/Playlist/Add.ts +++ b/src/commands/slash/Playlist/Add.ts @@ -3,12 +3,14 @@ import { CommandInteraction, ApplicationCommandOptionType, CommandInteractionOptionResolver, + AutocompleteInteraction, } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; import { KazagumoTrack } from "better-kazagumo"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { AutocompleteInteractionChoices, GlobalInteraction } from "../../../@types/Interaction.js"; const TrackAdd: KazagumoTrack[] = []; @@ -206,4 +208,58 @@ export default class implements SlashCommand { } } catch (e) {} } + + // Autocomplete function + async autocomplete( + client: Manager, + interaction: GlobalInteraction, + language: string, + ) { + let choice: AutocompleteInteractionChoices[] = []; + const url = String((interaction as CommandInteraction).options.get( + "search" + )!.value); + + const Random = + client.config.lavalink.DEFAULT[ + Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) + ]; + + const match = client.REGEX.some((match) => { + return match.test(url) == true; + }); + + if (match == true) { + choice.push({ name: url, value: url }); + await (interaction as AutocompleteInteraction) + .respond(choice) + .catch(() => {}); + return; + } + + if (client.lavalink_using.length == 0) { + choice.push({ + name: `${client.i18n.get(language, "music", "no_node")}`, + value: `${client.i18n.get(language, "music", "no_node")}`, + }); + return; + } + const searchRes = await client.manager.search(url || Random); + + if (searchRes.tracks.length == 0 || !searchRes.tracks) { + return choice.push({ name: "Error song not matches", value: url }); + } + + for (let i = 0; i < 10; i++) { + const x = searchRes.tracks[i]; + choice.push({ + name: x.title ? x.title : "Unknown track name", + value: x.uri ? x.uri : url, + }); + } + + await (interaction as AutocompleteInteraction) + .respond(choice) + .catch(() => {}); + } } diff --git a/src/events/guild/autoComplete.ts b/src/events/guild/autoComplete.ts deleted file mode 100644 index b07d0061..00000000 --- a/src/events/guild/autoComplete.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { Manager } from "../../manager.js"; -import { - InteractionType, - CommandInteraction, - AutocompleteInteraction, -} from "discord.js"; -import { - AutocompleteInteractionChoices, - GlobalInteraction, -} from "../../@types/Interaction.js"; -import { SlashCommand } from "../../@types/Command.js"; - -const REGEX = [ - /(?:https?:\/\/)?(?:www\.)?youtu(?:\.be\/|be.com\/\S*(?:watch|embed)(?:(?:(?=\/[-a-zA-Z0-9_]{11,}(?!\S))\/)|(?:\S*v=|v\/)))([-a-zA-Z0-9_]{11,})/, - /^.*(youtu.be\/|list=)([^#\&\?]*).*/, - /^(?:spotify:|https:\/\/[a-z]+\.spotify\.com\/(track\/|user\/(.*)\/playlist\/|playlist\/))(.*)$/, - /^https?:\/\/(?:www\.)?deezer\.com\/[a-z]+\/(track|album|playlist)\/(\d+)$/, - /^(?:(https?):\/\/)?(?:(?:www|m)\.)?(soundcloud\.com|snd\.sc)\/(.*)$/, - /(?:https:\/\/music\.apple\.com\/)(?:.+)?(artist|album|music-video|playlist)\/([\w\-\.]+(\/)+[\w\-\.]+|[^&]+)\/([\w\-\.]+(\/)+[\w\-\.]+|[^&]+)/, - /^https?:\/\/(?:www\.|secure\.|sp\.)?nicovideo\.jp\/watch\/([a-z]{2}[0-9]+)/, -]; - -export default class { - async execute( - client: Manager, - interaction: GlobalInteraction, - language: string, - command: SlashCommand - ) { - // Push Function - async function AutoCompletePush( - url: string, - choice: AutocompleteInteractionChoices[] - ) { - const Random = - client.config.lavalink.DEFAULT[ - Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) - ]; - - const match = REGEX.some((match) => { - return match.test(url) == true; - }); - - if (match == true) { - choice.push({ name: url, value: url }); - await (interaction as AutocompleteInteraction) - .respond(choice) - .catch(() => {}); - return; - } - - if (client.lavalink_using.length == 0) { - choice.push({ - name: `${client.i18n.get(language, "music", "no_node")}`, - value: `${client.i18n.get(language, "music", "no_node")}`, - }); - return; - } - const searchRes = await client.manager.search(url || Random); - - if (searchRes.tracks.length == 0 || !searchRes.tracks) { - return choice.push({ name: "Error song not matches", value: url }); - } - - for (let i = 0; i < 10; i++) { - const x = searchRes.tracks[i]; - choice.push({ - name: x.title ? x.title : "Unknown track name", - value: x.uri ? x.uri : url, - }); - } - - await (interaction as AutocompleteInteraction) - .respond(choice) - .catch(() => {}); - } - - if ( - (interaction as CommandInteraction).commandName == "play" || - (interaction as CommandInteraction).commandName + command!.name[1] == - "playlist" + "add" - ) { - let choice: AutocompleteInteractionChoices[] = []; - const url = (interaction as CommandInteraction).options.get( - "search" - )!.value; - return AutoCompletePush(url as string, choice); - } else if ( - (interaction as CommandInteraction).commandName + command!.name[1] == - "playlist" + "edit" - ) { - let choice: AutocompleteInteractionChoices[] = []; - const url = (interaction as CommandInteraction).options.get("add")!.value; - return AutoCompletePush(url as string, choice); - } - } -} diff --git a/src/events/guild/interactionCreate.ts b/src/events/guild/interactionCreate.ts index e30bf8ba..d496a22f 100644 --- a/src/events/guild/interactionCreate.ts +++ b/src/events/guild/interactionCreate.ts @@ -86,9 +86,18 @@ export default class { if ( Number(interaction.type) == - InteractionType.ApplicationCommandAutocomplete - ) - return client.emit("autoComplete", interaction, language, command); + InteractionType.ApplicationCommandAutocomplete && (command as any).autocomplete !== undefined + ) { + try { + (command as any).autocomplete(client, interaction, language); + } catch (error) { + client.logger.log({ + level: "error", + message: error, + }); + } + return + } const msg_cmd = [ `[COMMAND] ${command.name[0]}`, @@ -255,7 +264,6 @@ export default class { }); } - if (!command) return; if (command) { try { command.run(interaction, client, language); diff --git a/src/manager.ts b/src/manager.ts index 22af833c..397e99aa 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -37,10 +37,19 @@ import { DeployService } from "./services/DeployService.js"; config(); const __dirname = dirname(fileURLToPath(import.meta.url)); - const loggerService = new LoggerService().init(); const configData = new ConfigDataService().data; +const REGEX = [ + /(?:https?:\/\/)?(?:www\.)?youtu(?:\.be\/|be.com\/\S*(?:watch|embed)(?:(?:(?=\/[-a-zA-Z0-9_]{11,}(?!\S))\/)|(?:\S*v=|v\/)))([-a-zA-Z0-9_]{11,})/, + /^.*(youtu.be\/|list=)([^#\&\?]*).*/, + /^(?:spotify:|https:\/\/[a-z]+\.spotify\.com\/(track\/|user\/(.*)\/playlist\/|playlist\/))(.*)$/, + /^https?:\/\/(?:www\.)?deezer\.com\/[a-z]+\/(track|album|playlist)\/(\d+)$/, + /^(?:(https?):\/\/)?(?:(?:www|m)\.)?(soundcloud\.com|snd\.sc)\/(.*)$/, + /(?:https:\/\/music\.apple\.com\/)(?:.+)?(artist|album|music-video|playlist)\/([\w\-\.]+(\/)+[\w\-\.]+|[^&]+)\/([\w\-\.]+(\/)+[\w\-\.]+|[^&]+)/, + /^https?:\/\/(?:www\.|secure\.|sp\.)?nicovideo\.jp\/watch\/([a-z]{2}[0-9]+)/, +]; + loggerService.info("Booting client..."); export class Manager extends Client { @@ -78,6 +87,7 @@ export class Manager extends Client { enSwitchMod!: ActionRowBuilder; icons: IconType; cluster?: ClusterClient; + REGEX: RegExp[]; // Main class constructor() { @@ -103,6 +113,8 @@ export class Manager extends Client { GatewayIntentBits.GuildMessages, ], }); + + // Initial basic bot config this.logger = loggerService; this.config = configData; this.metadata = new ManifestService().data.metadata.bot; @@ -116,8 +128,9 @@ export class Manager extends Client { }); this.prefix = this.config.features.MESSAGE_CONTENT.commands.prefix || "d!"; this.shard_status = false; + this.REGEX = REGEX - // Auto fix lavalink varibles + // Initial autofix lavalink varibles this.lavalink_list = []; this.lavalink_using = []; this.fixing_nodes = false; From 63851ce74bf64c15d94d2acf5fea4c1a14e66f1d Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 21 Dec 2023 16:22:25 +0700 Subject: [PATCH 17/20] Update Play.ts mobile --- src/commands/slash/Music/Play.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/commands/slash/Music/Play.ts b/src/commands/slash/Music/Play.ts index 1879b7dc..45326ca0 100644 --- a/src/commands/slash/Music/Play.ts +++ b/src/commands/slash/Music/Play.ts @@ -180,14 +180,9 @@ export default class implements SlashCommand { private checkSameVoice( interaction: CommandInteraction, ) { - if ( - (interaction.member as GuildMember)!.voice.channel !== + return (interaction.member as GuildMember)!.voice.channel !== interaction.guild!.members.me!.voice.channel - ) { - return false; - } else { - return true; - } + ) } // Autocomplete function From 087c59288da7160684ad441dba07d43c63fe041b Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Thu, 21 Dec 2023 16:26:34 +0700 Subject: [PATCH 18/20] Update Play.ts --- src/commands/prefix/Music/Play.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/commands/prefix/Music/Play.ts b/src/commands/prefix/Music/Play.ts index d134c839..fe9d8626 100644 --- a/src/commands/prefix/Music/Play.ts +++ b/src/commands/prefix/Music/Play.ts @@ -140,12 +140,8 @@ export default class implements PrefixCommand { private checkSameVoice( message: Message, ) { - if ( + return ( message.member!.voice.channel !== message.guild!.members.me!.voice.channel - ) { - return false; - } else { - return true; - } + ) } } From c080dd7f70b744fbf5b5488e65f7557ce4efff93 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Sun, 24 Dec 2023 13:01:21 +0700 Subject: [PATCH 19/20] Update to lavalink v4, patch /play. Ready to release --- package.json | 4 +- pnpm-lock.yaml | 137 +++++------------- src/commands/context/Play.ts | 4 +- src/commands/prefix/Filter/3d.ts | 9 +- src/commands/prefix/Filter/Bass.ts | 37 ++--- src/commands/prefix/Filter/Bassboost.ts | 74 +++++----- src/commands/prefix/Filter/China.ts | 13 +- src/commands/prefix/Filter/Chipmunk.ts | 15 +- src/commands/prefix/Filter/Darthvader.ts | 13 +- src/commands/prefix/Filter/Daycore.ts | 43 +++--- src/commands/prefix/Filter/Doubletime.ts | 9 +- src/commands/prefix/Filter/Earrape.ts | 5 - src/commands/prefix/Filter/Equalizer.ts | 11 +- src/commands/prefix/Filter/Karaoke.ts | 15 +- src/commands/prefix/Filter/Nightcore.ts | 13 +- src/commands/prefix/Filter/Pitch.ts | 7 +- src/commands/prefix/Filter/Pop.ts | 36 +++-- src/commands/prefix/Filter/Rate.ts | 7 +- src/commands/prefix/Filter/Reset.ts | 4 +- src/commands/prefix/Filter/Slowmotion.ts | 13 +- src/commands/prefix/Filter/Soft.ts | 37 ++--- src/commands/prefix/Filter/Speed.ts | 7 +- src/commands/prefix/Filter/Superbass.ts | 37 ++--- src/commands/prefix/Filter/Television.ts | 37 ++--- src/commands/prefix/Filter/Treblebass.ts | 37 ++--- src/commands/prefix/Filter/Tremolo.ts | 11 +- src/commands/prefix/Filter/Vaporwave.ts | 41 +++--- src/commands/prefix/Filter/Vibrate.ts | 19 ++- src/commands/prefix/Filter/Vibrato.ts | 15 +- src/commands/prefix/Music/247.ts | 21 +-- src/commands/prefix/Music/Forward.ts | 12 +- src/commands/prefix/Music/Lofi.ts | 4 +- src/commands/prefix/Music/Loop.ts | 2 +- src/commands/prefix/Music/LoopQueue.ts | 2 +- src/commands/prefix/Music/Play.ts | 39 +++-- src/commands/prefix/Music/Previous.ts | 2 +- src/commands/prefix/Music/Radio.ts | 2 +- src/commands/prefix/Music/Remove.ts | 2 +- src/commands/prefix/Music/RemoveDuplicate.ts | 2 +- src/commands/prefix/Music/Replay.ts | 7 +- src/commands/prefix/Music/Rewind.ts | 10 +- src/commands/prefix/Music/Volume.ts | 2 +- src/commands/prefix/Playlist/Add.ts | 6 +- src/commands/prefix/Playlist/SaveQueue.ts | 6 +- src/commands/slash/Filter/3d.ts | 15 +- src/commands/slash/Filter/Bass.ts | 39 ++--- src/commands/slash/Filter/Bassboost.ts | 78 +++++----- src/commands/slash/Filter/China.ts | 15 +- src/commands/slash/Filter/Chipmunk.ts | 15 +- src/commands/slash/Filter/Darthvader.ts | 16 +- src/commands/slash/Filter/Daycore.ts | 45 +++--- src/commands/slash/Filter/Doubletime.ts | 11 +- src/commands/slash/Filter/Earrape.ts | 5 - src/commands/slash/Filter/Equalizer.ts | 15 +- src/commands/slash/Filter/Karaoke.ts | 17 ++- src/commands/slash/Filter/Nightcore.ts | 15 +- src/commands/slash/Filter/Pitch.ts | 9 +- src/commands/slash/Filter/Pop.ts | 39 ++--- src/commands/slash/Filter/Rate.ts | 9 +- src/commands/slash/Filter/Reset.ts | 6 +- src/commands/slash/Filter/Slowmotion.ts | 15 +- src/commands/slash/Filter/Soft.ts | 39 ++--- src/commands/slash/Filter/Speed.ts | 9 +- src/commands/slash/Filter/Superbass.ts | 39 ++--- src/commands/slash/Filter/Television.ts | 38 ++--- src/commands/slash/Filter/Treblebass.ts | 38 ++--- src/commands/slash/Filter/Tremolo.ts | 13 +- src/commands/slash/Filter/Vaporwave.ts | 43 +++--- src/commands/slash/Filter/Vibrate.ts | 21 +-- src/commands/slash/Filter/Vibrato.ts | 13 +- src/commands/slash/Music/247.ts | 28 ++-- src/commands/slash/Music/Forward.ts | 18 ++- src/commands/slash/Music/Lofi.ts | 4 +- src/commands/slash/Music/Loop.ts | 2 +- src/commands/slash/Music/LoopQueue.ts | 2 +- src/commands/slash/Music/Play.ts | 48 ++++-- src/commands/slash/Music/Previous.ts | 2 +- src/commands/slash/Music/Queue.ts | 2 +- src/commands/slash/Music/Radio.ts | 2 +- src/commands/slash/Music/Remove.ts | 2 +- src/commands/slash/Music/RemoveDuplicate.ts | 2 +- src/commands/slash/Music/Replay.ts | 7 +- src/commands/slash/Music/Rewind.ts | 14 +- src/commands/slash/Music/Volume.ts | 2 +- src/commands/slash/Playlist/Add.ts | 25 ++-- src/commands/slash/Playlist/SaveQueue.ts | 6 +- src/database/build/AutoReconnect.ts | 2 +- src/database/schema/AutoReconnect.ts | 2 +- src/database/setup/lavalink.ts | 2 +- src/events/guild/interactionCreate.ts | 5 +- src/events/node/disconnect.ts | 2 +- src/events/player/playerCreate.ts | 2 +- src/events/player/playerDestroy.ts | 2 +- src/events/player/playerEmpty.ts | 2 +- src/events/player/playerEnd.ts | 4 +- src/events/player/playerException.ts | 2 +- src/events/player/playerMoved.ts | 2 +- src/events/player/playerResolveError.ts | 2 +- src/events/player/playerResumed.ts | 2 +- src/events/player/playerStart.ts | 11 +- src/events/player/playerStuck.ts | 2 +- src/events/player/playerUpdate.ts | 2 +- src/functions/clearMsg.ts | 2 +- src/handlers/Player/ButtonCommands/Loop.ts | 2 +- src/handlers/Player/ButtonCommands/Pause.ts | 2 +- .../Player/ButtonCommands/Previous.ts | 4 +- src/handlers/Player/ButtonCommands/Skip.ts | 2 +- src/handlers/Player/ButtonCommands/Stop.ts | 2 +- src/handlers/Player/loadContent.ts | 6 +- src/handlers/Player/loadUpdate.ts | 4 +- src/manager.ts | 4 +- src/manifest.xml | 2 +- src/structures/Kazagumo.ts | 2 +- src/structures/QueueDuration.ts | 2 +- src/webserver/request/Previous.ts | 2 +- src/webserver/request/status.current.ts | 2 +- src/webserver/request/status.ts | 4 +- 117 files changed, 915 insertions(+), 785 deletions(-) diff --git a/package.json b/package.json index 0d9eca62..6c63531b 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "dependencies": { "@hammerhq/localization": "^0.1.5", "axios": "^1.6.0", - "better-kazagumo": "^0.0.4", "bufferutil": "^4.0.8", "chalk": "^5.3.0", "chillout": "^5.0.0", @@ -58,6 +57,7 @@ "fs-extra": "^11.1.1", "humanize-duration": "^3.30.0", "js-yaml": "^4.1.0", + "kazagumo.mod": "^1.0.0", "lodash": "^4.17.21", "markdown-it": "^13.0.2", "moment": "^2.29.4", @@ -71,7 +71,7 @@ "plsargs": "^0.1.6", "pretty-ms": "^8.0.0", "recursive-readdir": "^2.2.3", - "shoukaku": "^3.4.0", + "shoukaku": "^4.0.1", "stuffs": "^0.1.34", "utf-8-validate": "^5.0.2", "voucher-code-generator": "^1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a01f4cd..1e1e2ccd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,9 +15,6 @@ dependencies: axios: specifier: ^1.6.0 version: 1.6.0 - better-kazagumo: - specifier: ^0.0.4 - version: 0.0.4(discord.js@14.13.0)(typescript@5.2.2) bufferutil: specifier: ^4.0.8 version: 4.0.8 @@ -60,6 +57,9 @@ dependencies: js-yaml: specifier: ^4.1.0 version: 4.1.0 + kazagumo.mod: + specifier: ^1.0.0 + version: 1.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.2) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -98,8 +98,8 @@ dependencies: specifier: ^2.2.3 version: 2.2.3 shoukaku: - specifier: ^3.4.0 - version: 3.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.2) + specifier: ^4.0.1 + version: 4.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2) stuffs: specifier: ^0.1.34 version: 0.1.34 @@ -867,10 +867,6 @@ packages: engines: {node: '>=12'} dev: true - /ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: false - /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1001,6 +997,16 @@ packages: - debug dev: false + /axios@1.6.2: + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1008,24 +1014,6 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true - /better-kazagumo@0.0.4(discord.js@14.13.0)(typescript@5.2.2): - resolution: {integrity: sha512-GFHQNb8teeZEuDSH3IbYuhLtmLXVaMRhcBi9Al6YfoWjHMiDAsCctaSdpHbbNTUuI010kQm5Pr+YHJnFl0tJug==} - engines: {node: '>=16.5.0'} - dependencies: - axios: 1.6.0 - dokdo: 1.0.1(discord.js@14.13.0) - events: 3.3.0 - node-html-parser: 6.1.11 - typedoc: 0.25.3(typescript@5.2.2) - typedocs: 0.6.7 - undici: 5.27.2 - transitivePeerDependencies: - - debug - - discord.js - - encoding - - typescript - dev: false - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -1073,6 +1061,7 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -1465,18 +1454,6 @@ packages: - utf-8-validate dev: false - /dokdo@1.0.1(discord.js@14.13.0): - resolution: {integrity: sha512-DquSmyQeSQbYhCMZO67z7toDMSd7fJef+0dgDXxFwRuPEE5shk0ggitdVGwKGXj36cf7ISuO3Ka5S8FZKcQXFQ==} - engines: {node: '>=16.9.0'} - peerDependencies: - discord.js: '14' - dependencies: - discord.js: 14.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.2) - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: false - /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -2268,10 +2245,6 @@ packages: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: false - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -2294,6 +2267,20 @@ packages: engines: {node: '>=12.0.0'} dev: false + /kazagumo.mod@1.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.2): + resolution: {integrity: sha512-Qadlfc/S0R+YUu8CMJ+nDO7AFfvsrqDtsuUeV1wJOL3CW+EXArvAnFC+TlgNFxxMQhHnpONbpeLYA8lkxqSofw==} + engines: {node: '>=16.5.0 <=20'} + dependencies: + axios: 1.6.2 + events: 3.3.0 + node-html-parser: 6.1.11 + shoukaku: 4.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + /kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} dev: false @@ -2399,10 +2386,6 @@ packages: engines: {node: '>=16.14'} dev: false - /lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - dev: false - /magic-bytes.js@1.5.0: resolution: {integrity: sha512-wJkXvutRbNWcc37tt5j1HyOK1nosspdh3dj6LUYYAvF6JYNqs53IfRvK9oEpcwiDA1NdoIi64yAMfdivPeVAyw==} dev: false @@ -2422,12 +2405,6 @@ packages: uc.micro: 1.0.6 dev: false - /marked@4.3.0: - resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} - engines: {node: '>= 12'} - hasBin: true - dev: false - /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: false @@ -2504,6 +2481,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} @@ -3305,24 +3283,13 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - /shiki@0.14.5: - resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} - dependencies: - ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 - dev: false - - /shoukaku@3.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-IxkicImqMy7fu2QDXsQaqajR66oI2xL4FFEKaxIKLSPZTs/51ZlmsevnvwcZdABm+mfVkWFNQJotP1WcBeZ+Dg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + /shoukaku@4.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2): + resolution: {integrity: sha512-+Y94AnUFabCkE8O2Y3MSfnVmiiQ1MMVK/DO962Q23KPTWJkuqs+S/CPRQSOPWqo+ISq7teVxGJsSapwnJOrFgQ==} + engines: {node: '>=18.0.0', npm: '>=7.0.0'} dependencies: - node-fetch: 2.7.0 ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.2) transitivePeerDependencies: - bufferutil - - encoding - utf-8-validate dev: false @@ -3683,33 +3650,6 @@ packages: is-typed-array: 1.1.12 dev: true - /typedoc@0.25.3(typescript@5.2.2): - resolution: {integrity: sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==} - engines: {node: '>= 16'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x - dependencies: - lunr: 2.3.9 - marked: 4.3.0 - minimatch: 9.0.3 - shiki: 0.14.5 - typescript: 5.2.2 - dev: false - - /typedocs@0.6.7: - resolution: {integrity: sha512-ZWpgwfPyJoqpLVUX+XdOqQLGcZJneSIWDLSlKt0ItkGeFrz2BFPIr38/mfR11Yw50mmPInkd4MC0KLU7PV+XUA==} - dependencies: - marked: 4.3.0 - typescript: 3.2.4 - dev: false - - /typescript@3.2.4: - resolution: {integrity: sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: false - /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -3720,6 +3660,7 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true + dev: true /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -3809,14 +3750,6 @@ packages: resolution: {integrity: sha512-t4wnI91KC58LtjX2I0rJDhRm1JTXD+G7A+7iqp0sRSgpeJP4eKLexDRDLe2nedR7xFQcVlZudDZRBLrMP5+KTA==} dev: false - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: false - - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: false - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false diff --git a/src/commands/context/Play.ts b/src/commands/context/Play.ts index 118f06b8..03e13867 100644 --- a/src/commands/context/Play.ts +++ b/src/commands/context/Play.ts @@ -101,7 +101,7 @@ export default class implements ContextCommand { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -112,7 +112,7 @@ export default class implements ContextCommand { const embed = new EmbedBuilder().setColor(client.color).setDescription( `${client.i18n.get(language, "music", "play_result", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` diff --git a/src/commands/prefix/Filter/3d.ts b/src/commands/prefix/Filter/3d.ts index 968c76c9..23621fac 100644 --- a/src/commands/prefix/Filter/3d.ts +++ b/src/commands/prefix/Filter/3d.ts @@ -58,12 +58,15 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - rotation: { rotationHz: 0.2 }, + playerOptions: { + filters: { + rotation: { rotationHz: 0.2 }, + }, + }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/prefix/Filter/Bass.ts b/src/commands/prefix/Filter/Bass.ts index 9cb19ce6..0bce8b1f 100644 --- a/src/commands/prefix/Filter/Bass.ts +++ b/src/commands/prefix/Filter/Bass.ts @@ -58,24 +58,27 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0.1 }, - { band: 1, gain: 0.1 }, - { band: 2, gain: 0.05 }, - { band: 3, gain: 0.05 }, - { band: 4, gain: -0.05 }, - { band: 5, gain: -0.05 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.05 }, - { band: 8, gain: -0.05 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0.05 }, - { band: 11, gain: 0.05 }, - { band: 12, gain: 0.1 }, - { band: 13, gain: 0.1 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.1 }, + { band: 1, gain: 0.1 }, + { band: 2, gain: 0.05 }, + { band: 3, gain: 0.05 }, + { band: 4, gain: -0.05 }, + { band: 5, gain: -0.05 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.05 }, + { band: 8, gain: -0.05 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0.05 }, + { band: 11, gain: 0.05 }, + { band: 12, gain: 0.1 }, + { band: 13, gain: 0.1 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Bassboost.ts b/src/commands/prefix/Filter/Bassboost.ts index edb61fc0..27f7dd09 100644 --- a/src/commands/prefix/Filter/Bassboost.ts +++ b/src/commands/prefix/Filter/Bassboost.ts @@ -69,24 +69,27 @@ export default class implements PrefixCommand { if (!value) { const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0.1 }, - { band: 1, gain: 0.1 }, - { band: 2, gain: 0.05 }, - { band: 3, gain: 0.05 }, - { band: 4, gain: -0.05 }, - { band: 5, gain: -0.05 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.05 }, - { band: 8, gain: -0.05 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0.05 }, - { band: 11, gain: 0.05 }, - { band: 12, gain: 0.1 }, - { band: 13, gain: 0.1 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.1 }, + { band: 1, gain: 0.1 }, + { band: 2, gain: 0.05 }, + { band: 3, gain: 0.05 }, + { band: 4, gain: -0.05 }, + { band: 5, gain: -0.05 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.05 }, + { band: 8, gain: -0.05 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0.05 }, + { band: 11, gain: 0.05 }, + { band: 12, gain: 0.1 }, + { band: 13, gain: 0.1 }, + ], + }, + }, }; await player["send"](data); @@ -135,24 +138,27 @@ export default class implements PrefixCommand { ], }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: Number(value) / 10 }, - { band: 1, gain: Number(value) / 10 }, - { band: 2, gain: Number(value) / 10 }, - { band: 3, gain: Number(value) / 10 }, - { band: 4, gain: Number(value) / 10 }, - { band: 5, gain: Number(value) / 10 }, - { band: 6, gain: Number(value) / 10 }, - { band: 7, gain: 0 }, - { band: 8, gain: 0 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: Number(value) / 10 }, + { band: 1, gain: Number(value) / 10 }, + { band: 2, gain: Number(value) / 10 }, + { band: 3, gain: Number(value) / 10 }, + { band: 4, gain: Number(value) / 10 }, + { band: 5, gain: Number(value) / 10 }, + { band: 6, gain: Number(value) / 10 }, + { band: 7, gain: 0 }, + { band: 8, gain: 0 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; await player["send"](data); const msg2 = await message.reply({ diff --git a/src/commands/prefix/Filter/China.ts b/src/commands/prefix/Filter/China.ts index 5e613a08..7bd00b65 100644 --- a/src/commands/prefix/Filter/China.ts +++ b/src/commands/prefix/Filter/China.ts @@ -58,12 +58,15 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 0.75, - pitch: 1.25, - rate: 1.25, + playerOptions: { + filters: { + timescale: { + speed: 0.75, + pitch: 1.25, + rate: 1.25, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Chipmunk.ts b/src/commands/prefix/Filter/Chipmunk.ts index c2cc6a17..6e4b088e 100644 --- a/src/commands/prefix/Filter/Chipmunk.ts +++ b/src/commands/prefix/Filter/Chipmunk.ts @@ -58,16 +58,19 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 1.05, - pitch: 1.35, - rate: 1.25, + playerOptions: { + filters: { + timescale: { + speed: 1.05, + pitch: 1.35, + rate: 1.25, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/prefix/Filter/Darthvader.ts b/src/commands/prefix/Filter/Darthvader.ts index a8fea58a..4062eda2 100644 --- a/src/commands/prefix/Filter/Darthvader.ts +++ b/src/commands/prefix/Filter/Darthvader.ts @@ -58,12 +58,15 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 0.975, - pitch: 0.5, - rate: 0.8, + playerOptions: { + filters: { + timescale: { + speed: 0.975, + pitch: 0.5, + rate: 0.8, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Daycore.ts b/src/commands/prefix/Filter/Daycore.ts index 5ca51bed..c9ef02c4 100644 --- a/src/commands/prefix/Filter/Daycore.ts +++ b/src/commands/prefix/Filter/Daycore.ts @@ -58,27 +58,30 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: -0.25 }, - { band: 9, gain: -0.25 }, - { band: 10, gain: -0.25 }, - { band: 11, gain: -0.25 }, - { band: 12, gain: -0.25 }, - { band: 13, gain: -0.25 }, - ], - timescale: { - pitch: 0.63, - rate: 1.05, + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: -0.25 }, + { band: 9, gain: -0.25 }, + { band: 10, gain: -0.25 }, + { band: 11, gain: -0.25 }, + { band: 12, gain: -0.25 }, + { band: 13, gain: -0.25 }, + ], + timescale: { + pitch: 0.63, + rate: 1.05, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Doubletime.ts b/src/commands/prefix/Filter/Doubletime.ts index 99130924..d2fbc67a 100644 --- a/src/commands/prefix/Filter/Doubletime.ts +++ b/src/commands/prefix/Filter/Doubletime.ts @@ -58,10 +58,13 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 1.165, + playerOptions: { + filters: { + timescale: { + speed: 1.165, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Earrape.ts b/src/commands/prefix/Filter/Earrape.ts index 18096602..c668ab43 100644 --- a/src/commands/prefix/Filter/Earrape.ts +++ b/src/commands/prefix/Filter/Earrape.ts @@ -58,11 +58,6 @@ export default class implements PrefixCommand { }); await player.setVolume(500); - const data = { - op: "filters", - guildId: message.guild!.id, - }; - await player["send"](data); const earrapped = new EmbedBuilder() .setDescription( diff --git a/src/commands/prefix/Filter/Equalizer.ts b/src/commands/prefix/Filter/Equalizer.ts index 3a7f39f4..98360134 100644 --- a/src/commands/prefix/Filter/Equalizer.ts +++ b/src/commands/prefix/Filter/Equalizer.ts @@ -85,8 +85,10 @@ export default class implements PrefixCommand { return message.reply({ embeds: [embed] }); } else if (value == "off" || value == "reset") { const data = { - op: "filters", guildId: message.guild!.id, + playerOptions: { + filters: {}, + }, }; return player["send"](data); } @@ -124,9 +126,12 @@ export default class implements PrefixCommand { for (let i = 0; i < bands.length; i++) { if (i > 13) break; const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [{ band: i, gain: Number(bands[i]) / 10 }], + playerOptions: { + filters: { + equalizer: [{ band: i, gain: Number(bands[i]) / 10 }], + }, + }, }; player["send"](data); bandsStr += `${bands[i]} `; diff --git a/src/commands/prefix/Filter/Karaoke.ts b/src/commands/prefix/Filter/Karaoke.ts index 3efdc882..006fb7c2 100644 --- a/src/commands/prefix/Filter/Karaoke.ts +++ b/src/commands/prefix/Filter/Karaoke.ts @@ -57,13 +57,16 @@ export default class implements PrefixCommand { ], }); const data = { - op: "filters", guildId: message.guild!.id, - karaoke: { - level: 1.0, - monoLevel: 1.0, - filterBand: 220.0, - filterWidth: 100.0, + playerOptions: { + filters: { + karaoke: { + level: 1.0, + monoLevel: 1.0, + filterBand: 220.0, + filterWidth: 100.0, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Nightcore.ts b/src/commands/prefix/Filter/Nightcore.ts index 6f1254bb..ac8809f3 100644 --- a/src/commands/prefix/Filter/Nightcore.ts +++ b/src/commands/prefix/Filter/Nightcore.ts @@ -58,12 +58,15 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 1.05, - pitch: 1.125, - rate: 1.05, + playerOptions: { + filters: { + timescale: { + speed: 1.05, + pitch: 1.125, + rate: 1.05, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Pitch.ts b/src/commands/prefix/Filter/Pitch.ts index e5ec3313..41955a0d 100644 --- a/src/commands/prefix/Filter/Pitch.ts +++ b/src/commands/prefix/Filter/Pitch.ts @@ -77,9 +77,12 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { pitch: value }, + playerOptions: { + filters: { + timescale: { pitch: Number(value) }, + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Pop.ts b/src/commands/prefix/Filter/Pop.ts index 5a6eb3c3..84fb7bb0 100644 --- a/src/commands/prefix/Filter/Pop.ts +++ b/src/commands/prefix/Filter/Pop.ts @@ -60,22 +60,26 @@ export default class implements PrefixCommand { const data = { op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0.65 }, - { band: 1, gain: 0.45 }, - { band: 2, gain: -0.45 }, - { band: 3, gain: -0.65 }, - { band: 4, gain: -0.35 }, - { band: 5, gain: 0.45 }, - { band: 6, gain: 0.55 }, - { band: 7, gain: 0.6 }, - { band: 8, gain: 0.6 }, - { band: 9, gain: 0.6 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.65 }, + { band: 1, gain: 0.45 }, + { band: 2, gain: -0.45 }, + { band: 3, gain: -0.65 }, + { band: 4, gain: -0.35 }, + { band: 5, gain: 0.45 }, + { band: 6, gain: 0.55 }, + { band: 7, gain: 0.6 }, + { band: 8, gain: 0.6 }, + { band: 9, gain: 0.6 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Rate.ts b/src/commands/prefix/Filter/Rate.ts index b1e24241..e3daf29f 100644 --- a/src/commands/prefix/Filter/Rate.ts +++ b/src/commands/prefix/Filter/Rate.ts @@ -78,9 +78,12 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { rate: value }, + playerOptions: { + filters: { + timescale: { rate: Number(value) }, + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Reset.ts b/src/commands/prefix/Filter/Reset.ts index 4a0f8005..6b265fd2 100644 --- a/src/commands/prefix/Filter/Reset.ts +++ b/src/commands/prefix/Filter/Reset.ts @@ -56,8 +56,10 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, + playerOptions: { + filters: {}, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Slowmotion.ts b/src/commands/prefix/Filter/Slowmotion.ts index 34c7b78b..2ac6ae68 100644 --- a/src/commands/prefix/Filter/Slowmotion.ts +++ b/src/commands/prefix/Filter/Slowmotion.ts @@ -58,12 +58,15 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { - speed: 0.5, - pitch: 1.0, - rate: 0.8, + playerOptions: { + filters: { + timescale: { + speed: 0.5, + pitch: 1.0, + rate: 0.8, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Soft.ts b/src/commands/prefix/Filter/Soft.ts index 726736b4..253db9da 100644 --- a/src/commands/prefix/Filter/Soft.ts +++ b/src/commands/prefix/Filter/Soft.ts @@ -58,24 +58,27 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: -0.25 }, - { band: 9, gain: -0.25 }, - { band: 10, gain: -0.25 }, - { band: 11, gain: -0.25 }, - { band: 12, gain: -0.25 }, - { band: 13, gain: -0.25 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: -0.25 }, + { band: 9, gain: -0.25 }, + { band: 10, gain: -0.25 }, + { band: 11, gain: -0.25 }, + { band: 12, gain: -0.25 }, + { band: 13, gain: -0.25 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Speed.ts b/src/commands/prefix/Filter/Speed.ts index 10a896d5..68c4be98 100644 --- a/src/commands/prefix/Filter/Speed.ts +++ b/src/commands/prefix/Filter/Speed.ts @@ -78,9 +78,12 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - timescale: { speed: value }, + playerOptions: { + filters: { + timescale: { speed: Number(value) }, + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Superbass.ts b/src/commands/prefix/Filter/Superbass.ts index 3502d156..5a88e51a 100644 --- a/src/commands/prefix/Filter/Superbass.ts +++ b/src/commands/prefix/Filter/Superbass.ts @@ -58,24 +58,27 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0.2 }, - { band: 1, gain: 0.3 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0.8 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0.5 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.5 }, - { band: 8, gain: 0 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.2 }, + { band: 1, gain: 0.3 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0.8 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0.5 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.5 }, + { band: 8, gain: 0 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Television.ts b/src/commands/prefix/Filter/Television.ts index 97c3293e..1e65f340 100644 --- a/src/commands/prefix/Filter/Television.ts +++ b/src/commands/prefix/Filter/Television.ts @@ -58,24 +58,27 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0.65 }, - { band: 8, gain: 0.65 }, - { band: 9, gain: 0.65 }, - { band: 10, gain: 0.65 }, - { band: 11, gain: 0.65 }, - { band: 12, gain: 0.65 }, - { band: 13, gain: 0.65 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0.65 }, + { band: 8, gain: 0.65 }, + { band: 9, gain: 0.65 }, + { band: 10, gain: 0.65 }, + { band: 11, gain: 0.65 }, + { band: 12, gain: 0.65 }, + { band: 13, gain: 0.65 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Treblebass.ts b/src/commands/prefix/Filter/Treblebass.ts index 98345fa7..377946fe 100644 --- a/src/commands/prefix/Filter/Treblebass.ts +++ b/src/commands/prefix/Filter/Treblebass.ts @@ -57,24 +57,27 @@ export default class implements PrefixCommand { ], }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0.6 }, - { band: 1, gain: 0.67 }, - { band: 2, gain: 0.67 }, - { band: 3, gain: 0 }, - { band: 4, gain: -0.5 }, - { band: 5, gain: 0.15 }, - { band: 6, gain: -0.45 }, - { band: 7, gain: 0.23 }, - { band: 8, gain: 0.35 }, - { band: 9, gain: 0.45 }, - { band: 10, gain: 0.55 }, - { band: 11, gain: 0.6 }, - { band: 12, gain: 0.55 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.6 }, + { band: 1, gain: 0.67 }, + { band: 2, gain: 0.67 }, + { band: 3, gain: 0 }, + { band: 4, gain: -0.5 }, + { band: 5, gain: 0.15 }, + { band: 6, gain: -0.45 }, + { band: 7, gain: 0.23 }, + { band: 8, gain: 0.35 }, + { band: 9, gain: 0.45 }, + { band: 10, gain: 0.55 }, + { band: 11, gain: 0.6 }, + { band: 12, gain: 0.55 }, + { band: 13, gain: 0 }, + ], + }, + }, }; await player["send"](data); diff --git a/src/commands/prefix/Filter/Tremolo.ts b/src/commands/prefix/Filter/Tremolo.ts index 8469c94c..66779052 100644 --- a/src/commands/prefix/Filter/Tremolo.ts +++ b/src/commands/prefix/Filter/Tremolo.ts @@ -58,11 +58,14 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - tremolo: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + filters: { + tremolo: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Vaporwave.ts b/src/commands/prefix/Filter/Vaporwave.ts index fe65d1e8..8e95b7d7 100644 --- a/src/commands/prefix/Filter/Vaporwave.ts +++ b/src/commands/prefix/Filter/Vaporwave.ts @@ -58,26 +58,29 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: 0.15 }, - { band: 9, gain: 0.15 }, - { band: 10, gain: 0.15 }, - { band: 11, gain: 0.15 }, - { band: 12, gain: 0.15 }, - { band: 13, gain: 0.15 }, - ], - timescale: { - pitch: 0.55, + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: 0.15 }, + { band: 9, gain: 0.15 }, + { band: 10, gain: 0.15 }, + { band: 11, gain: 0.15 }, + { band: 12, gain: 0.15 }, + { band: 13, gain: 0.15 }, + ], + timescale: { + pitch: 0.55, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Vibrate.ts b/src/commands/prefix/Filter/Vibrate.ts index 7d1c84e9..65feab6e 100644 --- a/src/commands/prefix/Filter/Vibrate.ts +++ b/src/commands/prefix/Filter/Vibrate.ts @@ -58,15 +58,18 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - vibrato: { - frequency: 4.0, - depth: 0.75, - }, - tremolo: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + filters: { + vibrato: { + frequency: 4.0, + depth: 0.75, + }, + tremolo: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; diff --git a/src/commands/prefix/Filter/Vibrato.ts b/src/commands/prefix/Filter/Vibrato.ts index 0948f42d..d16570fc 100644 --- a/src/commands/prefix/Filter/Vibrato.ts +++ b/src/commands/prefix/Filter/Vibrato.ts @@ -58,11 +58,18 @@ export default class implements PrefixCommand { }); const data = { - op: "filters", guildId: message.guild!.id, - vibrato: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + vibrato: { + frequency: 4.0, + depth: 0.75, + }, + filters: { + vibrato: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; diff --git a/src/commands/prefix/Music/247.ts b/src/commands/prefix/Music/247.ts index 09a789be..0a6e89f9 100644 --- a/src/commands/prefix/Music/247.ts +++ b/src/commands/prefix/Music/247.ts @@ -1,7 +1,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements PrefixCommand { @@ -30,27 +30,28 @@ export default class implements PrefixCommand { ], }); - const player = client.manager.players.get(message.guild!.id); - if (!player) + const { channel } = message.member!.voice; + if ( + !channel || + message.member!.voice.channel !== message.guild!.members.me!.voice.channel + ) return msg.edit({ embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_player")}` + `${client.i18n.get(language, "noplayer", "no_voice")}` ) .setColor(client.color), ], }); - const { channel } = message.member!.voice; - if ( - !channel || - message.member!.voice.channel !== message.guild!.members.me!.voice.channel - ) + + const player = client.manager.players.get(message.guild!.id); + if (!player) return msg.edit({ embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` + `${client.i18n.get(language, "noplayer", "no_player")}` ) .setColor(client.color), ], diff --git a/src/commands/prefix/Music/Forward.ts b/src/commands/prefix/Music/Forward.ts index d05fa9b4..85573c18 100644 --- a/src/commands/prefix/Music/Forward.ts +++ b/src/commands/prefix/Music/Forward.ts @@ -65,10 +65,11 @@ export default class implements PrefixCommand { if (value && !isNaN(+value)) { if (song_position + Number(value) * 1000 < song!.length!) { - player["send"]({ - op: "seek", + player.send({ guildId: message.guild!.id, - position: song_position + Number(value) * 1000, + playerOptions: { + position: song_position + Number(value) * 1000, + }, }); const forward1 = new EmbedBuilder() @@ -108,9 +109,10 @@ export default class implements PrefixCommand { if (!value) { if (song_position + fastForwardNum * 1000 < song!.length!) { player["send"]({ - op: "seek", guildId: message.guild!.id, - position: song_position + fastForwardNum * 1000, + playerOptions: { + position: song_position + fastForwardNum * 1000, + }, }); const forward2 = new EmbedBuilder() diff --git a/src/commands/prefix/Music/Lofi.ts b/src/commands/prefix/Music/Lofi.ts index 26150e5e..497d2240 100644 --- a/src/commands/prefix/Music/Lofi.ts +++ b/src/commands/prefix/Music/Lofi.ts @@ -88,7 +88,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "music", "radio_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -99,7 +99,7 @@ export default class implements PrefixCommand { const embed = new EmbedBuilder().setColor(client.color).setDescription( `${client.i18n.get(language, "music", "play_result", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` diff --git a/src/commands/prefix/Music/Loop.ts b/src/commands/prefix/Music/Loop.ts index 5582a3f1..b6e913a5 100644 --- a/src/commands/prefix/Music/Loop.ts +++ b/src/commands/prefix/Music/Loop.ts @@ -2,7 +2,7 @@ import { EmbedBuilder, Message, PermissionsBitField } from "discord.js"; import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements PrefixCommand { diff --git a/src/commands/prefix/Music/LoopQueue.ts b/src/commands/prefix/Music/LoopQueue.ts index e040879d..36c176e8 100644 --- a/src/commands/prefix/Music/LoopQueue.ts +++ b/src/commands/prefix/Music/LoopQueue.ts @@ -2,7 +2,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { KazagumoLoop, KazagumoLoopMode } from "../../../@types/Lavalink.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code diff --git a/src/commands/prefix/Music/Play.ts b/src/commands/prefix/Music/Play.ts index fe9d8626..355acd47 100644 --- a/src/commands/prefix/Music/Play.ts +++ b/src/commands/prefix/Music/Play.ts @@ -57,17 +57,8 @@ export default class implements PrefixCommand { textId: message.channel.id, deaf: true, }); - else if (player && !this.checkSameVoice(message)) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` - ) - .setColor(client.color), - ], - }); - return + else if (player && !this.checkSameVoice(message, client, language, msg)) { + return; } const result = await player.search(value, { requester: message.author }); @@ -100,7 +91,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -127,7 +118,7 @@ export default class implements PrefixCommand { const embed = new EmbedBuilder().setColor(client.color).setDescription( `${client.i18n.get(language, "music", "play_result", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -137,11 +128,27 @@ export default class implements PrefixCommand { } } - private checkSameVoice( + checkSameVoice( message: Message, + client: Manager, + language: string, + msg: Message ) { - return ( + if ( message.member!.voice.channel !== message.guild!.members.me!.voice.channel - ) + ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return false; + } + + return true; } } diff --git a/src/commands/prefix/Music/Previous.ts b/src/commands/prefix/Music/Previous.ts index 7c3beba9..014ca69e 100644 --- a/src/commands/prefix/Music/Previous.ts +++ b/src/commands/prefix/Music/Previous.ts @@ -65,7 +65,7 @@ export default class implements PrefixCommand { ], }); - await player.queue.unshift(player.queue.previous); + await player.queue.unshift(player.queue.previous[0]); await player.skip(); const embed = new EmbedBuilder() diff --git a/src/commands/prefix/Music/Radio.ts b/src/commands/prefix/Music/Radio.ts index b61608ea..ce9b5e33 100644 --- a/src/commands/prefix/Music/Radio.ts +++ b/src/commands/prefix/Music/Radio.ts @@ -265,7 +265,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: args2[0], - url: res.tracks[0].uri, + url: String(res.tracks[0].uri), duration: new ConvertTime().parse(res.tracks[0].length as number), request: String(res.tracks[0].requester), })}` diff --git a/src/commands/prefix/Music/Remove.ts b/src/commands/prefix/Music/Remove.ts index 347876a4..c1544ccd 100644 --- a/src/commands/prefix/Music/Remove.ts +++ b/src/commands/prefix/Music/Remove.ts @@ -97,7 +97,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "music", "removetrack_desc", { name: song.title, - url: song.uri, + url: String(song.uri), duration: new ConvertTime().parse(player.shoukaku.position), request: String(song.requester), })}` diff --git a/src/commands/prefix/Music/RemoveDuplicate.ts b/src/commands/prefix/Music/RemoveDuplicate.ts index 0b11aff5..97b27eae 100644 --- a/src/commands/prefix/Music/RemoveDuplicate.ts +++ b/src/commands/prefix/Music/RemoveDuplicate.ts @@ -1,6 +1,6 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; // Main code diff --git a/src/commands/prefix/Music/Replay.ts b/src/commands/prefix/Music/Replay.ts index 511c9e85..294c56d6 100644 --- a/src/commands/prefix/Music/Replay.ts +++ b/src/commands/prefix/Music/Replay.ts @@ -55,10 +55,11 @@ export default class implements PrefixCommand { ], }); - await player["send"]({ - op: "seek", + await player.send({ guildId: message.guild!.id, - position: 0, + playerOptions: { + position: 0, + }, }); const embed = new EmbedBuilder() diff --git a/src/commands/prefix/Music/Rewind.ts b/src/commands/prefix/Music/Rewind.ts index 74ad282d..7a50c67a 100644 --- a/src/commands/prefix/Music/Rewind.ts +++ b/src/commands/prefix/Music/Rewind.ts @@ -69,9 +69,10 @@ export default class implements PrefixCommand { if (value && !isNaN(+value)) { if (song_position - Number(value) * 1000 > 0) { await player["send"]({ - op: "seek", guildId: message.guild!.id, - position: song_position - Number(value) * 1000, + playerOptions: { + position: song_position - Number(value) * 1000, + }, }); const rewind1 = new EmbedBuilder() @@ -111,9 +112,10 @@ export default class implements PrefixCommand { if (!value) { if (song_position - rewindNum * 1000 > 0) { await player["send"]({ - op: "seek", guildId: message.guild!.id, - position: song_position - rewindNum * 1000, + playerOptions: { + position: song_position - rewindNum * 1000, + }, }); const rewind2 = new EmbedBuilder() diff --git a/src/commands/prefix/Music/Volume.ts b/src/commands/prefix/Music/Volume.ts index 4319fb7f..c6723397 100644 --- a/src/commands/prefix/Music/Volume.ts +++ b/src/commands/prefix/Music/Volume.ts @@ -1,7 +1,7 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code diff --git a/src/commands/prefix/Playlist/Add.ts b/src/commands/prefix/Playlist/Add.ts index d4604678..b970db74 100644 --- a/src/commands/prefix/Playlist/Add.ts +++ b/src/commands/prefix/Playlist/Add.ts @@ -5,7 +5,7 @@ import { } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { Manager } from "../../../manager.js"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; @@ -103,7 +103,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "playlist", "add_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: Duration, user: String(message.author), })}` @@ -115,7 +115,7 @@ export default class implements PrefixCommand { .setDescription( `${client.i18n.get(language, "playlist", "add_search", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: Duration, user: String(message.author), })}` diff --git a/src/commands/prefix/Playlist/SaveQueue.ts b/src/commands/prefix/Playlist/SaveQueue.ts index 4536f069..41bbc97f 100644 --- a/src/commands/prefix/Playlist/SaveQueue.ts +++ b/src/commands/prefix/Playlist/SaveQueue.ts @@ -1,6 +1,6 @@ import { EmbedBuilder, Message } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { Accessableby, PrefixCommand } from "../../../@types/Command.js"; const TrackAdd: KazagumoTrack[] = []; @@ -109,7 +109,9 @@ export default class implements PrefixCommand { const element = playlist.tracks[i].uri; TrackExist.push(element); } - Result = TrackAdd.filter((track) => !TrackExist.includes(track.uri)); + Result = TrackAdd.filter( + (track) => !TrackExist.includes(String(track.uri)) + ); } if (Result!.length == 0) { diff --git a/src/commands/slash/Filter/3d.ts b/src/commands/slash/Filter/3d.ts index 6a8d960c..c363e9eb 100644 --- a/src/commands/slash/Filter/3d.ts +++ b/src/commands/slash/Filter/3d.ts @@ -57,13 +57,14 @@ export default class implements SlashCommand { ], }); - const data = { - op: "filters", - guildId: interaction.guild!.id, - rotation: { rotationHz: 0.2 }, - }; - - await player["send"](data); + await player.send({ + guildId: String(interaction.guild?.id), + playerOptions: { + filters: { + rotation: { rotationHz: 0.2 }, + }, + }, + }); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Bass.ts b/src/commands/slash/Filter/Bass.ts index 3b397701..c9f87b8b 100644 --- a/src/commands/slash/Filter/Bass.ts +++ b/src/commands/slash/Filter/Bass.ts @@ -59,27 +59,30 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0.1 }, - { band: 1, gain: 0.1 }, - { band: 2, gain: 0.05 }, - { band: 3, gain: 0.05 }, - { band: 4, gain: -0.05 }, - { band: 5, gain: -0.05 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.05 }, - { band: 8, gain: -0.05 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0.05 }, - { band: 11, gain: 0.05 }, - { band: 12, gain: 0.1 }, - { band: 13, gain: 0.1 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.1 }, + { band: 1, gain: 0.1 }, + { band: 2, gain: 0.05 }, + { band: 3, gain: 0.05 }, + { band: 4, gain: -0.05 }, + { band: 5, gain: -0.05 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.05 }, + { band: 8, gain: -0.05 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0.05 }, + { band: 11, gain: 0.05 }, + { band: 12, gain: 0.1 }, + { band: 13, gain: 0.1 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const bassed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Bassboost.ts b/src/commands/slash/Filter/Bassboost.ts index 38dba785..9f299170 100644 --- a/src/commands/slash/Filter/Bassboost.ts +++ b/src/commands/slash/Filter/Bassboost.ts @@ -60,27 +60,30 @@ export default class implements SlashCommand { }); if (!value) { const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0.1 }, - { band: 1, gain: 0.1 }, - { band: 2, gain: 0.05 }, - { band: 3, gain: 0.05 }, - { band: 4, gain: -0.05 }, - { band: 5, gain: -0.05 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.05 }, - { band: 8, gain: -0.05 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0.05 }, - { band: 11, gain: 0.05 }, - { band: 12, gain: 0.1 }, - { band: 13, gain: 0.1 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.1 }, + { band: 1, gain: 0.1 }, + { band: 2, gain: 0.05 }, + { band: 3, gain: 0.05 }, + { band: 4, gain: -0.05 }, + { band: 5, gain: -0.05 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.05 }, + { band: 8, gain: -0.05 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0.05 }, + { band: 11, gain: 0.05 }, + { band: 12, gain: 0.1 }, + { band: 13, gain: 0.1 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const msg1 = await interaction.editReply({ embeds: [ @@ -126,26 +129,29 @@ export default class implements SlashCommand { ], }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: value / 10 }, - { band: 1, gain: value / 10 }, - { band: 2, gain: value / 10 }, - { band: 3, gain: value / 10 }, - { band: 4, gain: value / 10 }, - { band: 5, gain: value / 10 }, - { band: 6, gain: value / 10 }, - { band: 7, gain: 0 }, - { band: 8, gain: 0 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: value / 10 }, + { band: 1, gain: value / 10 }, + { band: 2, gain: value / 10 }, + { band: 3, gain: value / 10 }, + { band: 4, gain: value / 10 }, + { band: 5, gain: value / 10 }, + { band: 6, gain: value / 10 }, + { band: 7, gain: 0 }, + { band: 8, gain: 0 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const msg2 = await interaction.editReply({ embeds: [ new EmbedBuilder() diff --git a/src/commands/slash/Filter/China.ts b/src/commands/slash/Filter/China.ts index 72ab6fc0..3e4599b0 100644 --- a/src/commands/slash/Filter/China.ts +++ b/src/commands/slash/Filter/China.ts @@ -58,16 +58,19 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 0.75, - pitch: 1.25, - rate: 1.25, + playerOptions: { + filters: { + timescale: { + speed: 0.75, + pitch: 1.25, + rate: 1.25, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Chipmunk.ts b/src/commands/slash/Filter/Chipmunk.ts index 2a1168aa..167cc7f4 100644 --- a/src/commands/slash/Filter/Chipmunk.ts +++ b/src/commands/slash/Filter/Chipmunk.ts @@ -58,16 +58,19 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 1.05, - pitch: 1.35, - rate: 1.25, + playerOptions: { + filters: { + timescale: { + speed: 1.05, + pitch: 1.35, + rate: 1.25, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Darthvader.ts b/src/commands/slash/Filter/Darthvader.ts index 43eaa0e7..05ba74c1 100644 --- a/src/commands/slash/Filter/Darthvader.ts +++ b/src/commands/slash/Filter/Darthvader.ts @@ -2,6 +2,7 @@ import { EmbedBuilder, CommandInteraction, GuildMember } from "discord.js"; import delay from "delay"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; +import { filter } from "lodash"; export default class implements SlashCommand { name = ["filter", "darthvader"]; @@ -58,16 +59,19 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 0.975, - pitch: 0.5, - rate: 0.8, + playerOptions: { + filters: { + timescale: { + speed: 0.975, + pitch: 0.5, + rate: 0.8, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Daycore.ts b/src/commands/slash/Filter/Daycore.ts index 11a7a96b..f784d690 100644 --- a/src/commands/slash/Filter/Daycore.ts +++ b/src/commands/slash/Filter/Daycore.ts @@ -58,31 +58,34 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: -0.25 }, - { band: 9, gain: -0.25 }, - { band: 10, gain: -0.25 }, - { band: 11, gain: -0.25 }, - { band: 12, gain: -0.25 }, - { band: 13, gain: -0.25 }, - ], - timescale: { - pitch: 0.63, - rate: 1.05, + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: -0.25 }, + { band: 9, gain: -0.25 }, + { band: 10, gain: -0.25 }, + { band: 11, gain: -0.25 }, + { band: 12, gain: -0.25 }, + { band: 13, gain: -0.25 }, + ], + timescale: { + pitch: 0.63, + rate: 1.05, + }, + }, }, }; - await player["send"](data); + await player.send(data); const daycored = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Doubletime.ts b/src/commands/slash/Filter/Doubletime.ts index d2986ba5..73285827 100644 --- a/src/commands/slash/Filter/Doubletime.ts +++ b/src/commands/slash/Filter/Doubletime.ts @@ -58,14 +58,17 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 1.165, + playerOptions: { + filters: { + timescale: { + speed: 1.165, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Earrape.ts b/src/commands/slash/Filter/Earrape.ts index 0951f8b2..4a241cac 100644 --- a/src/commands/slash/Filter/Earrape.ts +++ b/src/commands/slash/Filter/Earrape.ts @@ -57,11 +57,6 @@ export default class implements SlashCommand { ], }); await player.setVolume(500); - const data = { - op: "filters", - guildId: interaction.guild!.id, - }; - await player["send"](data); const earrapped = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Equalizer.ts b/src/commands/slash/Filter/Equalizer.ts index 4c9974fb..9c5e2bfc 100644 --- a/src/commands/slash/Filter/Equalizer.ts +++ b/src/commands/slash/Filter/Equalizer.ts @@ -82,10 +82,12 @@ export default class implements SlashCommand { return interaction.editReply({ embeds: [embed] }); } else if (value == "off" || value == "reset") { const data = { - op: "filters", guildId: interaction.guild!.id, + playerOptions: { + filters: {}, + }, }; - return player["send"](data); + return player.send(data); } const bands = value.split(/[ ]+/); @@ -121,11 +123,14 @@ export default class implements SlashCommand { for (let i = 0; i < bands.length; i++) { if (i > 13) break; const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [{ band: i, gain: Number(bands[i]) / 10 }], + playerOptions: { + filters: { + equalizer: [{ band: i, gain: Number(bands[i]) / 10 }], + }, + }, }; - player["send"](data); + player.send(data); bandsStr += `${bands[i]} `; } diff --git a/src/commands/slash/Filter/Karaoke.ts b/src/commands/slash/Filter/Karaoke.ts index c61d659d..d729b33a 100644 --- a/src/commands/slash/Filter/Karaoke.ts +++ b/src/commands/slash/Filter/Karaoke.ts @@ -58,17 +58,20 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - karaoke: { - level: 1.0, - monoLevel: 1.0, - filterBand: 220.0, - filterWidth: 100.0, + playerOptions: { + filters: { + karaoke: { + level: 1.0, + monoLevel: 1.0, + filterBand: 220.0, + filterWidth: 100.0, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Nightcore.ts b/src/commands/slash/Filter/Nightcore.ts index 13c0ac9f..e0c0df92 100644 --- a/src/commands/slash/Filter/Nightcore.ts +++ b/src/commands/slash/Filter/Nightcore.ts @@ -59,16 +59,19 @@ export default class implements SlashCommand { ], }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 1.05, - pitch: 1.125, - rate: 1.05, + playerOptions: { + filters: { + timescale: { + speed: 1.05, + pitch: 1.125, + rate: 1.05, + }, + }, }, }; - await player["send"](data); + await player.send(data); const nightcored = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Pitch.ts b/src/commands/slash/Filter/Pitch.ts index bbf72015..6ed4920b 100644 --- a/src/commands/slash/Filter/Pitch.ts +++ b/src/commands/slash/Filter/Pitch.ts @@ -83,12 +83,15 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { pitch: value }, + playerOptions: { + filters: { + timescale: { pitch: Number(value) }, + }, + }, }; - await player["send"](data); + await player.send(data); const msg = await interaction.editReply({ embeds: [ diff --git a/src/commands/slash/Filter/Pop.ts b/src/commands/slash/Filter/Pop.ts index c1b197f1..e1969de8 100644 --- a/src/commands/slash/Filter/Pop.ts +++ b/src/commands/slash/Filter/Pop.ts @@ -59,27 +59,30 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0.65 }, - { band: 1, gain: 0.45 }, - { band: 2, gain: -0.45 }, - { band: 3, gain: -0.65 }, - { band: 4, gain: -0.35 }, - { band: 5, gain: 0.45 }, - { band: 6, gain: 0.55 }, - { band: 7, gain: 0.6 }, - { band: 8, gain: 0.6 }, - { band: 9, gain: 0.6 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.65 }, + { band: 1, gain: 0.45 }, + { band: 2, gain: -0.45 }, + { band: 3, gain: -0.65 }, + { band: 4, gain: -0.35 }, + { band: 5, gain: 0.45 }, + { band: 6, gain: 0.55 }, + { band: 7, gain: 0.6 }, + { band: 8, gain: 0.6 }, + { band: 9, gain: 0.6 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const popped = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Rate.ts b/src/commands/slash/Filter/Rate.ts index 33dc7eb6..c7a38128 100644 --- a/src/commands/slash/Filter/Rate.ts +++ b/src/commands/slash/Filter/Rate.ts @@ -83,12 +83,15 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { rate: value }, + playerOptions: { + filters: { + timescale: { rate: Number(value) }, + }, + }, }; - await player["send"](data); + await player.send(data); const msg = await interaction.editReply({ embeds: [ diff --git a/src/commands/slash/Filter/Reset.ts b/src/commands/slash/Filter/Reset.ts index 42e445fe..665714cc 100644 --- a/src/commands/slash/Filter/Reset.ts +++ b/src/commands/slash/Filter/Reset.ts @@ -56,11 +56,13 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, + playerOptions: { + filters: {}, + }, }; - await player["send"](data); + await player.send(data); await player.setVolume(100); const resetted = new EmbedBuilder() diff --git a/src/commands/slash/Filter/Slowmotion.ts b/src/commands/slash/Filter/Slowmotion.ts index 20a8d9e6..7cc3bb56 100644 --- a/src/commands/slash/Filter/Slowmotion.ts +++ b/src/commands/slash/Filter/Slowmotion.ts @@ -58,16 +58,19 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { - speed: 0.5, - pitch: 1.0, - rate: 0.8, + playerOptions: { + filters: { + timescale: { + speed: 0.5, + pitch: 1.0, + rate: 0.8, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Soft.ts b/src/commands/slash/Filter/Soft.ts index 48a7ac6c..3ec07f98 100644 --- a/src/commands/slash/Filter/Soft.ts +++ b/src/commands/slash/Filter/Soft.ts @@ -58,27 +58,30 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: -0.25 }, - { band: 9, gain: -0.25 }, - { band: 10, gain: -0.25 }, - { band: 11, gain: -0.25 }, - { band: 12, gain: -0.25 }, - { band: 13, gain: -0.25 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: -0.25 }, + { band: 9, gain: -0.25 }, + { band: 10, gain: -0.25 }, + { band: 11, gain: -0.25 }, + { band: 12, gain: -0.25 }, + { band: 13, gain: -0.25 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const softed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Speed.ts b/src/commands/slash/Filter/Speed.ts index 75e58458..04b9087d 100644 --- a/src/commands/slash/Filter/Speed.ts +++ b/src/commands/slash/Filter/Speed.ts @@ -83,12 +83,15 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - timescale: { speed: value }, + playerOptions: { + filters: { + timescale: { speed: Number(value) }, + }, + }, }; - await player["send"](data); + await player.send(data); const msg = await interaction.editReply({ embeds: [ diff --git a/src/commands/slash/Filter/Superbass.ts b/src/commands/slash/Filter/Superbass.ts index e13c21f2..5a57600b 100644 --- a/src/commands/slash/Filter/Superbass.ts +++ b/src/commands/slash/Filter/Superbass.ts @@ -58,27 +58,30 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0.2 }, - { band: 1, gain: 0.3 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0.8 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0.5 }, - { band: 6, gain: 0 }, - { band: 7, gain: -0.5 }, - { band: 8, gain: 0 }, - { band: 9, gain: 0 }, - { band: 10, gain: 0 }, - { band: 11, gain: 0 }, - { band: 12, gain: 0 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.2 }, + { band: 1, gain: 0.3 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0.8 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0.5 }, + { band: 6, gain: 0 }, + { band: 7, gain: -0.5 }, + { band: 8, gain: 0 }, + { band: 9, gain: 0 }, + { band: 10, gain: 0 }, + { band: 11, gain: 0 }, + { band: 12, gain: 0 }, + { band: 13, gain: 0 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const sbed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Television.ts b/src/commands/slash/Filter/Television.ts index 254fa620..683c82aa 100644 --- a/src/commands/slash/Filter/Television.ts +++ b/src/commands/slash/Filter/Television.ts @@ -60,25 +60,29 @@ export default class implements SlashCommand { const data = { op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0.65 }, - { band: 8, gain: 0.65 }, - { band: 9, gain: 0.65 }, - { band: 10, gain: 0.65 }, - { band: 11, gain: 0.65 }, - { band: 12, gain: 0.65 }, - { band: 13, gain: 0.65 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0.65 }, + { band: 8, gain: 0.65 }, + { band: 9, gain: 0.65 }, + { band: 10, gain: 0.65 }, + { band: 11, gain: 0.65 }, + { band: 12, gain: 0.65 }, + { band: 13, gain: 0.65 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Treblebass.ts b/src/commands/slash/Filter/Treblebass.ts index ffebd867..060e6871 100644 --- a/src/commands/slash/Filter/Treblebass.ts +++ b/src/commands/slash/Filter/Treblebass.ts @@ -60,25 +60,29 @@ export default class implements SlashCommand { const data = { op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0.6 }, - { band: 1, gain: 0.67 }, - { band: 2, gain: 0.67 }, - { band: 3, gain: 0 }, - { band: 4, gain: -0.5 }, - { band: 5, gain: 0.15 }, - { band: 6, gain: -0.45 }, - { band: 7, gain: 0.23 }, - { band: 8, gain: 0.35 }, - { band: 9, gain: 0.45 }, - { band: 10, gain: 0.55 }, - { band: 11, gain: 0.6 }, - { band: 12, gain: 0.55 }, - { band: 13, gain: 0 }, - ], + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0.6 }, + { band: 1, gain: 0.67 }, + { band: 2, gain: 0.67 }, + { band: 3, gain: 0 }, + { band: 4, gain: -0.5 }, + { band: 5, gain: 0.15 }, + { band: 6, gain: -0.45 }, + { band: 7, gain: 0.23 }, + { band: 8, gain: 0.35 }, + { band: 9, gain: 0.45 }, + { band: 10, gain: 0.55 }, + { band: 11, gain: 0.6 }, + { band: 12, gain: 0.55 }, + { band: 13, gain: 0 }, + ], + }, + }, }; - await player["send"](data); + await player.send(data); const tbed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Tremolo.ts b/src/commands/slash/Filter/Tremolo.ts index 6f3f37ec..50707a8b 100644 --- a/src/commands/slash/Filter/Tremolo.ts +++ b/src/commands/slash/Filter/Tremolo.ts @@ -58,15 +58,18 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - tremolo: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + filters: { + tremolo: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Vaporwave.ts b/src/commands/slash/Filter/Vaporwave.ts index b352cb46..08832f9c 100644 --- a/src/commands/slash/Filter/Vaporwave.ts +++ b/src/commands/slash/Filter/Vaporwave.ts @@ -57,30 +57,33 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - equalizer: [ - { band: 0, gain: 0 }, - { band: 1, gain: 0 }, - { band: 2, gain: 0 }, - { band: 3, gain: 0 }, - { band: 4, gain: 0 }, - { band: 5, gain: 0 }, - { band: 6, gain: 0 }, - { band: 7, gain: 0 }, - { band: 8, gain: 0.15 }, - { band: 9, gain: 0.15 }, - { band: 10, gain: 0.15 }, - { band: 11, gain: 0.15 }, - { band: 12, gain: 0.15 }, - { band: 13, gain: 0.15 }, - ], - timescale: { - pitch: 0.55, + playerOptions: { + filters: { + equalizer: [ + { band: 0, gain: 0 }, + { band: 1, gain: 0 }, + { band: 2, gain: 0 }, + { band: 3, gain: 0 }, + { band: 4, gain: 0 }, + { band: 5, gain: 0 }, + { band: 6, gain: 0 }, + { band: 7, gain: 0 }, + { band: 8, gain: 0.15 }, + { band: 9, gain: 0.15 }, + { band: 10, gain: 0.15 }, + { band: 11, gain: 0.15 }, + { band: 12, gain: 0.15 }, + { band: 13, gain: 0.15 }, + ], + timescale: { + pitch: 0.55, + }, + }, }, }; - await player["send"](data); + await player.send(data); const vaporwaved = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Vibrate.ts b/src/commands/slash/Filter/Vibrate.ts index e9d1836a..e7a30037 100644 --- a/src/commands/slash/Filter/Vibrate.ts +++ b/src/commands/slash/Filter/Vibrate.ts @@ -58,19 +58,22 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - vibrato: { - frequency: 4.0, - depth: 0.75, - }, - tremolo: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + filters: { + vibrato: { + frequency: 4.0, + depth: 0.75, + }, + tremolo: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Filter/Vibrato.ts b/src/commands/slash/Filter/Vibrato.ts index 1ba3b4d8..42bcc7ac 100644 --- a/src/commands/slash/Filter/Vibrato.ts +++ b/src/commands/slash/Filter/Vibrato.ts @@ -57,15 +57,18 @@ export default class implements SlashCommand { }); const data = { - op: "filters", guildId: interaction.guild!.id, - vibrato: { - frequency: 4.0, - depth: 0.75, + playerOptions: { + filters: { + vibrato: { + frequency: 4.0, + depth: 0.75, + }, + }, }, }; - await player["send"](data); + await player.send(data); const embed = new EmbedBuilder() .setDescription( diff --git a/src/commands/slash/Music/247.ts b/src/commands/slash/Music/247.ts index c7187a58..e1a34aba 100644 --- a/src/commands/slash/Music/247.ts +++ b/src/commands/slash/Music/247.ts @@ -1,11 +1,6 @@ import { EmbedBuilder, CommandInteraction, GuildMember } from "discord.js"; import { Manager } from "../../../manager.js"; -import { - Accessableby, - CommandOptionInterface, - SlashCommand, -} from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { Accessableby, SlashCommand } from "../../../@types/Command.js"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements SlashCommand { @@ -31,28 +26,29 @@ export default class implements SlashCommand { ], }); - const player = client.manager.players.get(interaction.guild!.id); - if (!player) + const { channel } = (interaction.member as GuildMember)!.voice; + if ( + !channel || + (interaction.member as GuildMember)!.voice.channel !== + interaction.guild!.members.me!.voice.channel + ) return msg.edit({ embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_player")}` + `${client.i18n.get(language, "noplayer", "no_voice")}` ) .setColor(client.color), ], }); - const { channel } = (interaction.member as GuildMember)!.voice; - if ( - !channel || - (interaction.member as GuildMember)!.voice.channel !== - interaction.guild!.members.me!.voice.channel - ) + + const player = client.manager.players.get(interaction.guild!.id); + if (!player) return msg.edit({ embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` + `${client.i18n.get(language, "noplayer", "no_player")}` ) .setColor(client.color), ], diff --git a/src/commands/slash/Music/Forward.ts b/src/commands/slash/Music/Forward.ts index e38519a4..2f541bf5 100644 --- a/src/commands/slash/Music/Forward.ts +++ b/src/commands/slash/Music/Forward.ts @@ -77,10 +77,11 @@ export default class implements SlashCommand { if (value && !isNaN(value)) { if (song_position + value * 1000 < song!.length!) { - player["send"]({ - op: "seek", - guildId: interaction.guild!.id, - position: song_position + value * 1000, + player.send({ + guildId: String(interaction.guild?.id), + playerOptions: { + position: song_position + value * 1000, + }, }); const forward1 = new EmbedBuilder() @@ -107,10 +108,11 @@ export default class implements SlashCommand { if (!value) { if (song_position + fastForwardNum * 1000 < song!.length!) { - player["send"]({ - op: "seek", - guildId: interaction.guild!.id, - position: song_position + fastForwardNum * 1000, + player.send({ + guildId: String(interaction.guild?.id), + playerOptions: { + position: song_position + fastForwardNum * 1000, + }, }); const forward2 = new EmbedBuilder() diff --git a/src/commands/slash/Music/Lofi.ts b/src/commands/slash/Music/Lofi.ts index c213bca3..679f465a 100644 --- a/src/commands/slash/Music/Lofi.ts +++ b/src/commands/slash/Music/Lofi.ts @@ -85,7 +85,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "radio_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -96,7 +96,7 @@ export default class implements SlashCommand { const embed = new EmbedBuilder().setColor(client.color).setDescription( `${client.i18n.get(language, "music", "play_result", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` diff --git a/src/commands/slash/Music/Loop.ts b/src/commands/slash/Music/Loop.ts index 36f84eb1..bec80973 100644 --- a/src/commands/slash/Music/Loop.ts +++ b/src/commands/slash/Music/Loop.ts @@ -8,7 +8,7 @@ import { import { Manager } from "../../../manager.js"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; export default class implements SlashCommand { diff --git a/src/commands/slash/Music/LoopQueue.ts b/src/commands/slash/Music/LoopQueue.ts index 4040bd0f..e61872e3 100644 --- a/src/commands/slash/Music/LoopQueue.ts +++ b/src/commands/slash/Music/LoopQueue.ts @@ -1,7 +1,7 @@ import { EmbedBuilder, CommandInteraction, GuildMember } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; diff --git a/src/commands/slash/Music/Play.ts b/src/commands/slash/Music/Play.ts index 45326ca0..281e8d7f 100644 --- a/src/commands/slash/Music/Play.ts +++ b/src/commands/slash/Music/Play.ts @@ -12,7 +12,10 @@ import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; -import { AutocompleteInteractionChoices, GlobalInteraction } from "../../../@types/Interaction.js"; +import { + AutocompleteInteractionChoices, + GlobalInteraction, +} from "../../../@types/Interaction.js"; export default class implements SlashCommand { name = ["play"]; @@ -84,7 +87,7 @@ export default class implements SlashCommand { }); } else if ( player && - !this.checkSameVoice(interaction) + !this.checkSameVoice(interaction, client, language, msg) ) { msg.edit({ embeds: [ @@ -139,7 +142,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -166,7 +169,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "play_result", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: new ConvertTime().parse(tracks[0].length as number), request: String(tracks[0].requester), })}` @@ -177,29 +180,46 @@ export default class implements SlashCommand { } catch (e) {} } - private checkSameVoice( + checkSameVoice( interaction: CommandInteraction, + client: Manager, + language: string, + msg: Message ) { - return (interaction.member as GuildMember)!.voice.channel !== + if ( + (interaction.member as GuildMember)!.voice.channel !== interaction.guild!.members.me!.voice.channel - ) + ) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setDescription( + `${client.i18n.get(language, "noplayer", "no_voice")}` + ) + .setColor(client.color), + ], + }); + return false; + } + + return true; } // Autocomplete function async autocomplete( client: Manager, interaction: GlobalInteraction, - language: string, + language: string ) { let choice: AutocompleteInteractionChoices[] = []; - const url = String((interaction as CommandInteraction).options.get( - "search" - )!.value); + const url = String( + (interaction as CommandInteraction).options.get("search")!.value + ); const Random = - client.config.lavalink.DEFAULT[ - Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) - ]; + client.config.lavalink.DEFAULT[ + Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) + ]; const match = client.REGEX.some((match) => { return match.test(url) == true; diff --git a/src/commands/slash/Music/Previous.ts b/src/commands/slash/Music/Previous.ts index 01a0bcd7..a2cbabb9 100644 --- a/src/commands/slash/Music/Previous.ts +++ b/src/commands/slash/Music/Previous.ts @@ -63,7 +63,7 @@ export default class implements SlashCommand { ], }); - await player.queue.unshift(player.queue.previous); + await player.queue.unshift(player.queue.previous[0]); await player.skip(); const embed = new EmbedBuilder() diff --git a/src/commands/slash/Music/Queue.ts b/src/commands/slash/Music/Queue.ts index b5954d66..3134237a 100644 --- a/src/commands/slash/Music/Queue.ts +++ b/src/commands/slash/Music/Queue.ts @@ -106,7 +106,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "queue_description", { title: song!.title, - url: song!.uri, + url: String(song!.uri), request: String(song!.requester), duration: new FormatDuration().parse(song!.length), rest: str == "" ? " Nothing" : "\n" + str, diff --git a/src/commands/slash/Music/Radio.ts b/src/commands/slash/Music/Radio.ts index dc2aaa0a..ff6506fd 100644 --- a/src/commands/slash/Music/Radio.ts +++ b/src/commands/slash/Music/Radio.ts @@ -273,7 +273,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: args2[0], - url: res.tracks[0].uri, + url: String(res.tracks[0].uri), duration: new ConvertTime().parse(res.tracks[0].length as number), request: String(res.tracks[0].requester), })}` diff --git a/src/commands/slash/Music/Remove.ts b/src/commands/slash/Music/Remove.ts index 6e17a00d..edbc6abf 100644 --- a/src/commands/slash/Music/Remove.ts +++ b/src/commands/slash/Music/Remove.ts @@ -99,7 +99,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "music", "removetrack_desc", { name: song.title, - url: song.uri, + url: String(song.uri), duration: new ConvertTime().parse(song.length as number), request: String(song.requester), })}` diff --git a/src/commands/slash/Music/RemoveDuplicate.ts b/src/commands/slash/Music/RemoveDuplicate.ts index fee6f533..9d99c94a 100644 --- a/src/commands/slash/Music/RemoveDuplicate.ts +++ b/src/commands/slash/Music/RemoveDuplicate.ts @@ -1,6 +1,6 @@ import { EmbedBuilder, CommandInteraction, GuildMember } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { Accessableby, CommandOptionInterface, diff --git a/src/commands/slash/Music/Replay.ts b/src/commands/slash/Music/Replay.ts index 2dc778f1..46abdd37 100644 --- a/src/commands/slash/Music/Replay.ts +++ b/src/commands/slash/Music/Replay.ts @@ -57,10 +57,11 @@ export default class implements SlashCommand { ], }); - await player["send"]({ - op: "seek", + await player.send({ guildId: interaction.guild!.id, - position: 0, + playerOptions: { + position: 0, + }, }); const embed = new EmbedBuilder() diff --git a/src/commands/slash/Music/Rewind.ts b/src/commands/slash/Music/Rewind.ts index 51e12b7c..c43d7465 100644 --- a/src/commands/slash/Music/Rewind.ts +++ b/src/commands/slash/Music/Rewind.ts @@ -77,10 +77,11 @@ export default class implements SlashCommand { if (value && !isNaN(value)) { if (song_position - value * 1000 > 0) { - await player["send"]({ - op: "seek", + await player.send({ guildId: interaction.guild!.id, - position: song_position - value * 1000, + playerOptions: { + position: song_position - value * 1000, + }, }); const rewind1 = new EmbedBuilder() @@ -119,10 +120,11 @@ export default class implements SlashCommand { if (!value) { if (song_position - rewindNum * 1000 > 0) { - await player["send"]({ - op: "seek", + await player.send({ guildId: interaction.guild!.id, - position: song_position - rewindNum * 1000, + playerOptions: { + position: song_position - rewindNum * 1000, + }, }); const rewind2 = new EmbedBuilder() diff --git a/src/commands/slash/Music/Volume.ts b/src/commands/slash/Music/Volume.ts index 1c58d4ed..15595d04 100644 --- a/src/commands/slash/Music/Volume.ts +++ b/src/commands/slash/Music/Volume.ts @@ -7,7 +7,7 @@ import { } from "discord.js"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; // Main code diff --git a/src/commands/slash/Playlist/Add.ts b/src/commands/slash/Playlist/Add.ts index 652d6d41..ea4303d4 100644 --- a/src/commands/slash/Playlist/Add.ts +++ b/src/commands/slash/Playlist/Add.ts @@ -7,10 +7,13 @@ import { } from "discord.js"; import { ConvertTime } from "../../../structures/ConvertTime.js"; import { StartQueueDuration } from "../../../structures/QueueDuration.js"; -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { Manager } from "../../../manager.js"; import { Accessableby, SlashCommand } from "../../../@types/Command.js"; -import { AutocompleteInteractionChoices, GlobalInteraction } from "../../../@types/Interaction.js"; +import { + AutocompleteInteractionChoices, + GlobalInteraction, +} from "../../../@types/Interaction.js"; const TrackAdd: KazagumoTrack[] = []; @@ -106,7 +109,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "playlist", "add_track", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: Duration, user: String(interaction.user), })}` @@ -118,7 +121,7 @@ export default class implements SlashCommand { .setDescription( `${client.i18n.get(language, "playlist", "add_search", { title: tracks[0].title, - url: tracks[0].uri, + url: String(tracks[0].uri), duration: Duration, user: String(interaction.user), })}` @@ -213,17 +216,17 @@ export default class implements SlashCommand { async autocomplete( client: Manager, interaction: GlobalInteraction, - language: string, + language: string ) { let choice: AutocompleteInteractionChoices[] = []; - const url = String((interaction as CommandInteraction).options.get( - "search" - )!.value); + const url = String( + (interaction as CommandInteraction).options.get("search")!.value + ); const Random = - client.config.lavalink.DEFAULT[ - Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) - ]; + client.config.lavalink.DEFAULT[ + Math.floor(Math.random() * client.config.lavalink.DEFAULT.length) + ]; const match = client.REGEX.some((match) => { return match.test(url) == true; diff --git a/src/commands/slash/Playlist/SaveQueue.ts b/src/commands/slash/Playlist/SaveQueue.ts index 50cfca0c..53ffca09 100644 --- a/src/commands/slash/Playlist/SaveQueue.ts +++ b/src/commands/slash/Playlist/SaveQueue.ts @@ -1,4 +1,4 @@ -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; import { EmbedBuilder, ApplicationCommandOptionType, @@ -112,7 +112,9 @@ export default class implements SlashCommand { const element = playlist.tracks[i].uri; TrackExist.push(element); } - Result = TrackAdd.filter((track) => !TrackExist.includes(track.uri)); + Result = TrackAdd.filter( + (track) => !TrackExist.includes(String(track.uri)) + ); } if (Result!.length == 0) { diff --git a/src/database/build/AutoReconnect.ts b/src/database/build/AutoReconnect.ts index c1e27c9b..f5340e18 100644 --- a/src/database/build/AutoReconnect.ts +++ b/src/database/build/AutoReconnect.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; export class AutoReconnectBuilder { diff --git a/src/database/schema/AutoReconnect.ts b/src/database/schema/AutoReconnect.ts index 451b6ac6..b9a71153 100644 --- a/src/database/schema/AutoReconnect.ts +++ b/src/database/schema/AutoReconnect.ts @@ -1,4 +1,4 @@ -import { KazagumoTrack } from "better-kazagumo"; +import { KazagumoTrack } from "kazagumo.mod"; export interface AutoReconnect { guild: string; diff --git a/src/database/setup/lavalink.ts b/src/database/setup/lavalink.ts index a596a11f..ba9e072c 100644 --- a/src/database/setup/lavalink.ts +++ b/src/database/setup/lavalink.ts @@ -3,7 +3,7 @@ import { Manager } from "../../manager.js"; import { AutoReconnect } from "../schema/AutoReconnect.js"; import chillout from "chillout"; import { KazagumoLoopMode } from "../../@types/Lavalink.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class AutoReconnectLavalinkService { client: Manager; diff --git a/src/events/guild/interactionCreate.ts b/src/events/guild/interactionCreate.ts index d496a22f..ed7e82c0 100644 --- a/src/events/guild/interactionCreate.ts +++ b/src/events/guild/interactionCreate.ts @@ -86,7 +86,8 @@ export default class { if ( Number(interaction.type) == - InteractionType.ApplicationCommandAutocomplete && (command as any).autocomplete !== undefined + InteractionType.ApplicationCommandAutocomplete && + (command as any).autocomplete !== undefined ) { try { (command as any).autocomplete(client, interaction, language); @@ -96,7 +97,7 @@ export default class { message: error, }); } - return + return; } const msg_cmd = [ diff --git a/src/events/node/disconnect.ts b/src/events/node/disconnect.ts index f0ebadbd..641b7190 100644 --- a/src/events/node/disconnect.ts +++ b/src/events/node/disconnect.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { autofixLavalink } from "../../lavaScrap/autofixLavalink.js"; diff --git a/src/events/player/playerCreate.ts b/src/events/player/playerCreate.ts index 2b8cec1c..13e88c5a 100644 --- a/src/events/player/playerCreate.ts +++ b/src/events/player/playerCreate.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; export default class { diff --git a/src/events/player/playerDestroy.ts b/src/events/player/playerDestroy.ts index 2c81c67f..5eff39c7 100644 --- a/src/events/player/playerDestroy.ts +++ b/src/events/player/playerDestroy.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { EmbedBuilder, Client, TextChannel } from "discord.js"; import { ClearMessageService } from "../../functions/clearMsg.js"; diff --git a/src/events/player/playerEmpty.ts b/src/events/player/playerEmpty.ts index deb29a63..e3de4d40 100644 --- a/src/events/player/playerEmpty.ts +++ b/src/events/player/playerEmpty.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; export default class { diff --git a/src/events/player/playerEnd.ts b/src/events/player/playerEnd.ts index 5ef3b2bb..fa58a76d 100644 --- a/src/events/player/playerEnd.ts +++ b/src/events/player/playerEnd.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { EmbedBuilder, Client, TextChannel } from "discord.js"; import { ClearMessageService } from "../../functions/clearMsg.js"; @@ -19,7 +19,7 @@ export default class { /////////// Update Music Setup /////////// if (client.websocket) { - const song = player.queue.previous; + const song = player.queue.previous[0]; await client.websocket.send( JSON.stringify({ diff --git a/src/events/player/playerException.ts b/src/events/player/playerException.ts index 9ca4a36a..2b2da908 100644 --- a/src/events/player/playerException.ts +++ b/src/events/player/playerException.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { TrackExceptionEvent } from "shoukaku"; import { TextChannel } from "discord.js"; diff --git a/src/events/player/playerMoved.ts b/src/events/player/playerMoved.ts index 7e436cb4..dd92e96c 100644 --- a/src/events/player/playerMoved.ts +++ b/src/events/player/playerMoved.ts @@ -2,7 +2,7 @@ import { KazagumoPlayer, PlayerMovedChannels, PlayerMovedState, -} from "better-kazagumo"; +} from "kazagumo.mod"; import { Manager } from "../../manager.js"; export default class { diff --git a/src/events/player/playerResolveError.ts b/src/events/player/playerResolveError.ts index 904b7425..03ecef8f 100644 --- a/src/events/player/playerResolveError.ts +++ b/src/events/player/playerResolveError.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer, KazagumoTrack } from "better-kazagumo"; +import { KazagumoPlayer, KazagumoTrack } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { TextChannel, EmbedBuilder } from "discord.js"; diff --git a/src/events/player/playerResumed.ts b/src/events/player/playerResumed.ts index 17956098..7f218ffc 100644 --- a/src/events/player/playerResumed.ts +++ b/src/events/player/playerResumed.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; export default class { diff --git a/src/events/player/playerStart.ts b/src/events/player/playerStart.ts index c9e451ed..843ad633 100644 --- a/src/events/player/playerStart.ts +++ b/src/events/player/playerStart.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer, KazagumoTrack } from "better-kazagumo"; +import { KazagumoPlayer, KazagumoTrack } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { AttachmentBuilder, @@ -443,10 +443,11 @@ export default class { if (!player) { collector.stop(); } - await player["send"]({ - op: "seek", + await player.send({ guildId: message.guild!.id, - position: 0, + playerOptions: { + position: 0, + }, }); await new ReplyInteractionService( @@ -495,7 +496,7 @@ export default class { .setDescription( `${client.i18n.get(language, "player", "queue_description", { track: song!.title, - track_url: song!.uri, + track_url: String(song!.uri), duration: new FormatDuration().parse(position), requester: `${song!.requester}`, list_song: str == "" ? " Nothing" : "\n" + str, diff --git a/src/events/player/playerStuck.ts b/src/events/player/playerStuck.ts index 87152cfd..e33c7b1b 100644 --- a/src/events/player/playerStuck.ts +++ b/src/events/player/playerStuck.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { TextChannel, EmbedBuilder } from "discord.js"; import { TrackStuckEvent } from "shoukaku"; diff --git a/src/events/player/playerUpdate.ts b/src/events/player/playerUpdate.ts index f58810fb..6f99a61e 100644 --- a/src/events/player/playerUpdate.ts +++ b/src/events/player/playerUpdate.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../../manager.js"; import { PlayerUpdate } from "shoukaku"; diff --git a/src/functions/clearMsg.ts b/src/functions/clearMsg.ts index 65f98ee8..0c47d3af 100644 --- a/src/functions/clearMsg.ts +++ b/src/functions/clearMsg.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { Manager } from "../manager.js"; import { TextChannel } from "discord.js"; diff --git a/src/handlers/Player/ButtonCommands/Loop.ts b/src/handlers/Player/ButtonCommands/Loop.ts index 61ba37f8..cfc32803 100644 --- a/src/handlers/Player/ButtonCommands/Loop.ts +++ b/src/handlers/Player/ButtonCommands/Loop.ts @@ -1,6 +1,6 @@ import { ButtonInteraction, EmbedBuilder, VoiceBasedChannel } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; import { KazagumoLoop } from "../../../@types/Lavalink.js"; import { AutoReconnectBuilder } from "../../../database/build/AutoReconnect.js"; diff --git a/src/handlers/Player/ButtonCommands/Pause.ts b/src/handlers/Player/ButtonCommands/Pause.ts index 428a5ada..e0c0e981 100644 --- a/src/handlers/Player/ButtonCommands/Pause.ts +++ b/src/handlers/Player/ButtonCommands/Pause.ts @@ -5,7 +5,7 @@ import { VoiceBasedChannel, } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class ButtonPause { client: Manager; diff --git a/src/handlers/Player/ButtonCommands/Previous.ts b/src/handlers/Player/ButtonCommands/Previous.ts index a518e4d9..1a3cf807 100644 --- a/src/handlers/Player/ButtonCommands/Previous.ts +++ b/src/handlers/Player/ButtonCommands/Previous.ts @@ -1,6 +1,6 @@ import { ButtonInteraction, EmbedBuilder, VoiceBasedChannel } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class ButtonPrevious { client: Manager; @@ -65,7 +65,7 @@ export class ButtonPrevious { }); return; } else { - await this.player.queue.unshift(this.player.queue.previous); + await this.player.queue.unshift(this.player.queue.previous[0]); await this.player.skip(); const embed = new EmbedBuilder() diff --git a/src/handlers/Player/ButtonCommands/Skip.ts b/src/handlers/Player/ButtonCommands/Skip.ts index a610e13b..e9fbe9ef 100644 --- a/src/handlers/Player/ButtonCommands/Skip.ts +++ b/src/handlers/Player/ButtonCommands/Skip.ts @@ -1,6 +1,6 @@ import { ButtonInteraction, EmbedBuilder, VoiceBasedChannel } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class ButtonSkip { client: Manager; diff --git a/src/handlers/Player/ButtonCommands/Stop.ts b/src/handlers/Player/ButtonCommands/Stop.ts index 6d90a30c..dbfad02d 100644 --- a/src/handlers/Player/ButtonCommands/Stop.ts +++ b/src/handlers/Player/ButtonCommands/Stop.ts @@ -1,6 +1,6 @@ import { ButtonInteraction, EmbedBuilder, VoiceBasedChannel } from "discord.js"; import { Manager } from "../../../manager.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class ButtonStop { client: Manager; diff --git a/src/handlers/Player/loadContent.ts b/src/handlers/Player/loadContent.ts index ffafa9d6..69547794 100644 --- a/src/handlers/Player/loadContent.ts +++ b/src/handlers/Player/loadContent.ts @@ -203,7 +203,7 @@ export class playerLoadContent { .setDescription( `${client.i18n.get(language, "music", "play_playlist", { title: result.tracks[0].title, - url: result.tracks[0].uri, + url: String(result.tracks[0].uri), duration: new ConvertTime().parse(TotalDuration), songs: `${result.tracks.length}`, request: `${result.tracks[0].requester}`, @@ -217,7 +217,7 @@ export class playerLoadContent { .setDescription( `${client.i18n.get(language, "music", "play_track", { title: result.tracks[0].title, - url: result.tracks[0].uri, + url: String(result.tracks[0].uri), duration: new ConvertTime().parse( result.tracks[0].length as number ), @@ -231,7 +231,7 @@ export class playerLoadContent { const embed = new EmbedBuilder().setColor(client.color).setDescription( `${client.i18n.get(language, "music", "play_result", { title: result.tracks[0].title, - url: result.tracks[0].uri, + url: String(result.tracks[0].uri), duration: new ConvertTime().parse(result.tracks[0].length as number), request: `${result.tracks[0].requester}`, })}` diff --git a/src/handlers/Player/loadUpdate.ts b/src/handlers/Player/loadUpdate.ts index 6bc2b979..972b15c7 100644 --- a/src/handlers/Player/loadUpdate.ts +++ b/src/handlers/Player/loadUpdate.ts @@ -2,7 +2,7 @@ import { Manager } from "../../manager.js"; import { EmbedBuilder, TextChannel } from "discord.js"; import { FormatDuration } from "../../structures/FormatDuration.js"; import { QueueDuration } from "../../structures/QueueDuration.js"; -import { KazagumoPlayer } from "better-kazagumo"; +import { KazagumoPlayer } from "kazagumo.mod"; export class playerLoadUpdate { client: Manager; @@ -77,7 +77,7 @@ export class playerLoadUpdate { .setDescription( `${client.i18n.get(language, "setup", "setup_desc", { title: cSong!.title, - url: cSong!.uri, + url: String(cSong!.uri), duration: new FormatDuration().parse(cSong!.length), request: `${cSong!.requester}`, })}` diff --git a/src/manager.ts b/src/manager.ts index 397e99aa..6cb03d82 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -14,7 +14,7 @@ import { LavalinkDataType, LavalinkUsingDataType } from "./@types/Lavalink.js"; import { ConfigDataService } from "./services/ConfigDataService.js"; import { LoggerService } from "./services/LoggerService.js"; import { ClusterClient, getInfo } from "discord-hybrid-sharding"; -import { Kazagumo, KazagumoPlayer } from "better-kazagumo"; +import { Kazagumo, KazagumoPlayer } from "kazagumo.mod"; import { join, dirname } from "path"; import { fileURLToPath } from "url"; import { WebServer } from "./webserver/index.js"; @@ -128,7 +128,7 @@ export class Manager extends Client { }); this.prefix = this.config.features.MESSAGE_CONTENT.commands.prefix || "d!"; this.shard_status = false; - this.REGEX = REGEX + this.REGEX = REGEX; // Initial autofix lavalink varibles this.lavalink_list = []; diff --git a/src/manifest.xml b/src/manifest.xml index 8800bc2d..761eed73 100644 --- a/src/manifest.xml +++ b/src/manifest.xml @@ -7,7 +7,7 @@ - 3.2.0 + 4.0.0 4.1.0 hatsuharu (AzurLane) diff --git a/src/structures/Kazagumo.ts b/src/structures/Kazagumo.ts index 72f73dd2..68a1c7f3 100644 --- a/src/structures/Kazagumo.ts +++ b/src/structures/Kazagumo.ts @@ -1,4 +1,4 @@ -import { Kazagumo, Plugins } from "better-kazagumo"; +import { Kazagumo, Plugins } from "kazagumo.mod"; import { Manager } from "../manager.js"; import { Connectors } from "shoukaku"; diff --git a/src/structures/QueueDuration.ts b/src/structures/QueueDuration.ts index 6fc2712c..902c55c5 100644 --- a/src/structures/QueueDuration.ts +++ b/src/structures/QueueDuration.ts @@ -1,4 +1,4 @@ -import { KazagumoPlayer, KazagumoTrack } from "better-kazagumo"; +import { KazagumoPlayer, KazagumoTrack } from "kazagumo.mod"; export class QueueDuration { parse(player: KazagumoPlayer) { diff --git a/src/webserver/request/Previous.ts b/src/webserver/request/Previous.ts index 35871f0c..f8b8fb37 100644 --- a/src/webserver/request/Previous.ts +++ b/src/webserver/request/Previous.ts @@ -19,7 +19,7 @@ export default class implements RequestInterface { ); } - const song = player.queue.previous; + const song = player.queue.previous[0]; if (!song) return ws.send( diff --git a/src/webserver/request/status.current.ts b/src/webserver/request/status.current.ts index b1bfd8ba..4d7bd5af 100644 --- a/src/webserver/request/status.current.ts +++ b/src/webserver/request/status.current.ts @@ -20,7 +20,7 @@ export default class implements RequestInterface { player.queue.forEach((track) => { webqueue.push({ title: track.title, - uri: track.uri, + uri: String(track.uri), length: track.length, thumbnail: track.thumbnail, author: track.author, diff --git a/src/webserver/request/status.ts b/src/webserver/request/status.ts index 65f413fc..28bc0b41 100644 --- a/src/webserver/request/status.ts +++ b/src/webserver/request/status.ts @@ -36,7 +36,7 @@ export default class implements RequestInterface { player.queue.forEach((track) => { webqueue.push({ title: track.title, - uri: track.uri, + uri: String(track.uri), length: track.length, thumbnail: track.thumbnail, author: track.author, @@ -46,7 +46,7 @@ export default class implements RequestInterface { await webqueue.unshift({ title: song!.title, - uri: song!.uri, + uri: String(song!.uri), length: song!.length, thumbnail: song!.thumbnail, author: song!.author, From 5ee45cfba06e4e44ec733d140dacabc671c102d2 Mon Sep 17 00:00:00 2001 From: RainyXeon / Date: Sun, 24 Dec 2023 18:42:47 +0700 Subject: [PATCH 20/20] Update to kazagumo.mod@v1.1.0 --- .github/ISSUE_TEMPLATE/bug_report.md | 6 +- .github/ISSUE_TEMPLATE/feature_request.md | 3 +- .github/ISSUE_TEMPLATE/some-small-help.md | 5 +- .github/workflows/build.yml | 11 +- app.example.yml | 4 +- build.mjs | 72 +- clearSlash.mjs | 18 +- package.json | 2 +- pnpm-lock.yaml | 3576 +++++++++++++++------ src/commands/prefix/Music/247.ts | 2 +- src/commands/slash/Music/247.ts | 2 +- src/languages/en/noplayer.yaml | 4 +- src/languages/th/noplayer.yaml | 2 +- src/languages/vi/noplayer.yaml | 2 +- 14 files changed, 2657 insertions(+), 1052 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index cc83b788..8d4e2d78 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,10 +1,9 @@ --- name: Bug report about: Create a report to help us improve -title: '' +title: "" labels: bug assignees: RainyXeon - --- **Describe the bug** @@ -12,6 +11,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,6 +24,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Host info: (use `/info status` command and paste here, below is example)** + - OS: Linux 6.2.0-1016-aws (x64) - CPU: AMD EPYC 7R13 Processor - Uptime: 1m 10.3s @@ -32,6 +33,7 @@ If applicable, add screenshots to help explain your problem. - Node.js: v21.1.0 **Bot info (use `/info status` command and paste here, below is example):** + - Codename: hatsuharu (AzurLane) - Bot version: 3.0.4 - Autofix version: 4.1.0 diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index b00ba848..8f717f83 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,10 +1,9 @@ --- name: Feature request about: Suggest an idea for this project -title: '' +title: "" labels: enhancement, help wanted assignees: RainyXeon - --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/ISSUE_TEMPLATE/some-small-help.md b/.github/ISSUE_TEMPLATE/some-small-help.md index 17680e2c..8c02744c 100644 --- a/.github/ISSUE_TEMPLATE/some-small-help.md +++ b/.github/ISSUE_TEMPLATE/some-small-help.md @@ -1,10 +1,7 @@ --- name: Some small help about: Some small help that u need owner to help with -title: '' +title: "" labels: help wanted, question assignees: RainyXeon - --- - - diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 116039ae..a28d68a2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,13 +5,12 @@ name: Build release on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] jobs: build: - runs-on: ubuntu-latest strategy: @@ -45,15 +44,15 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - + - name: Install dependencies run: pnpm install - name: Build bot run: node build.mjs build:github - + - name: Push ByteBlaze build zip to artifact uses: actions/upload-artifact@v3 with: name: "ByteBlaze" - path: out/ \ No newline at end of file + path: out/ diff --git a/app.example.yml b/app.example.yml index df18a6a9..e1f4a3f0 100644 --- a/app.example.yml +++ b/app.example.yml @@ -58,10 +58,10 @@ features: MESSAGE_CONTENT: enable: true - commands: + commands: enable: true prefix: "d!" # The prefix you want - + AUTOFIX_LAVALINK: # Fix the lavalink server when the current is down enable: true reconnectTries: 5 diff --git a/build.mjs b/build.mjs index cb18dd6e..65fb8e01 100644 --- a/build.mjs +++ b/build.mjs @@ -5,8 +5,8 @@ import archiver from "dir-archiver"; import { XMLParser, XMLBuilder } from "fast-xml-parser"; import fse from "fs-extra"; import { plsParseArgs } from "plsargs"; -import copydir from 'copy-dir'; -import path from "path" +import copydir from "copy-dir"; +import path from "path"; const args = plsParseArgs(process.argv.slice(2)); const parser = new XMLParser(); const builder = new XMLBuilder(); @@ -30,7 +30,7 @@ const ignored = [ "pnpm-lock.yaml", "tsconfig.json", ".github", - "out" + "out", ]; function logger(data, type) { @@ -53,40 +53,40 @@ if (!acceptedParams.includes(args.get(0))) { } if (args.get(0) == acceptedParams[0]) { - const checkDir = ["./dist", "./out", "./.cylane", "./logs"] + const checkDir = ["./dist", "./out", "./.cylane", "./logs"]; checkDir.forEach(async (data) => { - if (fse.existsSync(data)) + if (fse.existsSync(data)) fse.rmdirSync(data, { recursive: true, force: true }); - }) + }); logger("Clean successfully!", "info"); process.exit(); } -console.log(args.get(0), acceptedParams[2]) +console.log(args.get(0), acceptedParams[2]); if (args.get(0) == acceptedParams[2]) { const child = spawn(/^win/.test(process.platform) ? "npm.cmd" : "npm", [ "run", "build:full", ]); - + child.stdout.on("data", (data) => { logger(data, "build"); }); - + child.stderr.on("data", (data) => { logger(data, "build"); }); - + child.on("error", (error) => { logger(error.message, "error"); }); - + child.on("close", async (code) => { logger(`Build finished with code ${code}`, "build"); - + // Edit manifest const manifestRaw = fse.readFileSync("./dist/manifest.xml", "utf-8"); const manifest = parser.parse(manifestRaw); @@ -101,33 +101,30 @@ if (args.get(0) == acceptedParams[2]) { `\n` + "" + `\n`; - + manifest.metadata.bot.version = `${botVersion}+${objectDate}`; - + fse.writeFileSync( "./dist/manifest.xml", builder.build(manifest) + warningData, "utf-8" ); - - logger( - "Edit manifest file complete!", - "build" - ); + + logger("Edit manifest file complete!", "build"); await fse.mkdir("./out"); await fse.mkdir("./out/ByteBlaze"); - copydir.sync('.', './out/ByteBlaze', { - filter: function(stat, filepath, filename){ - if(stat === 'file' && ignored.includes(filename)) { + copydir.sync(".", "./out/ByteBlaze", { + filter: function (stat, filepath, filename) { + if (stat === "file" && ignored.includes(filename)) { return false; } - if (stat === 'directory' && ignored.includes(filename)) { + if (stat === "directory" && ignored.includes(filename)) { return false; } - return true; // remind to return a true value when file check passed. - } + return true; // remind to return a true value when file check passed. + }, }); }); } else { @@ -136,22 +133,22 @@ if (args.get(0) == acceptedParams[2]) { "run", "build:full", ]); - + child.stdout.on("data", (data) => { logger(data, "build"); }); - + child.stderr.on("data", (data) => { logger(data, "build"); }); - + child.on("error", (error) => { logger(error.message, "error"); }); - + child.on("close", async (code) => { logger(`Build finished with code ${code}`, "build"); - + // Edit manifest const manifestRaw = fse.readFileSync("./dist/manifest.xml", "utf-8"); const manifest = parser.parse(manifestRaw); @@ -166,24 +163,21 @@ if (args.get(0) == acceptedParams[2]) { `\n` + "" + `\n`; - + manifest.metadata.bot.version = `${botVersion}+${objectDate}`; - + fse.writeFileSync( "./dist/manifest.xml", builder.build(manifest) + warningData, "utf-8" ); - - logger( - "Edit manifest file complete!", - "build" - ); - + + logger("Edit manifest file complete!", "build"); + // Archive build await fse.mkdir("./out"); const path = `./out/ByteBlaze.zip`; - + const zipper = new archiver(".", path, false, ignored); zipper.createZip(); logger("Archive all build file successfully!!!", "build"); diff --git a/clearSlash.mjs b/clearSlash.mjs index 64c1b0fa..41ca8459 100644 --- a/clearSlash.mjs +++ b/clearSlash.mjs @@ -8,17 +8,18 @@ config(); class ClearSlash { constructor() { - this.execute() + this.execute(); } async execute() { - const configData = this.ConfigData + const configData = this.ConfigData; const rest = new REST({ version: "10" }).setToken(configData.bot.TOKEN); const client = await rest.get(Routes.user()); - - rest.put(Routes.applicationCommands(client.id), { body: [] }) - .then(() => console.log('Successfully deleted all application commands.')) - .catch(console.error); + + rest + .put(Routes.applicationCommands(client.id), { body: [] }) + .then(() => console.log("Successfully deleted all application commands.")) + .catch(console.error); } get ConfigData() { @@ -66,8 +67,7 @@ class ClearSlash { process.env[extract[1]] && boolean.includes(process.env[extract[1]].trim().toLowerCase()) ) { - const boolean_prase_res = - this.parseBoolean(process.env[extract[1]]); + const boolean_prase_res = this.parseBoolean(process.env[extract[1]]); res_array.push( _.replace(element, extract[0], String(boolean_prase_res)) ); @@ -113,4 +113,4 @@ class ClearSlash { } } -new ClearSlash() \ No newline at end of file +new ClearSlash(); diff --git a/package.json b/package.json index 6c63531b..d4cc4b4c 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "fs-extra": "^11.1.1", "humanize-duration": "^3.30.0", "js-yaml": "^4.1.0", - "kazagumo.mod": "^1.0.0", + "kazagumo.mod": "^1.1.0", "lodash": "^4.17.21", "markdown-it": "^13.0.2", "moment": "^2.29.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e1e2ccd..d74b9424 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,15 +1,15 @@ -lockfileVersion: '6.0' +lockfileVersion: "6.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false overrides: - marked@<4.0.10: '>=4.0.10' - undici@<5.26.2: '>=5.26.2' + marked@<4.0.10: ">=4.0.10" + undici@<5.26.2: ">=5.26.2" dependencies: - '@hammerhq/localization': + "@hammerhq/localization": specifier: ^0.1.5 version: 0.1.5 axios: @@ -58,8 +58,8 @@ dependencies: specifier: ^4.1.0 version: 4.1.0 kazagumo.mod: - specifier: ^1.0.0 - version: 1.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.2) + specifier: ^1.1.0 + version: 1.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.2) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -81,7 +81,7 @@ dependencies: nodemon: specifier: ^3.0.1 version: 3.0.1 - os: {specifier: ^0.1.2, version: 0.1.2} + os: { specifier: ^0.1.2, version: 0.1.2 } path: specifier: ^0.12.7 version: 0.12.7 @@ -120,58 +120,58 @@ dependencies: version: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.2) devDependencies: - '@digitak/tsc-esm': + "@digitak/tsc-esm": specifier: ^3.1.4 version: 3.1.4 - '@types/chillout': + "@types/chillout": specifier: ^5.0.4 version: 5.0.4 - '@types/common-tags': + "@types/common-tags": specifier: ^1.8.3 version: 1.8.3 - '@types/express': + "@types/express": specifier: ^4.17.20 version: 4.17.20 - '@types/express-cluster': + "@types/express-cluster": specifier: ^0.0.3 version: 0.0.3 - '@types/express-status-monitor': + "@types/express-status-monitor": specifier: ^1.3.2 version: 1.3.2 - '@types/express-ws': + "@types/express-ws": specifier: ^3.0.3 version: 3.0.3 - '@types/fs-extra': + "@types/fs-extra": specifier: ^11.0.3 version: 11.0.3 - '@types/humanize-duration': + "@types/humanize-duration": specifier: ^3.27.2 version: 3.27.2 - '@types/js-yaml': + "@types/js-yaml": specifier: ^4.0.8 version: 4.0.8 - '@types/lodash': + "@types/lodash": specifier: ^4.14.200 version: 4.14.200 - '@types/markdown-it': + "@types/markdown-it": specifier: ^13.0.5 version: 13.0.5 - '@types/node': + "@types/node": specifier: ^20.8.10 version: 20.8.10 - '@types/node-cron': + "@types/node-cron": specifier: ^3.0.11 version: 3.0.11 - '@types/recursive-readdir': + "@types/recursive-readdir": specifier: ^2.2.3 version: 2.2.3 - '@types/voucher-code-generator': + "@types/voucher-code-generator": specifier: ^1.1.2 version: 1.1.2 - '@types/ws': + "@types/ws": specifier: ^8.5.8 version: 8.5.8 - '@types/yt-search': + "@types/yt-search": specifier: ^2.10.2 version: 2.10.2 copy-dir: @@ -218,21 +218,29 @@ devDependencies: version: 5.2.2 packages: - /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + resolution: + { + integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==, + } + engines: { node: ">=0.1.90" } dev: false /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: ">=12" } dependencies: - '@jridgewell/trace-mapping': 0.3.9 + "@jridgewell/trace-mapping": 0.3.9 dev: true /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + resolution: + { + integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==, + } dependencies: colorspace: 1.1.4 enabled: 2.0.0 @@ -240,25 +248,34 @@ packages: dev: false /@digitak/grubber@3.1.4: - resolution: {integrity: sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==} + resolution: + { + integrity: sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==, + } dev: true /@digitak/tsc-esm@3.1.4: - resolution: {integrity: sha512-D3AbtMYfh/BarDe0HS3nPh93zavleQH+UfeoWosz6p14YYG+zXPYqbPt9zwXJXrE9C3/g6DRLvBTK/l/qW2WlA==} + resolution: + { + integrity: sha512-D3AbtMYfh/BarDe0HS3nPh93zavleQH+UfeoWosz6p14YYG+zXPYqbPt9zwXJXrE9C3/g6DRLvBTK/l/qW2WlA==, + } hasBin: true dependencies: - '@digitak/grubber': 3.1.4 + "@digitak/grubber": 3.1.4 fast-glob: 3.3.1 relaxed-json: 1.0.3 dev: true /@discordjs/builders@1.6.5: - resolution: {integrity: sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==} - engines: {node: '>=16.11.0'} - dependencies: - '@discordjs/formatters': 0.3.2 - '@discordjs/util': 1.0.1 - '@sapphire/shapeshift': 3.9.3 + resolution: + { + integrity: sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==, + } + engines: { node: ">=16.11.0" } + dependencies: + "@discordjs/formatters": 0.3.2 + "@discordjs/util": 1.0.1 + "@sapphire/shapeshift": 3.9.3 discord-api-types: 0.37.50 fast-deep-equal: 3.1.3 ts-mixer: 6.0.3 @@ -266,26 +283,35 @@ packages: dev: false /@discordjs/collection@1.5.3: - resolution: {integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==} - engines: {node: '>=16.11.0'} + resolution: + { + integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==, + } + engines: { node: ">=16.11.0" } dev: false /@discordjs/formatters@0.3.2: - resolution: {integrity: sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==} - engines: {node: '>=16.11.0'} + resolution: + { + integrity: sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==, + } + engines: { node: ">=16.11.0" } dependencies: discord-api-types: 0.37.50 dev: false /@discordjs/rest@2.0.1: - resolution: {integrity: sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==} - engines: {node: '>=16.11.0'} - dependencies: - '@discordjs/collection': 1.5.3 - '@discordjs/util': 1.0.1 - '@sapphire/async-queue': 1.5.0 - '@sapphire/snowflake': 3.5.1 - '@vladfrangu/async_event_emitter': 2.2.2 + resolution: + { + integrity: sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==, + } + engines: { node: ">=16.11.0" } + dependencies: + "@discordjs/collection": 1.5.3 + "@discordjs/util": 1.0.1 + "@sapphire/async-queue": 1.5.0 + "@sapphire/snowflake": 3.5.1 + "@vladfrangu/async_event_emitter": 2.2.2 discord-api-types: 0.37.50 magic-bytes.js: 1.5.0 tslib: 2.6.2 @@ -293,20 +319,26 @@ packages: dev: false /@discordjs/util@1.0.1: - resolution: {integrity: sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==} - engines: {node: '>=16.11.0'} + resolution: + { + integrity: sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==, + } + engines: { node: ">=16.11.0" } dev: false /@discordjs/ws@1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==} - engines: {node: '>=16.11.0'} - dependencies: - '@discordjs/collection': 1.5.3 - '@discordjs/rest': 2.0.1 - '@discordjs/util': 1.0.1 - '@sapphire/async-queue': 1.5.0 - '@types/ws': 8.5.8 - '@vladfrangu/async_event_emitter': 2.2.2 + resolution: + { + integrity: sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==, + } + engines: { node: ">=16.11.0" } + dependencies: + "@discordjs/collection": 1.5.3 + "@discordjs/rest": 2.0.1 + "@discordjs/util": 1.0.1 + "@sapphire/async-queue": 1.5.0 + "@types/ws": 8.5.8 + "@vladfrangu/async_event_emitter": 2.2.2 discord-api-types: 0.37.50 tslib: 2.6.2 ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.2) @@ -316,8 +348,11 @@ packages: dev: false /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] requiresBuild: true @@ -325,8 +360,11 @@ packages: optional: true /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] requiresBuild: true @@ -334,8 +372,11 @@ packages: optional: true /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] requiresBuild: true @@ -343,8 +384,11 @@ packages: optional: true /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] requiresBuild: true @@ -352,8 +396,11 @@ packages: optional: true /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] requiresBuild: true @@ -361,8 +408,11 @@ packages: optional: true /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] requiresBuild: true @@ -370,8 +420,11 @@ packages: optional: true /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] requiresBuild: true @@ -379,8 +432,11 @@ packages: optional: true /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] requiresBuild: true @@ -388,8 +444,11 @@ packages: optional: true /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] requiresBuild: true @@ -397,8 +456,11 @@ packages: optional: true /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] requiresBuild: true @@ -406,8 +468,11 @@ packages: optional: true /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] requiresBuild: true @@ -415,8 +480,11 @@ packages: optional: true /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] requiresBuild: true @@ -424,8 +492,11 @@ packages: optional: true /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] requiresBuild: true @@ -433,8 +504,11 @@ packages: optional: true /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] requiresBuild: true @@ -442,8 +516,11 @@ packages: optional: true /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] requiresBuild: true @@ -451,8 +528,11 @@ packages: optional: true /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] requiresBuild: true @@ -460,8 +540,11 @@ packages: optional: true /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] requiresBuild: true @@ -469,8 +552,11 @@ packages: optional: true /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] requiresBuild: true @@ -478,8 +564,11 @@ packages: optional: true /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] requiresBuild: true @@ -487,8 +576,11 @@ packages: optional: true /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] requiresBuild: true @@ -496,8 +588,11 @@ packages: optional: true /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] requiresBuild: true @@ -505,8 +600,11 @@ packages: optional: true /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] requiresBuild: true @@ -514,19 +612,28 @@ packages: optional: true /@fastify/busboy@2.0.0: - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==, + } + engines: { node: ">=14" } dev: false /@hammerhq/localization@0.1.5: - resolution: {integrity: sha512-GHexSukmB903OysxtVPFIwSoy82ku6CghSyGXL1GGV4VywQ8LnSAXNfsXKxbhq+/CvwBfMvR/nqq5Vo+GA0SiA==} + resolution: + { + integrity: sha512-GHexSukmB903OysxtVPFIwSoy82ku6CghSyGXL1GGV4VywQ8LnSAXNfsXKxbhq+/CvwBfMvR/nqq5Vo+GA0SiA==, + } dependencies: yaml: 2.3.4 dev: false /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 @@ -537,253 +644,388 @@ packages: dev: true /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, + } + engines: { node: ">=6.0.0" } dev: true /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } dev: true /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 dev: true /@mongodb-js/saslprep@1.1.1: - resolution: {integrity: sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==} + resolution: + { + integrity: sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==, + } dependencies: sparse-bitfield: 3.0.3 dev: false /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: true /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } dev: true /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.15.0 dev: true /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } requiresBuild: true dev: true optional: true /@sapphire/async-queue@1.5.0: - resolution: {integrity: sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==} - engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + resolution: + { + integrity: sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==, + } + engines: { node: ">=v14.0.0", npm: ">=7.0.0" } dev: false /@sapphire/shapeshift@3.9.3: - resolution: {integrity: sha512-WzKJSwDYloSkHoBbE8rkRW8UNKJiSRJ/P8NqJ5iVq7U2Yr/kriIBx2hW+wj2Z5e5EnXL1hgYomgaFsdK6b+zqQ==} - engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + resolution: + { + integrity: sha512-WzKJSwDYloSkHoBbE8rkRW8UNKJiSRJ/P8NqJ5iVq7U2Yr/kriIBx2hW+wj2Z5e5EnXL1hgYomgaFsdK6b+zqQ==, + } + engines: { node: ">=v14.0.0", npm: ">=7.0.0" } dependencies: fast-deep-equal: 3.1.3 lodash: 4.17.21 dev: false /@sapphire/snowflake@3.5.1: - resolution: {integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==} - engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + resolution: + { + integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==, + } + engines: { node: ">=v14.0.0", npm: ">=7.0.0" } dev: false /@socket.io/component-emitter@3.1.0: - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + resolution: + { + integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==, + } dev: true /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + resolution: + { + integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, + } dev: true /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + resolution: + { + integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, + } dev: true /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + resolution: + { + integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, + } dev: true /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + resolution: + { + integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, + } dev: true /@types/body-parser@1.19.4: - resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} + resolution: + { + integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==, + } dependencies: - '@types/connect': 3.4.37 - '@types/node': 20.8.10 + "@types/connect": 3.4.37 + "@types/node": 20.8.10 dev: true /@types/chillout@5.0.4: - resolution: {integrity: sha512-myfUnlJxFqA8xKUyFXE2rEXlaCLLthkxl0yeYRZM6z5A6sjWRs51VDdoTsHLMux43pVpwr99LBQCmDpSHq+4IQ==} + resolution: + { + integrity: sha512-myfUnlJxFqA8xKUyFXE2rEXlaCLLthkxl0yeYRZM6z5A6sjWRs51VDdoTsHLMux43pVpwr99LBQCmDpSHq+4IQ==, + } dev: true /@types/common-tags@1.8.3: - resolution: {integrity: sha512-v3smfzf7umSwpkJrmlUe+apSv6bVnrIFCeBeprnP4f8lIh6pECZxyD50e8yFwfouIt85TdxN5yXiFwS5fnsS3w==} + resolution: + { + integrity: sha512-v3smfzf7umSwpkJrmlUe+apSv6bVnrIFCeBeprnP4f8lIh6pECZxyD50e8yFwfouIt85TdxN5yXiFwS5fnsS3w==, + } dev: true /@types/connect@3.4.37: - resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} + resolution: + { + integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 dev: true /@types/engine.io@3.1.9: - resolution: {integrity: sha512-Avz/b8Ao2Aq3FAvlXkkK0ApEYNCBN6YSpUaxwuRRZ32PXZgdRH3B4MbfNhaxP1WPdl+Pw3X8XHteVQvLBV/3DA==} + resolution: + { + integrity: sha512-Avz/b8Ao2Aq3FAvlXkkK0ApEYNCBN6YSpUaxwuRRZ32PXZgdRH3B4MbfNhaxP1WPdl+Pw3X8XHteVQvLBV/3DA==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 dev: true /@types/express-cluster@0.0.3: - resolution: {integrity: sha512-la4wEppPk10X3nSVF4KiVSXwdi/scofZNTTJjCfPAks5UYvy4nFmoHZoy3H4MCxCeaefB1PnSEKGZmXjGXofCg==} + resolution: + { + integrity: sha512-la4wEppPk10X3nSVF4KiVSXwdi/scofZNTTJjCfPAks5UYvy4nFmoHZoy3H4MCxCeaefB1PnSEKGZmXjGXofCg==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 dev: true /@types/express-serve-static-core@4.17.39: - resolution: {integrity: sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==} + resolution: + { + integrity: sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==, + } dependencies: - '@types/node': 20.8.10 - '@types/qs': 6.9.9 - '@types/range-parser': 1.2.6 - '@types/send': 0.17.3 + "@types/node": 20.8.10 + "@types/qs": 6.9.9 + "@types/range-parser": 1.2.6 + "@types/send": 0.17.3 dev: true /@types/express-status-monitor@1.3.2: - resolution: {integrity: sha512-MwSq+DXrHuu1yvMIiUNk4xYfrwjZLTXhEvod0qdqoDHlYhHZqP7iRJgqd7FW3YOUOpThLPlwbYJkL8HpwD1o8w==} + resolution: + { + integrity: sha512-MwSq+DXrHuu1yvMIiUNk4xYfrwjZLTXhEvod0qdqoDHlYhHZqP7iRJgqd7FW3YOUOpThLPlwbYJkL8HpwD1o8w==, + } dependencies: - '@types/express': 4.17.20 - '@types/socket.io': 2.1.13 + "@types/express": 4.17.20 + "@types/socket.io": 2.1.13 transitivePeerDependencies: - supports-color dev: true /@types/express-ws@3.0.3: - resolution: {integrity: sha512-DUPy7Ty4pven+6QgsD/QcDi9P9KRpcSaxWOfuQYLFYrsUQdtmSDAb9tYUJDad4FKkh7Ijef3PRe2EFensEVJmQ==} + resolution: + { + integrity: sha512-DUPy7Ty4pven+6QgsD/QcDi9P9KRpcSaxWOfuQYLFYrsUQdtmSDAb9tYUJDad4FKkh7Ijef3PRe2EFensEVJmQ==, + } dependencies: - '@types/express': 4.17.20 - '@types/express-serve-static-core': 4.17.39 - '@types/ws': 8.5.8 + "@types/express": 4.17.20 + "@types/express-serve-static-core": 4.17.39 + "@types/ws": 8.5.8 dev: true /@types/express@4.17.20: - resolution: {integrity: sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==} + resolution: + { + integrity: sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==, + } dependencies: - '@types/body-parser': 1.19.4 - '@types/express-serve-static-core': 4.17.39 - '@types/qs': 6.9.9 - '@types/serve-static': 1.15.4 + "@types/body-parser": 1.19.4 + "@types/express-serve-static-core": 4.17.39 + "@types/qs": 6.9.9 + "@types/serve-static": 1.15.4 dev: true /@types/fs-extra@11.0.3: - resolution: {integrity: sha512-sF59BlXtUdzEAL1u0MSvuzWd7PdZvZEtnaVkzX5mjpdWTJ8brG0jUqve3jPCzSzvAKKMHTG8F8o/WMQLtleZdQ==} + resolution: + { + integrity: sha512-sF59BlXtUdzEAL1u0MSvuzWd7PdZvZEtnaVkzX5mjpdWTJ8brG0jUqve3jPCzSzvAKKMHTG8F8o/WMQLtleZdQ==, + } dependencies: - '@types/jsonfile': 6.1.3 - '@types/node': 20.8.10 + "@types/jsonfile": 6.1.3 + "@types/node": 20.8.10 dev: true /@types/http-errors@2.0.3: - resolution: {integrity: sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==} + resolution: + { + integrity: sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==, + } dev: true /@types/humanize-duration@3.27.2: - resolution: {integrity: sha512-KOGjfVAD8CHMgXL6z96f7eCNRFUENKa2BG87l7JsSg9ZA6lRFsipZ0faF4kKFqnzxirVgXmOnWqTLAKUog1h/g==} + resolution: + { + integrity: sha512-KOGjfVAD8CHMgXL6z96f7eCNRFUENKa2BG87l7JsSg9ZA6lRFsipZ0faF4kKFqnzxirVgXmOnWqTLAKUog1h/g==, + } dev: true /@types/js-yaml@4.0.8: - resolution: {integrity: sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==} + resolution: + { + integrity: sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==, + } dev: true /@types/jsonfile@6.1.3: - resolution: {integrity: sha512-/yqTk2SZ1wIezK0hiRZD7RuSf4B3whFxFamB1kGStv+8zlWScTMcHanzfc0XKWs5vA1TkHeckBlOyM8jxU8nHA==} + resolution: + { + integrity: sha512-/yqTk2SZ1wIezK0hiRZD7RuSf4B3whFxFamB1kGStv+8zlWScTMcHanzfc0XKWs5vA1TkHeckBlOyM8jxU8nHA==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 dev: true /@types/linkify-it@3.0.4: - resolution: {integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==} + resolution: + { + integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==, + } dev: true /@types/lodash@4.14.200: - resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==} + resolution: + { + integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==, + } dev: true /@types/markdown-it@13.0.5: - resolution: {integrity: sha512-QhJP7hkq3FCrFNx0szMNCT/79CXfcEgUIA3jc5GBfeXqoKsk3R8JZm2wRXJ2DiyjbPE4VMFOSDemLFcUTZmHEQ==} + resolution: + { + integrity: sha512-QhJP7hkq3FCrFNx0szMNCT/79CXfcEgUIA3jc5GBfeXqoKsk3R8JZm2wRXJ2DiyjbPE4VMFOSDemLFcUTZmHEQ==, + } dependencies: - '@types/linkify-it': 3.0.4 - '@types/mdurl': 1.0.4 + "@types/linkify-it": 3.0.4 + "@types/mdurl": 1.0.4 dev: true /@types/mdurl@1.0.4: - resolution: {integrity: sha512-ARVxjAEX5TARFRzpDRVC6cEk0hUIXCCwaMhz8y7S1/PxU6zZS1UMjyobz7q4w/D/R552r4++EhwmXK1N2rAy0A==} + resolution: + { + integrity: sha512-ARVxjAEX5TARFRzpDRVC6cEk0hUIXCCwaMhz8y7S1/PxU6zZS1UMjyobz7q4w/D/R552r4++EhwmXK1N2rAy0A==, + } dev: true /@types/mime@1.3.4: - resolution: {integrity: sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==} + resolution: + { + integrity: sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==, + } dev: true /@types/mime@3.0.3: - resolution: {integrity: sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ==} + resolution: + { + integrity: sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ==, + } dev: true /@types/node-cron@3.0.11: - resolution: {integrity: sha512-0ikrnug3/IyneSHqCBeslAhlK2aBfYek1fGo4bP4QnZPmiqSGRK+Oy7ZMisLWkesffJvQ1cqAcBnJC+8+nxIAg==} + resolution: + { + integrity: sha512-0ikrnug3/IyneSHqCBeslAhlK2aBfYek1fGo4bP4QnZPmiqSGRK+Oy7ZMisLWkesffJvQ1cqAcBnJC+8+nxIAg==, + } dev: true /@types/node@20.8.10: - resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==} + resolution: + { + integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==, + } dependencies: undici-types: 5.26.5 /@types/qs@6.9.9: - resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} + resolution: + { + integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==, + } dev: true /@types/range-parser@1.2.6: - resolution: {integrity: sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==} + resolution: + { + integrity: sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==, + } dev: true /@types/recursive-readdir@2.2.3: - resolution: {integrity: sha512-fhOVQ23ki+GB0WGmJJF9OwPBjel2Iv02pmEv58T0DZqIAlKnyhAaC2E9/LuKQLIZF88w7ivXSZXJtvEXGXFgeQ==} + resolution: + { + integrity: sha512-fhOVQ23ki+GB0WGmJJF9OwPBjel2Iv02pmEv58T0DZqIAlKnyhAaC2E9/LuKQLIZF88w7ivXSZXJtvEXGXFgeQ==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 dev: true /@types/send@0.17.3: - resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} + resolution: + { + integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==, + } dependencies: - '@types/mime': 1.3.4 - '@types/node': 20.8.10 + "@types/mime": 1.3.4 + "@types/node": 20.8.10 dev: true /@types/serve-static@1.15.4: - resolution: {integrity: sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==} + resolution: + { + integrity: sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==, + } dependencies: - '@types/http-errors': 2.0.3 - '@types/mime': 3.0.3 - '@types/node': 20.8.10 + "@types/http-errors": 2.0.3 + "@types/mime": 3.0.3 + "@types/node": 20.8.10 dev: true /@types/socket.io-parser@3.0.0: - resolution: {integrity: sha512-Ry/rbTE6HQNL9eu3LpL1Ocup5VexXu1bSSGlSho/IR5LuRc8YvxwSNJ3JxqTltVJEATLbZkMQETSbxfKNgp4Ew==} + resolution: + { + integrity: sha512-Ry/rbTE6HQNL9eu3LpL1Ocup5VexXu1bSSGlSho/IR5LuRc8YvxwSNJ3JxqTltVJEATLbZkMQETSbxfKNgp4Ew==, + } deprecated: This is a stub types definition. socket.io-parser provides its own type definitions, so you do not need this installed. dependencies: socket.io-parser: 4.2.4 @@ -792,111 +1034,168 @@ packages: dev: true /@types/socket.io@2.1.13: - resolution: {integrity: sha512-JRgH3nCgsWel4OPANkhH8TelpXvacAJ9VeryjuqCDiaVDMpLysd6sbt0dr6Z15pqH3p2YpOT3T1C5vQ+O/7uyg==} - dependencies: - '@types/engine.io': 3.1.9 - '@types/node': 20.8.10 - '@types/socket.io-parser': 3.0.0 + resolution: + { + integrity: sha512-JRgH3nCgsWel4OPANkhH8TelpXvacAJ9VeryjuqCDiaVDMpLysd6sbt0dr6Z15pqH3p2YpOT3T1C5vQ+O/7uyg==, + } + dependencies: + "@types/engine.io": 3.1.9 + "@types/node": 20.8.10 + "@types/socket.io-parser": 3.0.0 transitivePeerDependencies: - supports-color dev: true /@types/triple-beam@1.3.4: - resolution: {integrity: sha512-HlJjF3wxV4R2VQkFpKe0YqJLilYNgtRtsqqZtby7RkVsSs+i+vbyzjtUwpFEdUCKcrGzCiEJE7F/0mKjh0sunA==} + resolution: + { + integrity: sha512-HlJjF3wxV4R2VQkFpKe0YqJLilYNgtRtsqqZtby7RkVsSs+i+vbyzjtUwpFEdUCKcrGzCiEJE7F/0mKjh0sunA==, + } dev: false /@types/voucher-code-generator@1.1.2: - resolution: {integrity: sha512-x6AimPqC2niPjNKFIRopuO4lC6qYSdADVKEPIrEaHbEbkbKn1EeXTFbVsGrNy0DBxQ8Y8I+ao0VWUciRKvqAjw==} + resolution: + { + integrity: sha512-x6AimPqC2niPjNKFIRopuO4lC6qYSdADVKEPIrEaHbEbkbKn1EeXTFbVsGrNy0DBxQ8Y8I+ao0VWUciRKvqAjw==, + } dev: true /@types/webidl-conversions@7.0.2: - resolution: {integrity: sha512-uNv6b/uGRLlCVmelat2rA8bcVd3k/42mV2EmjhPh6JLkd35T5bgwR/t6xy7a9MWhd9sixIeBUzhBenvk3NO+DQ==} + resolution: + { + integrity: sha512-uNv6b/uGRLlCVmelat2rA8bcVd3k/42mV2EmjhPh6JLkd35T5bgwR/t6xy7a9MWhd9sixIeBUzhBenvk3NO+DQ==, + } dev: false /@types/whatwg-url@8.2.2: - resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} + resolution: + { + integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==, + } dependencies: - '@types/node': 20.8.10 - '@types/webidl-conversions': 7.0.2 + "@types/node": 20.8.10 + "@types/webidl-conversions": 7.0.2 dev: false /@types/ws@8.5.8: - resolution: {integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==} + resolution: + { + integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==, + } dependencies: - '@types/node': 20.8.10 + "@types/node": 20.8.10 /@types/yt-search@2.10.2: - resolution: {integrity: sha512-Q+wMAaKyxndt6CxeknFDziXqDsQ3OIBTvDwLsPST8eQW35hAImC3DxGFo5QIPe6xAwlN97C03pKetYHXMaOceA==} + resolution: + { + integrity: sha512-Q+wMAaKyxndt6CxeknFDziXqDsQ3OIBTvDwLsPST8eQW35hAImC3DxGFo5QIPe6xAwlN97C03pKetYHXMaOceA==, + } dev: true /@vladfrangu/async_event_emitter@2.2.2: - resolution: {integrity: sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==} - engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + resolution: + { + integrity: sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==, + } + engines: { node: ">=v14.0.0", npm: ">=7.0.0" } dev: false /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + resolution: + { + integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, + } dev: false /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: ">= 0.6" } dependencies: mime-types: 2.1.35 negotiator: 0.6.3 dev: false /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==, + } + engines: { node: ">=0.4.0" } dev: true /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, + } + engines: { node: ">=0.4.0" } hasBin: true dev: true /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } dev: true /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } dev: true /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } dependencies: color-convert: 1.9.3 dev: true /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } dependencies: color-convert: 2.0.1 dev: true /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } dev: true /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: false /archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==, + } + engines: { node: ">= 6" } dependencies: glob: 7.2.3 graceful-fs: 4.2.11 @@ -911,8 +1210,11 @@ packages: dev: true /archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==, + } + engines: { node: ">= 10" } dependencies: glob: 7.2.3 graceful-fs: 4.2.11 @@ -927,8 +1229,11 @@ packages: dev: true /archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==, + } + engines: { node: ">= 10" } dependencies: archiver-utils: 2.1.0 async: 3.2.5 @@ -940,31 +1245,49 @@ packages: dev: true /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } dev: true /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } dev: false /argv-flags@0.1.1: - resolution: {integrity: sha512-mz7l8aKJV/aMQg3+IuwGSA0Y2jg0nagGN30lkBBkl5B8mc/vhMiZo17Px1zefwaRBo/W28J6UgHq/SfEZM/AEQ==} + resolution: + { + integrity: sha512-mz7l8aKJV/aMQg3+IuwGSA0Y2jg0nagGN30lkBBkl5B8mc/vhMiZo17Px1zefwaRBo/W28J6UgHq/SfEZM/AEQ==, + } dev: true /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + resolution: + { + integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, + } dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 dev: true /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } dev: false /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.5 @@ -976,19 +1299,31 @@ packages: dev: true /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + resolution: + { + integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, + } /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } dev: false /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: ">= 0.4" } dev: true /axios@1.6.0: - resolution: {integrity: sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==} + resolution: + { + integrity: sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==, + } dependencies: follow-redirects: 1.15.3 form-data: 4.0.0 @@ -998,7 +1333,10 @@ packages: dev: false /axios@1.6.2: - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + resolution: + { + integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==, + } dependencies: follow-redirects: 1.15.3 form-data: 4.0.0 @@ -1008,19 +1346,31 @@ packages: dev: false /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } dev: true /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } dev: false /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } dependencies: buffer: 5.7.1 inherits: 2.0.4 @@ -1028,8 +1378,11 @@ packages: dev: true /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -1048,82 +1401,124 @@ packages: dev: false /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + resolution: + { + integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, + } dev: false /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } dependencies: balanced-match: 1.0.2 dev: true /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } dependencies: fill-range: 7.0.1 /bson@6.2.0: - resolution: {integrity: sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==} - engines: {node: '>=16.20.1'} + resolution: + { + integrity: sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==, + } + engines: { node: ">=16.20.1" } dev: false /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + } dev: true /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } dev: true /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==, + } + engines: { node: ">=4" } dev: false /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true /bufferutil@4.0.8: - resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} - engines: {node: '>=6.14.2'} + resolution: + { + integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==, + } + engines: { node: ">=6.14.2" } requiresBuild: true dependencies: node-gyp-build: 4.6.1 dev: false /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: ">= 0.8" } dev: false /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + resolution: + { + integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, + } dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.1.1 /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + resolution: + { + integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, + } dependencies: pascal-case: 3.1.2 tslib: 2.6.2 dev: false /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -1131,18 +1526,27 @@ packages: dev: true /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } dev: false /chillout@5.0.0: - resolution: {integrity: sha512-xCyFUOrkOVBSaZ1pKXUZcrKhMsPkWh4jWPa9rp4zE+wHE5h4NTO7z8K5rLhV989dtQatDOoMhTe9Vi2S96QEhQ==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-xCyFUOrkOVBSaZ1pKXUZcrKhMsPkWh4jWPa9rp4zE+wHE5h4NTO7z8K5rLhV989dtQatDOoMhTe9Vi2S96QEhQ==, + } + engines: { node: ">=8.10.0" } dev: false /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -1156,7 +1560,10 @@ packages: dev: false /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + resolution: + { + integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1164,63 +1571,96 @@ packages: dev: true /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } dependencies: color-name: 1.1.3 /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } dependencies: color-name: 1.1.4 dev: true /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: + { + integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, + } dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 dev: false /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + resolution: + { + integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, + } dependencies: color-convert: 1.9.3 color-string: 1.9.1 dev: false /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + resolution: + { + integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==, + } dependencies: color: 3.2.1 text-hex: 1.0.0 dev: false /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } dependencies: delayed-stream: 1.0.0 dev: false /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } dev: true /common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, + } + engines: { node: ">=4.0.0" } dev: false /compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==, + } + engines: { node: ">= 10" } dependencies: buffer-crc32: 0.2.13 crc32-stream: 4.0.3 @@ -1229,35 +1669,56 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: ">= 0.6" } dependencies: safe-buffer: 5.2.1 dev: false /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: ">= 0.6" } dev: false /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } dev: false /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, + } + engines: { node: ">= 0.6" } dev: false /copy-dir@1.3.0: - resolution: {integrity: sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==} + resolution: + { + integrity: sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==, + } dev: true /copyfiles@2.4.1: - resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} + resolution: + { + integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==, + } hasBin: true dependencies: glob: 7.2.3 @@ -1270,30 +1731,45 @@ packages: dev: true /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } dev: true /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: ">=0.8" } hasBin: true dev: true /crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==, + } + engines: { node: ">= 10" } dependencies: crc-32: 1.2.2 readable-stream: 3.6.2 dev: true /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + resolution: + { + integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, + } dev: true /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} + resolution: + { + integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, + } + engines: { node: ">=4.8" } dependencies: nice-try: 1.0.5 path-key: 2.0.1 @@ -1303,8 +1779,11 @@ packages: dev: true /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -1312,7 +1791,10 @@ packages: dev: true /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + resolution: + { + integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, + } dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -1322,14 +1804,20 @@ packages: dev: false /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: ">= 6" } dev: false /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -1338,9 +1826,12 @@ packages: dev: false /debug@3.2.7(supports-color@5.5.0): - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -1350,10 +1841,13 @@ packages: dev: false /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -1361,16 +1855,22 @@ packages: ms: 2.1.2 /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 @@ -1378,37 +1878,58 @@ packages: dev: true /delay@6.0.0: - resolution: {integrity: sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==, + } + engines: { node: ">=16" } dev: true /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } dev: false /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, + } + engines: { node: ">=0.10" } dev: false /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: ">= 0.8" } dev: false /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } dev: false /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: ">=0.3.1" } dev: true /dir-archiver@2.1.0: - resolution: {integrity: sha512-D5FOI48w/HSoNRKxliDt8ifpjxqCPC7FCt2P2yfkFWsOBzMNqqIH8EmsHgKq1U+bZCpC/w2gV6GwhOmgJVsA+w==} + resolution: + { + integrity: sha512-D5FOI48w/HSoNRKxliDt8ifpjxqCPC7FCt2P2yfkFWsOBzMNqqIH8EmsHgKq1U+bZCpC/w2gV6GwhOmgJVsA+w==, + } hasBin: true dependencies: archiver: 5.3.2 @@ -1416,15 +1937,24 @@ packages: dev: true /discord-api-types@0.37.50: - resolution: {integrity: sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==} + resolution: + { + integrity: sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==, + } dev: false /discord-api-types@0.37.62: - resolution: {integrity: sha512-KpLQ6TiylGSSHj8AQW8Hz1ek1MkBbQUWs4gZhWH0rvSsWSj9tfav6EIitSxbFmqveqfu8oiPFI7vgFE4kBhTcQ==} + resolution: + { + integrity: sha512-KpLQ6TiylGSSHj8AQW8Hz1ek1MkBbQUWs4gZhWH0rvSsWSj9tfav6EIitSxbFmqveqfu8oiPFI7vgFE4kBhTcQ==, + } dev: false /discord-hybrid-sharding@2.1.3: - resolution: {integrity: sha512-yPBjhvPpV1k+iOGUgohVhtQFpIHuspbq/wFa+VoGDqyujjjsZImDq2TXsBclnThDfMrsSIE47uf2aLMhm8QqBA==} + resolution: + { + integrity: sha512-yPBjhvPpV1k+iOGUgohVhtQFpIHuspbq/wFa+VoGDqyujjjsZImDq2TXsBclnThDfMrsSIE47uf2aLMhm8QqBA==, + } dependencies: node-fetch: 2.7.0 transitivePeerDependencies: @@ -1432,17 +1962,20 @@ packages: dev: false /discord.js@14.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==} - engines: {node: '>=16.11.0'} - dependencies: - '@discordjs/builders': 1.6.5 - '@discordjs/collection': 1.5.3 - '@discordjs/formatters': 0.3.2 - '@discordjs/rest': 2.0.1 - '@discordjs/util': 1.0.1 - '@discordjs/ws': 1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2) - '@sapphire/snowflake': 3.5.1 - '@types/ws': 8.5.8 + resolution: + { + integrity: sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==, + } + engines: { node: ">=16.11.0" } + dependencies: + "@discordjs/builders": 1.6.5 + "@discordjs/collection": 1.5.3 + "@discordjs/formatters": 0.3.2 + "@discordjs/rest": 2.0.1 + "@discordjs/util": 1.0.1 + "@discordjs/ws": 1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2) + "@sapphire/snowflake": 3.5.1 + "@types/ws": 8.5.8 discord-api-types: 0.37.50 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 @@ -1455,7 +1988,10 @@ packages: dev: false /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: + { + integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, + } dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -1463,18 +1999,27 @@ packages: dev: false /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + } dev: false /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, + } + engines: { node: ">= 4" } dependencies: domelementtype: 2.3.0 dev: false /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + resolution: + { + integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, + } dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -1482,13 +2027,19 @@ packages: dev: false /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==, + } + engines: { node: ">=12" } dev: true /dreamvast.quick.db@9.1.6(mongoose@8.0.0)(mysql2@3.6.3)(pg@8.11.3)(write-file-atomic@5.0.1): - resolution: {integrity: sha512-pLteB28BgPr0Vc5wJCuYFc9t9tDlKt5NKon+x0GNuBktAqQeHwR3/Wrunn7DKwKzPxbUYYhLiNiD1nwguG5g5g==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-pLteB28BgPr0Vc5wJCuYFc9t9tDlKt5NKon+x0GNuBktAqQeHwR3/Wrunn7DKwKzPxbUYYhLiNiD1nwguG5g5g==, + } + engines: { node: ">=14.0.0" } peerDependencies: better-sqlite3: 8.x || 9.x cassandra-driver: 4.x @@ -1518,55 +2069,88 @@ packages: dev: false /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } dev: true /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } dev: false /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } dev: true /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } dev: true /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + resolution: + { + integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==, + } dev: false /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: ">= 0.8" } dev: false /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } dependencies: once: 1.4.0 dev: true /entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==, + } + engines: { node: ">=0.12" } dev: false /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: ">=0.12" } dev: false /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } dependencies: is-arrayish: 0.2.1 dev: true /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -1610,8 +2194,11 @@ packages: dev: true /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 @@ -1619,8 +2206,11 @@ packages: dev: true /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 @@ -1628,67 +2218,91 @@ packages: dev: true /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, + } + engines: { node: ">=12" } hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 dev: true /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } dev: true /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } dev: false /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } dev: true /esm@3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==, + } + engines: { node: ">=6" } dev: true /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: ">= 0.6" } dev: false /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: ">=0.8.x" } dev: false /express-ws@5.0.2(bufferutil@4.0.8)(express@4.18.2)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==} - engines: {node: '>=4.5.0'} + resolution: + { + integrity: sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==, + } + engines: { node: ">=4.5.0" } peerDependencies: express: ^4.0.0 || ^5.0.0-alpha.1 dependencies: @@ -1700,8 +2314,11 @@ packages: dev: false /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, + } + engines: { node: ">= 0.10.0" } dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -1739,46 +2356,67 @@ packages: dev: false /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } dev: false /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + resolution: + { + integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: true /fast-xml-parser@4.3.2: - resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} + resolution: + { + integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==, + } hasBin: true dependencies: strnum: 1.0.5 dev: false /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } dependencies: reusify: 1.0.4 dev: true /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + resolution: + { + integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, + } dev: false /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } dependencies: to-regex-range: 5.0.1 /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, + } + engines: { node: ">= 0.8" } dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -1792,36 +2430,51 @@ packages: dev: false /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + resolution: + { + integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==, + } dev: false /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==, + } + engines: { node: ">=4.0" } peerDependencies: - debug: '*' + debug: "*" peerDependenciesMeta: debug: optional: true dev: false /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } dependencies: is-callable: 1.2.7 dev: true /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 dev: true /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: ">= 6" } dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -1829,22 +2482,34 @@ packages: dev: false /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: ">= 0.6" } dev: false /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: ">= 0.6" } dev: false /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } dev: true /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + resolution: + { + integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, + } + engines: { node: ">=14.14" } dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -1852,22 +2517,34 @@ packages: dev: false /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } dev: true /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] requiresBuild: true optional: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -1876,22 +2553,34 @@ packages: dev: true /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } dev: true /generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + resolution: + { + integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==, + } dependencies: is-property: 1.0.2 dev: false /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } dev: true /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + resolution: + { + integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, + } dependencies: function-bind: 1.1.2 has-proto: 1.0.1 @@ -1899,28 +2588,40 @@ packages: hasown: 2.0.0 /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + resolution: + { + integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, + } dependencies: resolve-pkg-maps: 1.0.0 dev: true /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } dependencies: is-glob: 4.0.3 /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true dependencies: foreground-child: 3.1.1 @@ -1931,7 +2632,10 @@ packages: dev: true /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1942,66 +2646,105 @@ packages: dev: true /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, + } + engines: { node: ">= 0.4" } dependencies: define-properties: 1.2.1 dev: true /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } dependencies: get-intrinsic: 1.2.2 /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } dev: true /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + resolution: + { + integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, + } dependencies: get-intrinsic: 1.2.2 /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: { node: ">= 0.4" } /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: true /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: { node: ">= 0.4" } dependencies: function-bind: 1.1.2 /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + resolution: + { + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, + } hasBin: true dev: false /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, + } dev: true /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: ">= 0.8" } dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -2011,57 +2754,90 @@ packages: dev: false /humanize-duration@3.30.0: - resolution: {integrity: sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA==} + resolution: + { + integrity: sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA==, + } dev: false /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: ">=0.10.0" } dependencies: safer-buffer: 2.1.2 dev: false /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + } + engines: { node: ">=0.10.0" } dependencies: safer-buffer: 2.1.2 dev: false /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } dev: true /ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + resolution: + { + integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==, + } dev: false /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + resolution: + { + integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, + } dev: true /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } dev: false /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + resolution: + { + integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, + } dev: false /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 hasown: 2.0.0 @@ -2069,12 +2845,18 @@ packages: dev: true /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: ">= 0.10" } dev: false /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + resolution: + { + integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -2082,171 +2864,261 @@ packages: dev: true /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } dev: true /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + resolution: + { + integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, + } dev: false /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } dependencies: has-bigints: 1.0.2 dev: true /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } dependencies: binary-extensions: 2.2.0 dev: false /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } dev: true /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } dependencies: hasown: 2.0.0 dev: true /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } dev: true /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } dependencies: is-extglob: 2.1.1 /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: ">= 0.4" } dev: true /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } /is-property@1.0.2: - resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + resolution: + { + integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==, + } dev: false /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } dependencies: call-bind: 1.0.5 dev: true /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } dev: false /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: true /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, + } + engines: { node: ">= 0.4" } dependencies: which-typed-array: 1.1.13 dev: true /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } dependencies: call-bind: 1.0.5 dev: true /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + resolution: + { + integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, + } dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } dev: true /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } dev: true /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } dev: true /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 dev: true /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true dependencies: argparse: 2.0.1 dev: false /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + resolution: + { + integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, + } dev: true /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } dependencies: universalify: 2.0.1 optionalDependencies: @@ -2254,7 +3126,10 @@ packages: dev: false /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + resolution: + { + integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==, + } dependencies: lie: 3.3.0 pako: 1.0.11 @@ -2263,13 +3138,19 @@ packages: dev: true /kareem@2.5.1: - resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==, + } + engines: { node: ">=12.0.0" } dev: false - /kazagumo.mod@1.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-Qadlfc/S0R+YUu8CMJ+nDO7AFfvsrqDtsuUeV1wJOL3CW+EXArvAnFC+TlgNFxxMQhHnpONbpeLYA8lkxqSofw==} - engines: {node: '>=16.5.0 <=20'} + /kazagumo.mod@1.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.2): + resolution: + { + integrity: sha512-yxKiliw3b+bOMmobiEzfRIwpbWsoWf4TLk8hsbmGEZl8NdTF4ryHkucUQdQGQiDiiURQWQjw4EW4SSzA6LkYQw==, + } + engines: { node: ">=16.5.0 <=20" } dependencies: axios: 1.6.2 events: 3.3.0 @@ -2282,31 +3163,46 @@ packages: dev: false /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + resolution: + { + integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==, + } dev: false /lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + resolution: + { + integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, + } + engines: { node: ">= 0.6.3" } dependencies: readable-stream: 2.3.8 dev: true /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + resolution: + { + integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==, + } dependencies: immediate: 3.0.6 dev: true /linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + resolution: + { + integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==, + } dependencies: uc.micro: 1.0.6 dev: false /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==, + } + engines: { node: ">=4" } dependencies: graceful-fs: 4.2.11 parse-json: 4.0.0 @@ -2315,39 +3211,63 @@ packages: dev: true /lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + resolution: + { + integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, + } dev: true /lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + resolution: + { + integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==, + } dev: true /lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + resolution: + { + integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, + } dev: true /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + resolution: + { + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + } dev: true /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + resolution: + { + integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, + } dev: false /lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + resolution: + { + integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==, + } dev: true /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } dev: false /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} - engines: {node: '>= 12.0.0'} - dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.4 + resolution: + { + integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==, + } + engines: { node: ">= 12.0.0" } + dependencies: + "@colors/colors": 1.6.0 + "@types/triple-beam": 1.3.4 fecha: 4.2.3 ms: 2.1.3 safe-stable-stringify: 2.4.3 @@ -2355,47 +3275,74 @@ packages: dev: false /long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + resolution: + { + integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, + } dev: false /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } dependencies: tslib: 2.6.2 dev: false /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} + resolution: + { + integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==, + } + engines: { node: 14 || >=16.14 } dev: true /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } dependencies: yallist: 4.0.0 dev: false /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: ">=12" } dev: false /lru-cache@8.0.5: - resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} - engines: {node: '>=16.14'} + resolution: + { + integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==, + } + engines: { node: ">=16.14" } dev: false /magic-bytes.js@1.5.0: - resolution: {integrity: sha512-wJkXvutRbNWcc37tt5j1HyOK1nosspdh3dj6LUYYAvF6JYNqs53IfRvK9oEpcwiDA1NdoIi64yAMfdivPeVAyw==} + resolution: + { + integrity: sha512-wJkXvutRbNWcc37tt5j1HyOK1nosspdh3dj6LUYYAvF6JYNqs53IfRvK9oEpcwiDA1NdoIi64yAMfdivPeVAyw==, + } dev: false /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } dev: true /markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} + resolution: + { + integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==, + } hasBin: true dependencies: argparse: 2.0.1 @@ -2406,120 +3353,177 @@ packages: dev: false /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + resolution: + { + integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==, + } dev: false /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: ">= 0.6" } dev: false /memory-pager@1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + resolution: + { + integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==, + } requiresBuild: true dev: false /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==, + } + engines: { node: ">= 0.10.0" } dev: true /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, + } dev: false /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } dev: true /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: ">= 0.6" } dev: false /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } dev: false /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } dependencies: mime-db: 1.52.0 dev: false /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: ">=4" } hasBin: true dev: false /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } dependencies: brace-expansion: 1.1.11 /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: ">=10" } dependencies: brace-expansion: 2.0.1 dev: true /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: true /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dev: true /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } hasBin: true dev: true /moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + resolution: + { + integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==, + } dev: false /mongodb-connection-string-url@2.6.0: - resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} + resolution: + { + integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==, + } dependencies: - '@types/whatwg-url': 8.2.2 + "@types/whatwg-url": 8.2.2 whatwg-url: 11.0.0 dev: false /mongodb@6.2.0: - resolution: {integrity: sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==} - engines: {node: '>=16.20.1'} + resolution: + { + integrity: sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==, + } + engines: { node: ">=16.20.1" } peerDependencies: - '@aws-sdk/credential-providers': ^3.188.0 - '@mongodb-js/zstd': ^1.1.0 + "@aws-sdk/credential-providers": ^3.188.0 + "@mongodb-js/zstd": ^1.1.0 gcp-metadata: ^5.2.0 kerberos: ^2.0.1 - mongodb-client-encryption: '>=6.0.0 <7' + mongodb-client-encryption: ">=6.0.0 <7" snappy: ^7.2.2 socks: ^2.7.1 peerDependenciesMeta: - '@aws-sdk/credential-providers': + "@aws-sdk/credential-providers": optional: true - '@mongodb-js/zstd': + "@mongodb-js/zstd": optional: true gcp-metadata: optional: true @@ -2532,14 +3536,17 @@ packages: socks: optional: true dependencies: - '@mongodb-js/saslprep': 1.1.1 + "@mongodb-js/saslprep": 1.1.1 bson: 6.2.0 mongodb-connection-string-url: 2.6.0 dev: false /mongoose@8.0.0: - resolution: {integrity: sha512-PzwkLgm1Jhj0NQdgGfnFsu0QP9V1sBFgbavEgh/IPAUzKAagzvEhuaBuAQOQGjczVWnpIU9tBqyd02cOTgsPlA==} - engines: {node: '>=16.20.1'} + resolution: + { + integrity: sha512-PzwkLgm1Jhj0NQdgGfnFsu0QP9V1sBFgbavEgh/IPAUzKAagzvEhuaBuAQOQGjczVWnpIU9tBqyd02cOTgsPlA==, + } + engines: { node: ">=16.20.1" } dependencies: bson: 6.2.0 kareem: 2.5.1 @@ -2549,8 +3556,8 @@ packages: ms: 2.1.3 sift: 16.0.1 transitivePeerDependencies: - - '@aws-sdk/credential-providers' - - '@mongodb-js/zstd' + - "@aws-sdk/credential-providers" + - "@mongodb-js/zstd" - gcp-metadata - kerberos - mongodb-client-encryption @@ -2560,13 +3567,19 @@ packages: dev: false /mpath@0.9.0: - resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==, + } + engines: { node: ">=4.0.0" } dev: false /mquery@5.0.0: - resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==, + } + engines: { node: ">=14.0.0" } dependencies: debug: 4.3.4 transitivePeerDependencies: @@ -2574,19 +3587,31 @@ packages: dev: false /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } dev: false /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } dev: false /mysql2@3.6.3: - resolution: {integrity: sha512-qYd/1CDuW1KYZjD4tzg2O8YS3X/UWuGH8ZMHyMeggMTXL3yOdMisbwZ5SNkHzDGlZXKYLAvV8tMrEH+NUMz3fw==} - engines: {node: '>= 8.0'} + resolution: + { + integrity: sha512-qYd/1CDuW1KYZjD4tzg2O8YS3X/UWuGH8ZMHyMeggMTXL3yOdMisbwZ5SNkHzDGlZXKYLAvV8tMrEH+NUMz3fw==, + } + engines: { node: ">= 8.0" } dependencies: denque: 2.1.0 generate-function: 2.3.1 @@ -2599,42 +3624,63 @@ packages: dev: false /named-placeholders@1.1.3: - resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==, + } + engines: { node: ">=12.0.0" } dependencies: lru-cache: 7.18.3 dev: false /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: ">= 0.6" } dev: false /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + resolution: + { + integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, + } dev: true /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } dependencies: lower-case: 2.0.2 tslib: 2.6.2 dev: false /node-bin-setup@1.1.3: - resolution: {integrity: sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg==} + resolution: + { + integrity: sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg==, + } dev: true /node-cron@3.0.3: - resolution: {integrity: sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==, + } + engines: { node: ">=6.0.0" } dependencies: uuid: 8.3.2 dev: false /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -2645,25 +3691,37 @@ packages: dev: false /node-gyp-build@3.7.0: - resolution: {integrity: sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==} + resolution: + { + integrity: sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==, + } hasBin: true dev: false /node-gyp-build@4.6.1: - resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} + resolution: + { + integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==, + } hasBin: true dev: false /node-html-parser@6.1.11: - resolution: {integrity: sha512-FAgwwZ6h0DSDWxfD0Iq1tsDcBCxdJB1nXpLPPxX8YyVWzbfCjKWEzaynF4gZZ/8hziUmp7ZSaKylcn0iKhufUQ==} + resolution: + { + integrity: sha512-FAgwwZ6h0DSDWxfD0Iq1tsDcBCxdJB1nXpLPPxX8YyVWzbfCjKWEzaynF4gZZ/8hziUmp7ZSaKylcn0iKhufUQ==, + } dependencies: css-select: 5.1.0 he: 1.2.0 dev: false /node@21.1.0: - resolution: {integrity: sha512-OQfrQdCuc+dAauWBA/QmmzGpIMzQz1RAj7f0AcWOXl/Tc9W5kv6JEJcR/cHH4ewj8rNWMbrcWAe5a0TIwDHuFw==} - engines: {npm: '>=5.0.0'} + resolution: + { + integrity: sha512-OQfrQdCuc+dAauWBA/QmmzGpIMzQz1RAj7f0AcWOXl/Tc9W5kv6JEJcR/cHH4ewj8rNWMbrcWAe5a0TIwDHuFw==, + } + engines: { npm: ">=5.0.0" } hasBin: true requiresBuild: true dependencies: @@ -2671,8 +3729,11 @@ packages: dev: true /nodemon@3.0.1: - resolution: {integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==, + } + engines: { node: ">=10" } hasBin: true dependencies: chokidar: 3.5.3 @@ -2688,21 +3749,30 @@ packages: dev: false /noms@0.0.0: - resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} + resolution: + { + integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==, + } dependencies: inherits: 2.0.4 readable-stream: 1.0.34 dev: true /nopt@1.0.10: - resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + resolution: + { + integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==, + } hasBin: true dependencies: abbrev: 1.1.1 dev: false /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, + } dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 @@ -2711,12 +3781,18 @@ packages: dev: true /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==, + } + engines: { node: ">= 4" } hasBin: true dependencies: ansi-styles: 3.2.1 @@ -2731,22 +3807,34 @@ packages: dev: true /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + resolution: + { + integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, + } dependencies: boolbase: 1.0.0 dev: false /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, + } /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } dev: true /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -2755,136 +3843,208 @@ packages: dev: true /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: ">= 0.8" } dependencies: ee-first: 1.1.1 dev: false /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } dependencies: wrappy: 1.0.2 dev: true /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + resolution: + { + integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, + } dependencies: fn.name: 1.1.0 dev: false /os@0.1.2: - resolution: {integrity: sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==} + resolution: + { + integrity: sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==, + } dev: false /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + resolution: + { + integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==, + } dev: false /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + resolution: + { + integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, + } dev: true /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==, + } + engines: { node: ">=4" } dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 dev: true /parse-ms@3.0.0: - resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==, + } + engines: { node: ">=12" } dev: false /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: ">= 0.8" } dev: false /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + resolution: + { + integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, + } dependencies: no-case: 3.0.4 tslib: 2.6.2 dev: false /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } dev: true /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, + } + engines: { node: ">=4" } dev: true /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } dev: true /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } dev: true /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: lru-cache: 10.1.0 minipass: 7.0.4 dev: true /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, + } dev: false /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==, + } + engines: { node: ">=4" } dependencies: pify: 3.0.0 dev: true /path@0.12.7: - resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} + resolution: + { + integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==, + } dependencies: process: 0.11.10 util: 0.10.4 dev: false /pg-cloudflare@1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + resolution: + { + integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==, + } requiresBuild: true dev: false optional: true /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + resolution: + { + integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==, + } dev: false /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==, + } + engines: { node: ">=4.0.0" } dev: false /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + resolution: + { + integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==, + } peerDependencies: - pg: '>=8.0' + pg: ">=8.0" dependencies: pg: 8.11.3 dev: false /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + resolution: + { + integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==, + } dev: false /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==, + } + engines: { node: ">=4" } dependencies: pg-int8: 1.0.1 postgres-array: 2.0.0 @@ -2894,10 +4054,13 @@ packages: dev: false /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==, + } + engines: { node: ">= 8.0.0" } peerDependencies: - pg-native: '>=3.0.1' + pg-native: ">=3.0.1" peerDependenciesMeta: pg-native: optional: true @@ -2914,117 +4077,180 @@ packages: dev: false /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + resolution: + { + integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==, + } dependencies: split2: 4.2.0 dev: false /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==, + } + engines: { node: ">=0.10" } hasBin: true dev: true /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, + } + engines: { node: ">=4" } dev: true /plsargs@0.1.6: - resolution: {integrity: sha512-WQz2xmuliJ8HtNsSKhEQf9dA148NZB0uWiCKKRssI24nHERXNU1kbj/wnN4JIoV1pXJe0O4mcteMy6eZczBA3A==} + resolution: + { + integrity: sha512-WQz2xmuliJ8HtNsSKhEQf9dA148NZB0uWiCKKRssI24nHERXNU1kbj/wnN4JIoV1pXJe0O4mcteMy6eZczBA3A==, + } dependencies: camel-case: 4.1.2 tslib: 2.6.2 dev: false /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==, + } + engines: { node: ">=4" } dev: false /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==, + } + engines: { node: ">=0.10.0" } dev: false /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==, + } + engines: { node: ">=0.10.0" } dev: false /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==, + } + engines: { node: ">=0.10.0" } dependencies: xtend: 4.0.2 dev: false /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==, + } + engines: { node: ">=14" } hasBin: true dev: true /pretty-ms@8.0.0: - resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==, + } + engines: { node: ">=14.16" } dependencies: parse-ms: 3.0.0 dev: false /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } dev: true /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: ">= 0.6.0" } dev: false /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, + } + engines: { node: ">= 0.10" } dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 dev: false /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } dev: false /pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + resolution: + { + integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==, + } dev: false /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } dev: false /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: ">=0.6" } dependencies: side-channel: 1.0.4 dev: false /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } dev: true /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: ">= 0.6" } dev: false /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, + } + engines: { node: ">= 0.8" } dependencies: bytes: 3.1.2 http-errors: 2.0.0 @@ -3033,8 +4259,11 @@ packages: dev: false /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==, + } + engines: { node: ">=4" } dependencies: load-json-file: 4.0.0 normalize-package-data: 2.5.0 @@ -3042,7 +4271,10 @@ packages: dev: true /readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + resolution: + { + integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==, + } dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -3051,7 +4283,10 @@ packages: dev: true /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -3063,36 +4298,51 @@ packages: dev: true /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: ">= 6" } dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 /readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolution: + { + integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, + } dependencies: minimatch: 5.1.6 dev: true /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } dependencies: picomatch: 2.3.1 dev: false /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==, + } + engines: { node: ">=6.0.0" } dependencies: minimatch: 3.1.2 dev: false /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3100,8 +4350,11 @@ packages: dev: true /relaxed-json@1.0.3: - resolution: {integrity: sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==, + } + engines: { node: ">= 0.10.0" } hasBin: true dependencies: chalk: 2.4.2 @@ -3109,16 +4362,25 @@ packages: dev: true /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } dev: true /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } dev: true /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true dependencies: is-core-module: 2.13.1 @@ -3127,27 +4389,39 @@ packages: dev: true /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } dev: true /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==, + } + engines: { node: ">=14" } hasBin: true dependencies: glob: 10.3.10 dev: true /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } dependencies: queue-microtask: 1.2.3 dev: true /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, + } + engines: { node: ">=0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -3156,14 +4430,23 @@ packages: dev: true /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } dev: true /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + resolution: + { + integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -3171,30 +4454,45 @@ packages: dev: true /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, + } + engines: { node: ">=10" } dev: false /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } dev: false /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } hasBin: true dev: true /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: ">=10" } hasBin: true dependencies: lru-cache: 6.0.0 dev: false /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, + } + engines: { node: ">= 0.8.0" } dependencies: debug: 2.6.9 depd: 2.0.0 @@ -3214,12 +4512,18 @@ packages: dev: false /seq-queue@0.0.5: - resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + resolution: + { + integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==, + } dev: false /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, + } + engines: { node: ">= 0.8.0" } dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -3230,8 +4534,11 @@ packages: dev: false /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 get-intrinsic: 1.2.2 @@ -3239,8 +4546,11 @@ packages: has-property-descriptors: 1.0.1 /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 @@ -3248,44 +4558,68 @@ packages: dev: true /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + } dev: true /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } dev: false /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, + } + engines: { node: ">=0.10.0" } dependencies: shebang-regex: 1.0.0 dev: true /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, + } + engines: { node: ">=0.10.0" } dev: true /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } dev: true /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, + } dev: true /shoukaku@4.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-+Y94AnUFabCkE8O2Y3MSfnVmiiQ1MMVK/DO962Q23KPTWJkuqs+S/CPRQSOPWqo+ISq7teVxGJsSapwnJOrFgQ==} - engines: {node: '>=18.0.0', npm: '>=7.0.0'} + resolution: + { + integrity: sha512-+Y94AnUFabCkE8O2Y3MSfnVmiiQ1MMVK/DO962Q23KPTWJkuqs+S/CPRQSOPWqo+ISq7teVxGJsSapwnJOrFgQ==, + } + engines: { node: ">=18.0.0", npm: ">=7.0.0" } dependencies: ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.2) transitivePeerDependencies: @@ -3294,106 +4628,160 @@ packages: dev: false /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 object-inspect: 1.13.1 /sift@16.0.1: - resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} + resolution: + { + integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==, + } dev: false /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + resolution: + { + integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + } dependencies: is-arrayish: 0.3.2 dev: false /simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==, + } + engines: { node: ">=10" } dependencies: semver: 7.5.4 dev: false /socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==, + } + engines: { node: ">=10.0.0" } dependencies: - '@socket.io/component-emitter': 3.1.0 + "@socket.io/component-emitter": 3.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } dev: true /sparse-bitfield@3.0.3: - resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + resolution: + { + integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==, + } requiresBuild: true dependencies: memory-pager: 1.5.0 dev: false /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.16 dev: true /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + resolution: + { + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, + } dev: true /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.16 dev: true /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + resolution: + { + integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==, + } dev: true /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: ">= 10.x" } dev: false /sqlstring@2.3.3: - resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==, + } + engines: { node: ">= 0.6" } dev: false /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + resolution: + { + integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, + } dev: false /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: ">= 0.8" } dev: false /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -3401,8 +4789,11 @@ packages: dev: true /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 @@ -3410,8 +4801,11 @@ packages: dev: true /string.prototype.padend@3.1.5: - resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3419,8 +4813,11 @@ packages: dev: true /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3428,7 +4825,10 @@ packages: dev: true /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + resolution: + { + integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, + } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3436,7 +4836,10 @@ packages: dev: true /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + resolution: + { + integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, + } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3444,63 +4847,96 @@ packages: dev: true /string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + resolution: + { + integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, + } dev: true /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } dependencies: safe-buffer: 5.1.2 dev: true /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } dependencies: safe-buffer: 5.2.1 /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } dependencies: ansi-regex: 5.0.1 dev: true /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } dependencies: ansi-regex: 6.0.1 dev: true /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } dev: true /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + resolution: + { + integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, + } dev: false /stuffs@0.1.34: - resolution: {integrity: sha512-exo0ClMNya2XOUfL22c7ssgLH5m371hZ4aMarBFCnvyOznmnRSUMpZILy2Y/h/MeZdUEGnrT0o3lpat/hoUW9g==} + resolution: + { + integrity: sha512-exo0ClMNya2XOUfL22c7ssgLH5m371hZ4aMarBFCnvyOznmnRSUMpZILy2Y/h/MeZdUEGnrT0o3lpat/hoUW9g==, + } dependencies: typescript: 4.9.5 dev: false /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } dependencies: has-flag: 3.0.0 /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } dev: true /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: ">=6" } dependencies: bl: 4.1.0 end-of-stream: 1.4.4 @@ -3510,74 +4946,104 @@ packages: dev: true /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + resolution: + { + integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==, + } dev: false /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + resolution: + { + integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, + } dependencies: readable-stream: 2.3.8 xtend: 4.0.2 dev: true /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } dependencies: is-number: 7.0.0 /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: ">=0.6" } dev: false /touch@3.1.0: - resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} + resolution: + { + integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==, + } hasBin: true dependencies: nopt: 1.0.10 dev: false /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } dev: false /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==, + } + engines: { node: ">=12" } dependencies: punycode: 2.3.1 dev: false /triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + resolution: + { + integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==, + } + engines: { node: ">= 14.0.0" } dev: false /ts-mixer@6.0.3: - resolution: {integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==} + resolution: + { + integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==, + } dev: false /ts-node@10.9.1(@types/node@20.8.10)(typescript@5.2.2): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + resolution: + { + integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, + } hasBin: true peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true - '@swc/wasm': + "@swc/wasm": optional: true dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.8.10 + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node10": 1.0.9 + "@tsconfig/node12": 1.0.11 + "@tsconfig/node14": 1.0.3 + "@tsconfig/node16": 1.0.4 + "@types/node": 20.8.10 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -3590,11 +5056,17 @@ packages: dev: true /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } dev: false /tsx@3.14.0: - resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==} + resolution: + { + integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==, + } hasBin: true dependencies: esbuild: 0.18.20 @@ -3605,16 +5077,22 @@ packages: dev: true /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: ">= 0.6" } dependencies: media-typer: 0.3.0 mime-types: 2.1.35 dev: false /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -3622,8 +5100,11 @@ packages: dev: true /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 for-each: 0.3.3 @@ -3632,8 +5113,11 @@ packages: dev: true /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 @@ -3643,7 +5127,10 @@ packages: dev: true /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + resolution: + { + integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, + } dependencies: call-bind: 1.0.5 for-each: 0.3.3 @@ -3651,23 +5138,35 @@ packages: dev: true /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + resolution: + { + integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, + } + engines: { node: ">=4.2.0" } hasBin: true dev: false /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, + } + engines: { node: ">=14.17" } hasBin: true dev: true /uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + resolution: + { + integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, + } dev: false /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } dependencies: call-bind: 1.0.5 has-bigints: 1.0.2 @@ -3676,106 +5175,166 @@ packages: dev: true /undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + resolution: + { + integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==, + } dev: false /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } /undici@5.27.2: - resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==} - engines: {node: '>=14.0'} + resolution: + { + integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==, + } + engines: { node: ">=14.0" } dependencies: - '@fastify/busboy': 2.0.0 + "@fastify/busboy": 2.0.0 dev: false /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: ">= 10.0.0" } dev: false /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: ">= 0.8" } dev: false /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, + } + engines: { node: ">=8" } dev: true /utf-8-validate@5.0.2: - resolution: {integrity: sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==} + resolution: + { + integrity: sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==, + } requiresBuild: true dependencies: node-gyp-build: 3.7.0 dev: false /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } /util@0.10.4: - resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + resolution: + { + integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, + } dependencies: inherits: 2.0.3 dev: false /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: ">= 0.4.0" } dev: false /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } hasBin: true dev: false /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } dev: true /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: ">= 0.8" } dev: false /voucher-code-generator@1.3.0: - resolution: {integrity: sha512-t4wnI91KC58LtjX2I0rJDhRm1JTXD+G7A+7iqp0sRSgpeJP4eKLexDRDLe2nedR7xFQcVlZudDZRBLrMP5+KTA==} + resolution: + { + integrity: sha512-t4wnI91KC58LtjX2I0rJDhRm1JTXD+G7A+7iqp0sRSgpeJP4eKLexDRDLe2nedR7xFQcVlZudDZRBLrMP5+KTA==, + } dev: false /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } dev: false /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, + } + engines: { node: ">=12" } dev: false /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==, + } + engines: { node: ">=12" } dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 dev: false /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: false /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -3785,8 +5344,11 @@ packages: dev: true /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 @@ -3796,23 +5358,32 @@ packages: dev: true /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, + } hasBin: true dependencies: isexe: 2.0.0 dev: true /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true dependencies: isexe: 2.0.0 dev: true /winston-transport@4.6.0: - resolution: {integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==, + } + engines: { node: ">= 12.0.0" } dependencies: logform: 2.6.0 readable-stream: 3.6.2 @@ -3820,11 +5391,14 @@ packages: dev: false /winston@3.11.0: - resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} - engines: {node: '>= 12.0.0'} - dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.3 + resolution: + { + integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==, + } + engines: { node: ">= 12.0.0" } + dependencies: + "@colors/colors": 1.6.0 + "@dabh/diagnostics": 2.0.3 async: 3.2.5 is-stream: 2.0.1 logform: 2.6.0 @@ -3837,8 +5411,11 @@ packages: dev: false /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -3846,8 +5423,11 @@ packages: dev: true /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 @@ -3855,20 +5435,29 @@ packages: dev: true /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } dev: true /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 dev: false /ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} + resolution: + { + integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, + } + engines: { node: ">=8.3.0" } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -3883,11 +5472,14 @@ packages: dev: false /ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.2): - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==, + } + engines: { node: ">=10.0.0" } peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true @@ -3899,31 +5491,49 @@ packages: dev: false /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: ">=0.4" } /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } dev: true /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } dev: false /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==, + } + engines: { node: ">= 14" } dev: false /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, + } + engines: { node: ">=10" } dev: true /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, + } + engines: { node: ">=10" } dependencies: cliui: 7.0.4 escalade: 3.1.1 @@ -3935,13 +5545,19 @@ packages: dev: true /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, + } + engines: { node: ">=6" } dev: true /zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==, + } + engines: { node: ">= 10" } dependencies: archiver-utils: 3.0.4 compress-commons: 4.1.2 diff --git a/src/commands/prefix/Music/247.ts b/src/commands/prefix/Music/247.ts index 0a6e89f9..c0e250a6 100644 --- a/src/commands/prefix/Music/247.ts +++ b/src/commands/prefix/Music/247.ts @@ -39,7 +39,7 @@ export default class implements PrefixCommand { embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` + `${client.i18n.get(language, "noplayer", "no_voice_247")}` ) .setColor(client.color), ], diff --git a/src/commands/slash/Music/247.ts b/src/commands/slash/Music/247.ts index e1a34aba..3f8c3488 100644 --- a/src/commands/slash/Music/247.ts +++ b/src/commands/slash/Music/247.ts @@ -36,7 +36,7 @@ export default class implements SlashCommand { embeds: [ new EmbedBuilder() .setDescription( - `${client.i18n.get(language, "noplayer", "no_voice")}` + `${client.i18n.get(language, "noplayer", "no_voice_247")}` ) .setColor(client.color), ], diff --git a/src/languages/en/noplayer.yaml b/src/languages/en/noplayer.yaml index 4c91be9b..d200fded 100644 --- a/src/languages/en/noplayer.yaml +++ b/src/languages/en/noplayer.yaml @@ -3,9 +3,7 @@ # No song playing in guild! no_player: "No song/s currently playing within this guild." -no_current_player: "Please use `/join` to use this command." - # Need to join voice & same voice to use command! no_voice: "You need to be in a same/voice channel." - +no_voice_247: "You need to join a voice channel." no_music: "You need to be play a song to use this command" diff --git a/src/languages/th/noplayer.yaml b/src/languages/th/noplayer.yaml index af3218f3..7ed4c68a 100644 --- a/src/languages/th/noplayer.yaml +++ b/src/languages/th/noplayer.yaml @@ -5,5 +5,5 @@ no_player: "ไม่มีเพลงที่กำลังเล่นอ # Need to join voice & same voice to use command! no_voice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน" - +no_voice_247: "คุณต้องเข้าร่วมช่องเสียง" no_music: "คุณต้องเล่นเพลงเพื่อใช้คำสั่งนี้" diff --git a/src/languages/vi/noplayer.yaml b/src/languages/vi/noplayer.yaml index 04b3a2bf..55c4c92e 100644 --- a/src/languages/vi/noplayer.yaml +++ b/src/languages/vi/noplayer.yaml @@ -4,6 +4,6 @@ no_player: "Không có bài hát nào hiện đang phát trong guild này." # Need to join voice & same voice to use command! -no_voice: "Bạn cần ở trong cùng một kênh thoại." +no_voice_247: "Bạn cần tham gia kênh thoại." no_music: "Bạn cần phát một bài hát để sử dụng lệnh này"