lucianotonet commited on
Commit
5e641bf
·
1 Parent(s): aa1695a

Test on Hugging Face

Browse files
.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ node_modules/
2
+ npm-debug.log
3
+ yarn-error.log
4
+ .env
5
+ config.json
Dockerfile ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use a imagem oficial do Node.js como base
2
+ FROM node:14
3
+
4
+ # Defina o diretório de trabalho dentro do contêiner
5
+ WORKDIR /usr/src/app
6
+
7
+ # Copie o arquivo package.json e package-lock.json para o diretório de trabalho
8
+ COPY package*.json ./
9
+
10
+ # Instale o Yarn
11
+ RUN npm install -g yarn
12
+
13
+ # Instale as dependências do projeto usando o Yarn
14
+ RUN yarn install
15
+
16
+ # Copie o restante dos arquivos do projeto para o diretório de trabalho
17
+ COPY . .
18
+
19
+ # Exponha a porta que o aplicativo usará
20
+ EXPOSE 7860
21
+
22
+ # Defina o comando para executar o aplicativo
23
+ CMD [ "node", "index.js", "--port", "7860" ]
Procfile ADDED
@@ -0,0 +1 @@
 
 
1
+ web: node index.js
bot.js ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ require('dotenv').config();
2
+ const { Client, Collection, GatewayIntentBits, Partials } = require('discord.js');
3
+ const axios = require('axios');
4
+ const fs = require('node:fs');
5
+ const path = require('node:path');
6
+ const { TOKEN, CLIENT_ID, GUILD_ID, APP_URL } = process.env;
7
+
8
+ class Bot {
9
+ constructor(token) {
10
+ this.client = new Client({
11
+ intents: [
12
+ GatewayIntentBits.Guilds,
13
+ GatewayIntentBits.GuildMessages,
14
+ GatewayIntentBits.GuildMessageTyping,
15
+ GatewayIntentBits.GuildMembers,
16
+ GatewayIntentBits.GuildPresences,
17
+ GatewayIntentBits.GuildVoiceStates,
18
+ GatewayIntentBits.GuildMessageReactions,
19
+ GatewayIntentBits.DirectMessages,
20
+ GatewayIntentBits.DirectMessageReactions,
21
+ GatewayIntentBits.DirectMessageTyping,
22
+ GatewayIntentBits.MessageContent,
23
+ GatewayIntentBits.GuildWebhooks,
24
+ ],
25
+ partials: [
26
+ Partials.Channel,
27
+ Partials.Message,
28
+ Partials.Reaction,
29
+ Partials.User,
30
+ Partials.ThreadMember
31
+ ],
32
+ });
33
+ this.client.cooldowns = new Collection();
34
+ this.client.commands = new Collection();
35
+
36
+ this.token = token ?? TOKEN;
37
+
38
+ // Load commands
39
+ const commandsPath = path.join(__dirname, 'commands');
40
+ const commandFolders = fs.readdirSync(commandsPath);
41
+
42
+ for (const folder of commandFolders) {
43
+ const folderPath = path.join(commandsPath, folder);
44
+ const commandFiles = fs.readdirSync(folderPath).filter(file => file.endsWith('.js'));
45
+ for (const file of commandFiles) {
46
+ const commandPath = path.join(folderPath, file);
47
+ const command = require(commandPath);
48
+ if ('data' in command && 'execute' in command) {
49
+ this.client.commands.set(command.data.name, command);
50
+ } else {
51
+ console.log(`[WARNING] The command at ${commandPath} is missing a required "data" or "execute" property.`);
52
+ }
53
+ }
54
+ }
55
+
56
+ const eventsPath = path.join(__dirname, 'events');
57
+ const eventFiles = fs.readdirSync(eventsPath).filter(file => file.endsWith('.js'));
58
+
59
+ for (const file of eventFiles) {
60
+ const eventPath = path.join(eventsPath, file);
61
+ const event = require(eventPath);
62
+ if (event.once) {
63
+ this.client.once(event.name, (...args) => event.execute(...args));
64
+ } else {
65
+ this.client.on(event.name, (...args) => event.execute(...args));
66
+ }
67
+ }
68
+ }
69
+
70
+ start() {
71
+ this.client.login(this.token);
72
+ }
73
+
74
+ stop() {
75
+ this.client.destroy();
76
+ }
77
+
78
+ getStatus() {
79
+ return this.client.isReady() ? 'online' : 'offline';
80
+ }
81
+ }
82
+
83
+ module.exports = Bot;
botManager.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ const Bot = require('./bot');
3
+
4
+ class BotManager {
5
+ constructor() {
6
+ this.bots = new Map();
7
+ }
8
+
9
+ startBot(token) {
10
+ if (this.bots.has(token)) {
11
+ console.log('Bot already running');
12
+ return 'Bot already running';
13
+ }
14
+
15
+ const bot = new Bot(token);
16
+ bot.start();
17
+ this.bots.set(token, bot);
18
+ return 'Bot started';
19
+ }
20
+
21
+ stopBot(token) {
22
+ if (!this.bots.has(token)) {
23
+ console.log('Bot not found');
24
+ return 'Bot not found';
25
+ }
26
+
27
+ const bot = this.bots.get(token);
28
+ bot.stop();
29
+ this.bots.delete(token);
30
+ return 'Bot stopped';
31
+ }
32
+
33
+ getBotsStatus() {
34
+ const status = {};
35
+ for (const [token, bot] of this.bots) {
36
+ status[token] = bot.getStatus();
37
+ }
38
+ return status;
39
+ }
40
+ }
41
+
42
+ module.exports = BotManager;
commands/utility/ping.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ const { SlashCommandBuilder } = require('discord.js');
2
+
3
+ module.exports = {
4
+ data: new SlashCommandBuilder()
5
+ .setName('ping')
6
+ .setDescription('Replies with Pong!'),
7
+ async execute(interaction) {
8
+ await interaction.reply('Pong!');
9
+ },
10
+ };
commands/utility/reload.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { SlashCommandBuilder } = require('discord.js');
2
+
3
+ module.exports = {
4
+ category: 'utility',
5
+ data: new SlashCommandBuilder()
6
+ .setName('reload')
7
+ .setDescription('Reloads a command.')
8
+ .addStringOption(option =>
9
+ option.setName('command')
10
+ .setDescription('The command to reload.')
11
+ .setRequired(true)),
12
+ async execute(interaction) {
13
+ const commandName = interaction.options.getString('command', true).toLowerCase();
14
+ const command = interaction.client.commands.get(commandName);
15
+
16
+ if (!command) {
17
+ return interaction.reply(`There is no command with name \`${commandName}\`!`);
18
+ }
19
+
20
+ delete require.cache[require.resolve(`../${command.category}/${command.data.name}.js`)];
21
+
22
+ try {
23
+ interaction.client.commands.delete(command.data.name);
24
+ const newCommand = require(`../${command.category}/${command.data.name}.js`);
25
+ interaction.client.commands.set(newCommand.data.name, newCommand);
26
+ await interaction.reply(`Command \`${newCommand.data.name}\` was reloaded!`);
27
+ } catch (error) {
28
+ console.error(error);
29
+ await interaction.reply(`There was an error while reloading a command \`${command.data.name}\`:\n\`${error.message}\``);
30
+ }
31
+ },
32
+ };
commands/utility/server.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { SlashCommandBuilder } = require('discord.js');
2
+
3
+ module.exports = {
4
+ data: new SlashCommandBuilder()
5
+ .setName('server')
6
+ .setDescription('Provides information about the server.'),
7
+ async execute(interaction) {
8
+ // interaction.guild is the object representing the Guild in which the command was run
9
+ await interaction.reply(`This server is ${interaction.guild.name} and has ${interaction.guild.memberCount} members.`);
10
+ },
11
+ };
commands/utility/user.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { SlashCommandBuilder } = require('discord.js');
2
+
3
+ module.exports = {
4
+ data: new SlashCommandBuilder()
5
+ .setName('user')
6
+ .setDescription('Provides information about the user.'),
7
+ async execute(interaction) {
8
+ // interaction.user is the object representing the User who ran the command
9
+ // interaction.member is the GuildMember object, which represents the user in the specific guild
10
+ await interaction.reply(`This command was run by ${interaction.user.username}, who joined on ${interaction.member.joinedAt}.`);
11
+ },
12
+ };
deploy-commands.js ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ require('dotenv').config();
2
+ const { REST, Routes } = require('discord.js');
3
+ const { CLIENT_ID, GUILD_ID, TOKEN } = process.env;
4
+ const fs = require('node:fs');
5
+ const path = require('node:path');
6
+
7
+ const commands = [];
8
+ // Grab all the command folders from the commands directory you created earlier
9
+ const foldersPath = path.join(__dirname, 'commands');
10
+ const commandFolders = fs.readdirSync(foldersPath);
11
+
12
+ for (const folder of commandFolders) {
13
+ // Grab all the command files from the commands directory you created earlier
14
+ const commandsPath = path.join(foldersPath, folder);
15
+ const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
16
+ // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
17
+ for (const file of commandFiles) {
18
+ const filePath = path.join(commandsPath, file);
19
+ const command = require(filePath);
20
+ if ('data' in command && 'execute' in command) {
21
+ commands.push(command.data.toJSON());
22
+ } else {
23
+ console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
24
+ }
25
+ }
26
+ }
27
+
28
+ // Construct and prepare an instance of the REST module
29
+ const rest = new REST().setToken(TOKEN);
30
+
31
+ // and deploy your commands!
32
+ (async () => {
33
+ try {
34
+ console.log(`Started refreshing ${commands.length} application (/) commands.`);
35
+
36
+ // The put method is used to fully refresh all commands in the guild with the current set
37
+ const data = await rest.put(
38
+ Routes.applicationGuildCommands(CLIENT_ID, GUILD_ID),
39
+ { body: commands },
40
+ );
41
+
42
+ console.log(`Successfully reloaded ${data.length} application (/) commands.`);
43
+ } catch (error) {
44
+ // And of course, make sure you catch and log any errors!
45
+ console.error(error);
46
+ }
47
+ })();
events/interactionsCreate.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Events } = require('discord.js');
2
+
3
+ module.exports = {
4
+ name: Events.InteractionCreate,
5
+ async execute(interaction) {
6
+ console.log('interaction', interaction);
7
+
8
+ if (!interaction.isChatInputCommand()) return;
9
+
10
+ const command = interaction.client.commands.get(interaction.commandName);
11
+
12
+ if (!command) {
13
+ console.error(`No command matching ${interaction.commandName} was found.`);
14
+ return;
15
+ }
16
+
17
+ try {
18
+ await command.execute(interaction);
19
+ } catch (error) {
20
+ console.error(error);
21
+ if (interaction.replied || interaction.deferred) {
22
+ await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
23
+ } else {
24
+ if (interaction.channel.type !== 'DM') {
25
+ await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
26
+ }
27
+ }
28
+ }
29
+ },
30
+ };
events/messageCreate.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Events } = require('discord.js');
2
+ const axios = require('axios');
3
+ const https = require('https');
4
+ const { APP_URL } = process.env;
5
+
6
+ module.exports = {
7
+ name: Events.MessageCreate,
8
+ execute(message) {
9
+ console.log(`Message received from ${message.author.globalName ?? message.author.username}: ${message.content}`);
10
+ if (message.author.bot) return;
11
+ if (!message.system) {
12
+
13
+ // Send the message to the Laravel server
14
+ axios({
15
+ method: 'post',
16
+ url: `${APP_URL}/api/chat`,
17
+ data: {
18
+ message
19
+ },
20
+ httpsAgent: new https.Agent({
21
+ rejectUnauthorized: false
22
+ }),
23
+ headers: {
24
+ 'Authorization': `Bearer ${process.env.API_TOKEN}`
25
+ }
26
+ })
27
+ .then(function (response) {
28
+ if (!response.data.message) return;
29
+
30
+ message.channel.send(response.data.message);
31
+ })
32
+ .catch(function (error) {
33
+ message.channel.send('Deu ruim aqui, mas já estamos resolvendo!');
34
+ });
35
+
36
+ // message.reply(`Então tá ${message.author.globalName ?? message.author.username}`);
37
+ // message.channel.send(`Se tu diz que é ${message.content} então é ${message.content}`);
38
+ }
39
+ }
40
+ }
events/presenceUpdate.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ const { Events } = require('discord.js');
2
+
3
+ module.exports = {
4
+ name: Events.presenceUpdate,
5
+ execute(oldPresence, newPresence) {
6
+ console.log(`User ${newPresence.userID} has updated their presence.`);
7
+ }
8
+ }
events/ready.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ const { Events } = require('discord.js');
2
+
3
+ module.exports = {
4
+ name: Events.ClientReady,
5
+ once: true,
6
+ execute(client) {
7
+ console.log(`Ready! Logged in as ${client.user.tag}`);
8
+ },
9
+ };
events/typingStart.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Events } = require('discord.js');
2
+
3
+ module.exports = {
4
+ name: Events.TypingStart,
5
+ execute({ channel, user }) {
6
+ let location = channel.isThread() ? `thread ${channel.name} in ${channel.parent.name} channel` : `${channel.name} channel`;
7
+ console.log(`${user.username} is typing in the ${location}...`);
8
+ }
9
+ }
10
+
index.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ require('dotenv').config();
2
+ const express = require('express');
3
+ const bodyParser = require('body-parser');
4
+ const BotManager = require('./botManager');
5
+ const axios = require('axios');
6
+ const https = require('https');
7
+
8
+ const { APP_URL } = process.env;
9
+
10
+ // Create an express app
11
+ const app = express();
12
+ app.use(bodyParser.json());
13
+
14
+ const port = process.env.PORT || 7860;
15
+ const botManager = new BotManager();
16
+
17
+ // API status
18
+ app.get('/api', (req, res) => {
19
+ res.json({ status: 'ok', message: 'Discord Bot Manager is running' });
20
+ });
21
+
22
+ // Bots status
23
+ app.get('/api/status', (req, res) => {
24
+ const status = botManager.getBotsStatus();
25
+ res.json(status);
26
+ });
27
+
28
+ // Endpoint para iniciar um bot
29
+ app.post('/api/start', (req, res) => {
30
+ const { token } = req.body;
31
+ if (!token) return res.status(400).json({ error: 'Token is required' });
32
+
33
+ const response = botManager.startBot(token);
34
+ res.json({ message: response });
35
+ });
36
+
37
+ // Endpoint para parar um bot
38
+ app.post('/api/stop', (req, res) => {
39
+ const { token } = req.body;
40
+ if (!token) return res.status(400).json({ error: 'Token is required' });
41
+
42
+ const response = botManager.stopBot(token);
43
+ res.json({ message: response });
44
+ });
45
+
46
+ // Fetch active bots and start them
47
+ axios.get(`${APP_URL}/api/assistants/active`, {
48
+ headers: {
49
+ 'Content-Type': 'application/json',
50
+ 'Accept': 'application/json'
51
+ },
52
+ httpsAgent: new https.Agent({
53
+ rejectUnauthorized: false
54
+ }),
55
+ headers: {
56
+ 'Authorization': `Bearer ${process.env.API_TOKEN}`
57
+ }
58
+ })
59
+ .then(response => {
60
+ const bots = response.data;
61
+ bots.forEach(bot => {
62
+ botManager.startBot(bot.discord_bot_token);
63
+ });
64
+ })
65
+ .catch(error => {
66
+ console.error('Error fetching active bots:', error.message);
67
+ });
68
+
69
+ // Start the server
70
+ app.listen(port, () => {
71
+ console.log(`Server running on port ${port}`);
72
+ });
73
+
package.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "discord-bot-manager",
3
+ "version": "1.0.0",
4
+ "description": "A Node.js project to manage multiple Discord bot instances.",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "start": "node index.js"
8
+ },
9
+ "dependencies": {
10
+ "axios": "^1.6.2",
11
+ "body-parser": "^1.19.0",
12
+ "discord.js": "^14.14.1",
13
+ "dotenv": "^16.3.1",
14
+ "express": "^4.17.1"
15
+ }
16
+ }
yarn.lock ADDED
@@ -0,0 +1,719 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@discordjs/builders@^1.7.0":
6
+ version "1.7.0"
7
+ resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
8
+ integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
9
+ dependencies:
10
+ "@discordjs/formatters" "^0.3.3"
11
+ "@discordjs/util" "^1.0.2"
12
+ "@sapphire/shapeshift" "^3.9.3"
13
+ discord-api-types "0.37.61"
14
+ fast-deep-equal "^3.1.3"
15
+ ts-mixer "^6.0.3"
16
+ tslib "^2.6.2"
17
+
18
+ "@discordjs/[email protected]":
19
+ version "1.5.3"
20
+ resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
21
+ integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
22
+
23
+ "@discordjs/collection@^2.0.0":
24
+ version "2.0.0"
25
+ resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-2.0.0.tgz#409b80c74eb8486cc4ee6a9b83426aaff1380f8c"
26
+ integrity sha512-YTWIXLrf5FsrLMycpMM9Q6vnZoR/lN2AWX23/Cuo8uOOtS8eHB2dyQaaGnaF8aZPYnttf2bkLMcXn/j6JUOi3w==
27
+
28
+ "@discordjs/formatters@^0.3.3":
29
+ version "0.3.3"
30
+ resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749"
31
+ integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==
32
+ dependencies:
33
+ discord-api-types "0.37.61"
34
+
35
+ "@discordjs/rest@^2.1.0":
36
+ version "2.2.0"
37
+ resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-2.2.0.tgz#f4ec00d3faff965c00a879b7e87bb4b6f4446966"
38
+ integrity sha512-nXm9wT8oqrYFRMEqTXQx9DUTeEtXUDMmnUKIhZn6O2EeDY9VCdwj23XCPq7fkqMPKdF7ldAfeVKyxxFdbZl59A==
39
+ dependencies:
40
+ "@discordjs/collection" "^2.0.0"
41
+ "@discordjs/util" "^1.0.2"
42
+ "@sapphire/async-queue" "^1.5.0"
43
+ "@sapphire/snowflake" "^3.5.1"
44
+ "@vladfrangu/async_event_emitter" "^2.2.2"
45
+ discord-api-types "0.37.61"
46
+ magic-bytes.js "^1.5.0"
47
+ tslib "^2.6.2"
48
+ undici "5.27.2"
49
+
50
+ "@discordjs/util@^1.0.2":
51
+ version "1.0.2"
52
+ resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0"
53
+ integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==
54
+
55
+ "@discordjs/ws@^1.0.2":
56
+ version "1.0.2"
57
+ resolved "https://registry.yarnpkg.com/@discordjs/ws/-/ws-1.0.2.tgz#3933b12d4686aabf6a95dfe5fb6e744342a661d1"
58
+ integrity sha512-+XI82Rm2hKnFwAySXEep4A7Kfoowt6weO6381jgW+wVdTpMS/56qCvoXyFRY0slcv7c/U8My2PwIB2/wEaAh7Q==
59
+ dependencies:
60
+ "@discordjs/collection" "^2.0.0"
61
+ "@discordjs/rest" "^2.1.0"
62
+ "@discordjs/util" "^1.0.2"
63
+ "@sapphire/async-queue" "^1.5.0"
64
+ "@types/ws" "^8.5.9"
65
+ "@vladfrangu/async_event_emitter" "^2.2.2"
66
+ discord-api-types "0.37.61"
67
+ tslib "^2.6.2"
68
+ ws "^8.14.2"
69
+
70
+ "@fastify/busboy@^2.0.0":
71
+ version "2.1.0"
72
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff"
73
+ integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==
74
+
75
+ "@sapphire/async-queue@^1.5.0":
76
+ version "1.5.1"
77
+ resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.1.tgz#f72f8f0dea05e83ba830387567dd6ef8a996537a"
78
+ integrity sha512-1RdpsmDQR/aWfp8oJzPtn4dNQrbpqSL5PIA0uAB/XwerPXUf994Ug1au1e7uGcD7ei8/F63UDjr5GWps1g/HxQ==
79
+
80
+ "@sapphire/shapeshift@^3.9.3":
81
+ version "3.9.5"
82
+ resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.5.tgz#2abe8a6626a6e73a80e249d306e58150c53d4c05"
83
+ integrity sha512-AGdHe+51gF7D3W8hBfuSFLBocURDCXVQczScTHXDS3RpNjNgrktIx/amlz5y8nHhm8SAdFt/X8EF8ZSfjJ0tnA==
84
+ dependencies:
85
+ fast-deep-equal "^3.1.3"
86
+ lodash "^4.17.21"
87
+
88
+ "@sapphire/[email protected]":
89
+ version "3.5.1"
90
+ resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.1.tgz#254521c188b49e8b2d4cc048b475fb2b38737fec"
91
+ integrity sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==
92
+
93
+ "@sapphire/snowflake@^3.5.1":
94
+ version "3.5.2"
95
+ resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.2.tgz#ca3d11a0011563c90b103f8ef398f2dea3e7beb4"
96
+ integrity sha512-FTm9RdyELF21PQN5dS/HLRs90XqWclHa+p0gkonc+BA2X2QKfFySHSjUbO65rmArd/ghR9Ahj2fMfedTZEqzOw==
97
+
98
+ "@types/node@*":
99
+ version "20.10.5"
100
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2"
101
+ integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==
102
+ dependencies:
103
+ undici-types "~5.26.4"
104
+
105
+ "@types/[email protected]":
106
+ version "8.5.9"
107
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c"
108
+ integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==
109
+ dependencies:
110
+ "@types/node" "*"
111
+
112
+ "@types/ws@^8.5.9":
113
+ version "8.5.10"
114
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787"
115
+ integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==
116
+ dependencies:
117
+ "@types/node" "*"
118
+
119
+ "@vladfrangu/async_event_emitter@^2.2.2":
120
+ version "2.2.4"
121
+ resolved "https://registry.yarnpkg.com/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.4.tgz#d3537432c6db6444680a596271dff8ea407343b3"
122
+ integrity sha512-ButUPz9E9cXMLgvAW8aLAKKJJsPu1dY1/l/E8xzLFuysowXygs6GBcyunK9rnGC4zTsnIc2mQo71rGw9U+Ykug==
123
+
124
+ accepts@~1.3.8:
125
+ version "1.3.8"
126
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
127
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
128
+ dependencies:
129
+ mime-types "~2.1.34"
130
+ negotiator "0.6.3"
131
+
132
133
+ version "1.1.1"
134
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
135
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
136
+
137
+ asynckit@^0.4.0:
138
+ version "0.4.0"
139
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
140
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
141
+
142
+ axios@^1.6.2:
143
+ version "1.6.2"
144
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2"
145
+ integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
146
+ dependencies:
147
+ follow-redirects "^1.15.0"
148
+ form-data "^4.0.0"
149
+ proxy-from-env "^1.1.0"
150
+
151
152
+ version "1.20.1"
153
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
154
+ integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
155
+ dependencies:
156
+ bytes "3.1.2"
157
+ content-type "~1.0.4"
158
+ debug "2.6.9"
159
+ depd "2.0.0"
160
+ destroy "1.2.0"
161
+ http-errors "2.0.0"
162
+ iconv-lite "0.4.24"
163
+ on-finished "2.4.1"
164
+ qs "6.11.0"
165
+ raw-body "2.5.1"
166
+ type-is "~1.6.18"
167
+ unpipe "1.0.0"
168
+
169
+ body-parser@^1.19.0:
170
+ version "1.20.2"
171
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
172
+ integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
173
+ dependencies:
174
+ bytes "3.1.2"
175
+ content-type "~1.0.5"
176
+ debug "2.6.9"
177
+ depd "2.0.0"
178
+ destroy "1.2.0"
179
+ http-errors "2.0.0"
180
+ iconv-lite "0.4.24"
181
+ on-finished "2.4.1"
182
+ qs "6.11.0"
183
+ raw-body "2.5.2"
184
+ type-is "~1.6.18"
185
+ unpipe "1.0.0"
186
+
187
188
+ version "3.1.2"
189
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
190
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
191
+
192
+ call-bind@^1.0.0:
193
+ version "1.0.5"
194
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
195
+ integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
196
+ dependencies:
197
+ function-bind "^1.1.2"
198
+ get-intrinsic "^1.2.1"
199
+ set-function-length "^1.1.1"
200
+
201
+ combined-stream@^1.0.8:
202
+ version "1.0.8"
203
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
204
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
205
+ dependencies:
206
+ delayed-stream "~1.0.0"
207
+
208
209
+ version "0.5.4"
210
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
211
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
212
+ dependencies:
213
+ safe-buffer "5.2.1"
214
+
215
+ content-type@~1.0.4, content-type@~1.0.5:
216
+ version "1.0.5"
217
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
218
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
219
+
220
221
+ version "1.0.6"
222
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
223
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
224
+
225
226
+ version "0.5.0"
227
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
228
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
229
+
230
231
+ version "2.6.9"
232
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
233
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
234
+ dependencies:
235
+ ms "2.0.0"
236
+
237
+ define-data-property@^1.1.1:
238
+ version "1.1.1"
239
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
240
+ integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
241
+ dependencies:
242
+ get-intrinsic "^1.2.1"
243
+ gopd "^1.0.1"
244
+ has-property-descriptors "^1.0.0"
245
+
246
+ delayed-stream@~1.0.0:
247
+ version "1.0.0"
248
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
249
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
250
+
251
252
+ version "2.0.0"
253
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
254
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
255
+
256
257
+ version "1.2.0"
258
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
259
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
260
+
261
262
+ version "0.37.61"
263
+ resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b"
264
+ integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==
265
+
266
+ discord.js@^14.14.1:
267
+ version "14.14.1"
268
+ resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.14.1.tgz#9a2bea23bba13819705ab87612837610abce9ee3"
269
+ integrity sha512-/hUVzkIerxKHyRKopJy5xejp4MYKDPTszAnpYxzVVv4qJYf+Tkt+jnT2N29PIPschicaEEpXwF2ARrTYHYwQ5w==
270
+ dependencies:
271
+ "@discordjs/builders" "^1.7.0"
272
+ "@discordjs/collection" "1.5.3"
273
+ "@discordjs/formatters" "^0.3.3"
274
+ "@discordjs/rest" "^2.1.0"
275
+ "@discordjs/util" "^1.0.2"
276
+ "@discordjs/ws" "^1.0.2"
277
+ "@sapphire/snowflake" "3.5.1"
278
+ "@types/ws" "8.5.9"
279
+ discord-api-types "0.37.61"
280
+ fast-deep-equal "3.1.3"
281
+ lodash.snakecase "4.1.1"
282
+ tslib "2.6.2"
283
+ undici "5.27.2"
284
+ ws "8.14.2"
285
+
286
+ dotenv@^16.3.1:
287
+ version "16.3.1"
288
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
289
+ integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
290
+
291
292
+ version "1.1.1"
293
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
294
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
295
+
296
+ encodeurl@~1.0.2:
297
+ version "1.0.2"
298
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
299
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
300
+
301
+ escape-html@~1.0.3:
302
+ version "1.0.3"
303
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
304
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
305
+
306
+ etag@~1.8.1:
307
+ version "1.8.1"
308
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
309
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
310
+
311
+ express@^4.17.1:
312
+ version "4.18.2"
313
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
314
+ integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
315
+ dependencies:
316
+ accepts "~1.3.8"
317
+ array-flatten "1.1.1"
318
+ body-parser "1.20.1"
319
+ content-disposition "0.5.4"
320
+ content-type "~1.0.4"
321
+ cookie "0.5.0"
322
+ cookie-signature "1.0.6"
323
+ debug "2.6.9"
324
+ depd "2.0.0"
325
+ encodeurl "~1.0.2"
326
+ escape-html "~1.0.3"
327
+ etag "~1.8.1"
328
+ finalhandler "1.2.0"
329
+ fresh "0.5.2"
330
+ http-errors "2.0.0"
331
+ merge-descriptors "1.0.1"
332
+ methods "~1.1.2"
333
+ on-finished "2.4.1"
334
+ parseurl "~1.3.3"
335
+ path-to-regexp "0.1.7"
336
+ proxy-addr "~2.0.7"
337
+ qs "6.11.0"
338
+ range-parser "~1.2.1"
339
+ safe-buffer "5.2.1"
340
+ send "0.18.0"
341
+ serve-static "1.15.0"
342
+ setprototypeof "1.2.0"
343
+ statuses "2.0.1"
344
+ type-is "~1.6.18"
345
+ utils-merge "1.0.1"
346
+ vary "~1.1.2"
347
+
348
+ [email protected], fast-deep-equal@^3.1.3:
349
+ version "3.1.3"
350
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
351
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
352
+
353
354
+ version "1.2.0"
355
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
356
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
357
+ dependencies:
358
+ debug "2.6.9"
359
+ encodeurl "~1.0.2"
360
+ escape-html "~1.0.3"
361
+ on-finished "2.4.1"
362
+ parseurl "~1.3.3"
363
+ statuses "2.0.1"
364
+ unpipe "~1.0.0"
365
+
366
+ follow-redirects@^1.15.0:
367
+ version "1.15.3"
368
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
369
+ integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
370
+
371
+ form-data@^4.0.0:
372
+ version "4.0.0"
373
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
374
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
375
+ dependencies:
376
+ asynckit "^0.4.0"
377
+ combined-stream "^1.0.8"
378
+ mime-types "^2.1.12"
379
+
380
381
+ version "0.2.0"
382
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
383
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
384
+
385
386
+ version "0.5.2"
387
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
388
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
389
+
390
+ function-bind@^1.1.2:
391
+ version "1.1.2"
392
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
393
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
394
+
395
+ get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
396
+ version "1.2.2"
397
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
398
+ integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
399
+ dependencies:
400
+ function-bind "^1.1.2"
401
+ has-proto "^1.0.1"
402
+ has-symbols "^1.0.3"
403
+ hasown "^2.0.0"
404
+
405
+ gopd@^1.0.1:
406
+ version "1.0.1"
407
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
408
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
409
+ dependencies:
410
+ get-intrinsic "^1.1.3"
411
+
412
+ has-property-descriptors@^1.0.0:
413
+ version "1.0.1"
414
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
415
+ integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
416
+ dependencies:
417
+ get-intrinsic "^1.2.2"
418
+
419
+ has-proto@^1.0.1:
420
+ version "1.0.1"
421
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
422
+ integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
423
+
424
+ has-symbols@^1.0.3:
425
+ version "1.0.3"
426
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
427
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
428
+
429
+ hasown@^2.0.0:
430
+ version "2.0.0"
431
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
432
+ integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
433
+ dependencies:
434
+ function-bind "^1.1.2"
435
+
436
437
+ version "2.0.0"
438
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
439
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
440
+ dependencies:
441
+ depd "2.0.0"
442
+ inherits "2.0.4"
443
+ setprototypeof "1.2.0"
444
+ statuses "2.0.1"
445
+ toidentifier "1.0.1"
446
+
447
448
+ version "0.4.24"
449
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
450
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
451
+ dependencies:
452
+ safer-buffer ">= 2.1.2 < 3"
453
+
454
455
+ version "2.0.4"
456
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
457
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
458
+
459
460
+ version "1.9.1"
461
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
462
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
463
+
464
465
+ version "4.1.1"
466
+ resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
467
+ integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==
468
+
469
+ lodash@^4.17.21:
470
+ version "4.17.21"
471
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
472
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
473
+
474
+ magic-bytes.js@^1.5.0:
475
+ version "1.7.0"
476
+ resolved "https://registry.yarnpkg.com/magic-bytes.js/-/magic-bytes.js-1.7.0.tgz#29ca1a137b508fa656ca35fe79683bf10246e0d5"
477
+ integrity sha512-YzVU2+/hrjwx8xcgAw+ffNq3jkactpj+f1iSL4LonrFKhvnwDzHSqtFdk/MMRP53y9ScouJ7cKEnqYsJwsHoYA==
478
+
479
480
+ version "0.3.0"
481
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
482
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
483
+
484
485
+ version "1.0.1"
486
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
487
+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
488
+
489
+ methods@~1.1.2:
490
+ version "1.1.2"
491
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
492
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
493
+
494
495
+ version "1.52.0"
496
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
497
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
498
+
499
+ mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
500
+ version "2.1.35"
501
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
502
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
503
+ dependencies:
504
+ mime-db "1.52.0"
505
+
506
507
+ version "1.6.0"
508
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
509
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
510
+
511
512
+ version "2.0.0"
513
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
514
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
515
+
516
517
+ version "2.1.3"
518
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
519
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
520
+
521
522
+ version "0.6.3"
523
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
524
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
525
+
526
+ object-inspect@^1.9.0:
527
+ version "1.13.1"
528
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
529
+ integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
530
+
531
532
+ version "2.4.1"
533
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
534
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
535
+ dependencies:
536
+ ee-first "1.1.1"
537
+
538
+ parseurl@~1.3.3:
539
+ version "1.3.3"
540
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
541
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
542
+
543
544
+ version "0.1.7"
545
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
546
+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
547
+
548
+ proxy-addr@~2.0.7:
549
+ version "2.0.7"
550
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
551
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
552
+ dependencies:
553
+ forwarded "0.2.0"
554
+ ipaddr.js "1.9.1"
555
+
556
+ proxy-from-env@^1.1.0:
557
+ version "1.1.0"
558
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
559
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
560
+
561
562
+ version "6.11.0"
563
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
564
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
565
+ dependencies:
566
+ side-channel "^1.0.4"
567
+
568
+ range-parser@~1.2.1:
569
+ version "1.2.1"
570
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
571
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
572
+
573
574
+ version "2.5.1"
575
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
576
+ integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
577
+ dependencies:
578
+ bytes "3.1.2"
579
+ http-errors "2.0.0"
580
+ iconv-lite "0.4.24"
581
+ unpipe "1.0.0"
582
+
583
584
+ version "2.5.2"
585
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
586
+ integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
587
+ dependencies:
588
+ bytes "3.1.2"
589
+ http-errors "2.0.0"
590
+ iconv-lite "0.4.24"
591
+ unpipe "1.0.0"
592
+
593
594
+ version "5.2.1"
595
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
596
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
597
+
598
+ "safer-buffer@>= 2.1.2 < 3":
599
+ version "2.1.2"
600
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
601
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
602
+
603
604
+ version "0.18.0"
605
+ resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
606
+ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
607
+ dependencies:
608
+ debug "2.6.9"
609
+ depd "2.0.0"
610
+ destroy "1.2.0"
611
+ encodeurl "~1.0.2"
612
+ escape-html "~1.0.3"
613
+ etag "~1.8.1"
614
+ fresh "0.5.2"
615
+ http-errors "2.0.0"
616
+ mime "1.6.0"
617
+ ms "2.1.3"
618
+ on-finished "2.4.1"
619
+ range-parser "~1.2.1"
620
+ statuses "2.0.1"
621
+
622
623
+ version "1.15.0"
624
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
625
+ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
626
+ dependencies:
627
+ encodeurl "~1.0.2"
628
+ escape-html "~1.0.3"
629
+ parseurl "~1.3.3"
630
+ send "0.18.0"
631
+
632
+ set-function-length@^1.1.1:
633
+ version "1.1.1"
634
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
635
+ integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
636
+ dependencies:
637
+ define-data-property "^1.1.1"
638
+ get-intrinsic "^1.2.1"
639
+ gopd "^1.0.1"
640
+ has-property-descriptors "^1.0.0"
641
+
642
643
+ version "1.2.0"
644
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
645
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
646
+
647
+ side-channel@^1.0.4:
648
+ version "1.0.4"
649
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
650
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
651
+ dependencies:
652
+ call-bind "^1.0.0"
653
+ get-intrinsic "^1.0.2"
654
+ object-inspect "^1.9.0"
655
+
656
657
+ version "2.0.1"
658
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
659
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
660
+
661
662
+ version "1.0.1"
663
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
664
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
665
+
666
+ ts-mixer@^6.0.3:
667
+ version "6.0.3"
668
+ resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.3.tgz#69bd50f406ff39daa369885b16c77a6194c7cae6"
669
+ integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==
670
+
671
+ [email protected], tslib@^2.6.2:
672
+ version "2.6.2"
673
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
674
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
675
+
676
+ type-is@~1.6.18:
677
+ version "1.6.18"
678
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
679
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
680
+ dependencies:
681
+ media-typer "0.3.0"
682
+ mime-types "~2.1.24"
683
+
684
+ undici-types@~5.26.4:
685
+ version "5.26.5"
686
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
687
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
688
+
689
690
+ version "5.27.2"
691
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411"
692
+ integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==
693
+ dependencies:
694
+ "@fastify/busboy" "^2.0.0"
695
+
696
+ [email protected], unpipe@~1.0.0:
697
+ version "1.0.0"
698
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
699
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
700
+
701
702
+ version "1.0.1"
703
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
704
+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
705
+
706
+ vary@~1.1.2:
707
+ version "1.1.2"
708
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
709
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
710
+
711
712
+ version "8.14.2"
713
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
714
+ integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
715
+
716
+ ws@^8.14.2:
717
+ version "8.15.1"
718
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997"
719
+ integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==