Spaces:
Runtime error
Runtime error
lucianotonet
commited on
Commit
·
5e641bf
1
Parent(s):
aa1695a
Test on Hugging Face
Browse files- .gitignore +5 -0
- Dockerfile +23 -0
- Procfile +1 -0
- bot.js +83 -0
- botManager.js +42 -0
- commands/utility/ping.js +10 -0
- commands/utility/reload.js +32 -0
- commands/utility/server.js +11 -0
- commands/utility/user.js +12 -0
- deploy-commands.js +47 -0
- events/interactionsCreate.js +30 -0
- events/messageCreate.js +40 -0
- events/presenceUpdate.js +8 -0
- events/ready.js +9 -0
- events/typingStart.js +10 -0
- index.js +73 -0
- package.json +16 -0
- yarn.lock +719 -0
.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==
|