A Discord Bot connected to your Pterodactyl API.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat!: move from commonjs to module

authored by

cosmeak and committed by
Cosmeak
24cca6fc 1594a1f3

+284 -1410
+2 -1
.eslintrc.json
··· 6 6 }, 7 7 "parserOptions": { 8 8 "ecmaVersion": 2021, 9 - "sourceType": "script" 9 + "sourceType": "module", 10 + "allowImportExportEverywhere": true 10 11 }, 11 12 "rules": { 12 13 "arrow-spacing": [
+1 -1
README.md
··· 1 - # PteroBot - A Bot connected to your panel 1 + # PteroBot - 🪶 A Discord Bot connected to your Pterodactyl API
+34
bin/command.deploy.js
··· 1 + import { REST, Routes } from "discord.js"; 2 + import * as fs from "node:fs"; 3 + import * as path from "node:path"; 4 + import { fileURLToPath } from "url"; 5 + import { config } from "dotenv"; 6 + config(); 7 + 8 + const __filename = fileURLToPath(import.meta.url); 9 + const __dirname = path.dirname(__filename); 10 + 11 + (async () => { 12 + const commands = []; 13 + const commandsPath = path.join(__dirname, "..", "src", "commands"); 14 + const commandFiles = fs.readdirSync(commandsPath).filter((file) => file.endsWith(".js")); 15 + for (const file of commandFiles) { 16 + const filePath = path.join(commandsPath, file); 17 + const command = await import(filePath); 18 + if (command.default?.data && command.default?.execute) { 19 + commands.push(command.default.data.toJSON()); 20 + } 21 + } 22 + const rest = new REST({ version: "10" }).setToken(process.env.BOT_TOKEN); 23 + try { 24 + console.log(`Started refreshing ${commands.length} application (/) commands`); 25 + const data = await rest.put( 26 + Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID), 27 + { body: commands }, 28 + ); 29 + console.log(`Successfully reloaded ${data.length} application (/) commands.`); 30 + } 31 + catch (error) { 32 + console.error(error); 33 + } 34 + })();
-30
bin/deploy-commands.js
··· 1 - const { REST, Routes } = require("discord.js"); 2 - const fs = require("node:fs"); 3 - const path = require("node:path"); 4 - const logger = require("../src/services/Logger"); 5 - require("dotenv").config(); 6 - 7 - (async () => { 8 - const commands = []; 9 - const commandsPath = path.join(__dirname, "..", "src", "commands"); 10 - const commandFiles = fs.readdirSync(commandsPath).filter((file) => file.endsWith(".js")); 11 - for (const file of commandFiles) { 12 - const filePath = path.join(commandsPath, file); 13 - const command = require(filePath); 14 - if (command.data) { 15 - commands.push(command.data.toJSON()); 16 - } 17 - } 18 - const rest = new REST({ version: "10" }).setToken(process.env.BOT_TOKEN); 19 - try { 20 - logger.log(`Started refreshing ${commands.length} application (/) commands`); 21 - const data = await rest.put( 22 - Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID), 23 - { body: commands }, 24 - ); 25 - logger.success(`Successfully reloaded ${data.length} application (/) commands.`); 26 - } 27 - catch (error) { 28 - logger.error(error); 29 - } 30 - })();
+4 -4
package.json
··· 1 1 { 2 2 "name": "pteroBot", 3 - "version": "0.0.1", 4 - "description": "A Safer Bot for a Safer Place", 3 + "version": "0.1.1", 4 + "description": "A Discord Bot connected to your Pterodactyl API", 5 5 "main": "./src/main.js", 6 6 "author": "Cosmeak", 7 7 "license": "MIT", 8 8 "private": true, 9 - "type": "commonjs", 9 + "type": "module", 10 10 "dependencies": { 11 11 "axios": "^1.3.6", 12 12 "colorette": "^2.0.19", ··· 22 22 "start": "node ./src/main.js --max-old-space-size=4096", 23 23 "lint": "eslint --ext .js --max-warnings 0 ./src/", 24 24 "lint:fix": "eslint --ext .js --fix ./src/", 25 - "deploy:commands": "node ./bin/deploy-commands.js" 25 + "command:deploy": "node ./bin/command.deploy.js" 26 26 } 27 27 }
+7 -9
src/commands/ClientServerDetails.js
··· 1 - const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); 2 - const fecthClientServerInfo = require("../functions/fetchClientServerInfo.js"); 3 - const capitalizeFirstLetter = require("../functions/capitalizeFirstLetter.js"); 4 - const bytesToSize = require("../functions/bytesToSize.js"); 1 + import { SlashCommandBuilder, EmbedBuilder } from "discord.js"; 2 + import fecthClientServerInfo from "../functions/fetchClientServerInfo.js"; 3 + import capitalizeFirstLetter from "../functions/capitalizeFirstLetter.js"; 4 + import bytesToSize from "../functions/bytesToSize.js"; 5 5 6 - module.exports = { 6 + export default { 7 7 data: new SlashCommandBuilder() 8 8 .setName("client-server-details") 9 9 .setDescription("Give all know details about the given server") ··· 14 14 ), 15 15 async execute(interaction) { 16 16 const server = await fecthClientServerInfo(interaction.options.get("server-id").value); 17 - console.log(server); 18 - 19 17 const embed = new EmbedBuilder() 20 18 .setTitle(server.name) 21 19 .setDescription(server.description ? server.description : "No description...") 22 20 .addFields( 23 21 { name: "Identifier", value: server.identifier, inline: true }, 24 22 { name: "Status", value: capitalizeFirstLetter(server.stats.current_state), inline: true }, 25 - { name: "CPU", value: server.stats.resources.cpu_absolute ? bytesToSize(server.stats.resources.cpu_absolute) : "Offline", inline: true }, 23 + { name: "CPU", value: server.stats.resources.cpu_absolute ? `${server.stats.resources.cpu_absolute}%` : "Offline", inline: true }, 26 24 { name: "Memory", value: server.stats.resources.memory_bytes ? bytesToSize(server.stats.resources.memory_bytes) : "Offline", inline: true }, 27 25 { name: "Disk", value: server.stats.resources.disk_bytes ? bytesToSize(server.stats.resources.disk_bytes) : "Offline", inline: true }, 28 - { name: "Uptime", value: server.stats.resources.uptime ? bytesToSize(server.stats.resources.uptime) : "Offline", inline: true }, 26 + { name: "Uptime", value: server.stats.resources.uptime ? server.stats.resources.uptime : "Offline", inline: true }, 29 27 ) 30 28 .setColor("Blurple") 31 29 .setTimestamp();
+26 -25
src/commands/ClientServerList.js
··· 1 - const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); 2 - const axios = require("axios"); 3 - require("dotenv").config(); 1 + import { SlashCommandBuilder, EmbedBuilder } from "discord.js"; 2 + import axios from "axios"; 3 + import { config } from "dotenv"; 4 + config(); 4 5 5 - module.exports = { 6 - data: new SlashCommandBuilder() 7 - .setName("client-server-list") 8 - .setDescription("List all servers"), 9 - async execute(interaction) { 10 - const response = await axios.get(`${process.env.PTERO_HOST}/api/client/`, { 11 - "headers": { 12 - "Accept": "application/json", 13 - "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 14 - }, 15 - }); 6 + export default { 7 + data: new SlashCommandBuilder() 8 + .setName("client-server-list") 9 + .setDescription("List all servers"), 10 + async execute(interaction) { 11 + const response = await axios.get(`${process.env.PTERO_HOST}/api/client/`, { 12 + "headers": { 13 + "Accept": "application/json", 14 + "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 15 + }, 16 + }); 16 17 17 - let message = ""; 18 - response.data.data.forEach((server) => { 19 - message += `**${server.attributes.name}** [${server.attributes.identifier}]\n\n`; 20 - }); 18 + let message = ""; 19 + response.data.data.forEach((server) => { 20 + message += `**${server.attributes.name}** [${server.attributes.identifier}]\n\n`; 21 + }); 21 22 22 - const embed = new EmbedBuilder() 23 - .setTitle("Your servers") 24 - .setDescription(message) 25 - .setColor("Blurple") 26 - .setTimestamp(); 23 + const embed = new EmbedBuilder() 24 + .setTitle("Your servers") 25 + .setDescription(message) 26 + .setColor("Blurple") 27 + .setTimestamp(); 27 28 28 - return interaction.reply({ embeds: [embed] }); 29 - }, 29 + return interaction.reply({ embeds: [embed] }); 30 + }, 30 31 };
+47 -46
src/commands/ClientServerPower.js
··· 1 - const { SlashCommandBuilder } = require("discord.js"); 2 - const fecthClientServerInfo = require("../functions/fetchClientServerInfo.js"); 3 - const axios = require("axios"); 4 - require("dotenv").config(); 1 + import { SlashCommandBuilder } from "discord.js"; 2 + import fecthClientServerInfo from "../functions/fetchClientServerInfo.js"; 3 + import axios from "axios"; 4 + import { config } from "dotenv"; 5 + config(); 5 6 6 - module.exports = { 7 - data: new SlashCommandBuilder() 8 - .setName("client-server-power") 9 - .setDescription("Provide a way to up or down a server") 10 - .addStringOption((option) => 11 - option.setName("server-id") 12 - .setDescription("Your server identifier") 13 - .setRequired(true), 14 - ) 15 - .addStringOption((option) => 16 - option.setName("state") 17 - .setDescription("Choose a state for your server") 18 - .setChoices( 19 - { name: "start", value: "start" }, 20 - { name: "stop", value: "stop" }, 21 - { name: "restart", value: "restart" }, 22 - { name: "kill", value: "kill" }, 23 - ) 24 - .setRequired(true), 25 - ), 26 - async execute(interaction) { 27 - const state = interaction.options.get("state").value; 28 - const id = interaction.options.get("server-id").value; 29 - const server = await fecthClientServerInfo(id); 7 + export default { 8 + data: new SlashCommandBuilder() 9 + .setName("client-server-power") 10 + .setDescription("Provide a way to up or down a server") 11 + .addStringOption((option) => 12 + option.setName("server-id") 13 + .setDescription("Your server identifier") 14 + .setRequired(true), 15 + ) 16 + .addStringOption((option) => 17 + option.setName("state") 18 + .setDescription("Choose a state for your server") 19 + .setChoices( 20 + { name: "start", value: "start" }, 21 + { name: "stop", value: "stop" }, 22 + { name: "restart", value: "restart" }, 23 + { name: "kill", value: "kill" }, 24 + ) 25 + .setRequired(true), 26 + ), 27 + async execute(interaction) { 28 + const state = interaction.options.get("state").value; 29 + const id = interaction.options.get("server-id").value; 30 + const server = await fecthClientServerInfo(id); 30 31 31 - try { 32 - await axios.post(`${process.env.PTERO_HOST}/api/client/servers/${id}/power`, { 33 - "headers": { 34 - "Accept": "application/json", 35 - "Content-Type": "application/json", 36 - "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 37 - }, 38 - "body": { 39 - "signal": state, 40 - }, 41 - }); 42 - } 43 - catch (error) { 44 - console.error(error.response.data.errors); 45 - return interaction.reply("An error occurred with your request..."); 46 - } 32 + try { 33 + await axios.post(`${process.env.PTERO_HOST}/api/client/servers/${id}/power`, { 34 + "headers": { 35 + "Accept": "application/json", 36 + "Content-Type": "application/json", 37 + "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 38 + }, 39 + "body": { 40 + "signal": state, 41 + }, 42 + }); 43 + } 44 + catch (error) { 45 + console.error(error.response.data.errors); 46 + return interaction.reply("An error occurred with your request..."); 47 + } 47 48 48 - return interaction.reply(`The **${state}** state has been sent to the server **${server.name}**`); 49 - }, 49 + return interaction.reply(`The **${state}** state has been sent to the server **${server.name}**`); 50 + }, 50 51 };
-10
src/commands/Ping.js
··· 1 - const { SlashCommandBuilder } = require("discord.js"); 2 - 3 - module.exports = { 4 - data: new SlashCommandBuilder() 5 - .setName("ping") 6 - .setDescription("Ping function to know if bot is operationnal"), 7 - async execute(interaction) { 8 - interaction.reply("Pong!"); 9 - }, 10 - };
+10 -9
src/events/ClientReady.js
··· 1 - const { Events, EmbedBuilder } = require("discord.js"); 2 - const Logger = require("../services/Logger"); 3 - require("dotenv").config(); 1 + import { Events } from "discord.js"; 2 + import { Logger } from "../services/Logger.js"; 3 + import { config } from "dotenv"; 4 + config(); 4 5 5 - module.exports = { 6 - name: Events.ClientReady, 7 - once: true, 8 - async execute(client) { 9 - Logger.success(`Ready! Logged in as ${client.user.tag}`); 10 - }, 6 + export default { 7 + name: Events.ClientReady, 8 + once: true, 9 + async execute(client) { 10 + Logger.success(`Ready! Logged in as ${client.user.tag}`); 11 + }, 11 12 };
+11 -11
src/events/Debug.js
··· 1 - const { Events } = require("discord.js"); 2 - const Logger = require("../services/Logger"); 3 - require("dotenv").config(); 1 + import { Events } from "discord.js"; 2 + import { Logger } from "../services/Logger.js"; 3 + import { config } from "dotenv"; 4 + config(); 4 5 5 - // When the client is ready, run this code (only once) 6 - module.exports = { 7 - name: Events.Debug, 8 - execute(debug) { 9 - if (process.env.BOT_MODE === "debug") { 10 - Logger.info(debug); 11 - } 12 - }, 6 + export default { 7 + name: Events.Debug, 8 + execute(debug) { 9 + if (process.env.BOT_MODE === "debug") { 10 + Logger.info(debug); 11 + } 12 + }, 13 13 };
+7 -8
src/events/Error.js
··· 1 - const { Events } = require("discord.js"); 2 - const Logger = require("../services/Logger"); 1 + import { Events } from "discord.js"; 2 + import { Logger } from "../services/Logger.js"; 3 3 4 - // When the client is ready, run this code (only once) 5 - module.exports = { 6 - name: Events.Error, 7 - execute(error) { 8 - Logger.error(error); 9 - }, 4 + export default { 5 + name: Events.Error, 6 + execute(error) { 7 + Logger.error(error); 8 + }, 10 9 };
+24 -24
src/events/InteractionCreate.js
··· 1 - const { Events } = require("discord.js"); 2 - const Logger = require("../services/Logger"); 1 + import { Events } from "discord.js"; 2 + import { Logger } from "../services/Logger.js"; 3 3 4 - module.exports = { 5 - name: Events.InteractionCreate, 6 - async execute(interaction) { 7 - if (!interaction.isChatInputCommand()) return; 8 - const command = interaction.client.commands.get(interaction.commandName); 9 - if (!command) { 10 - Logger.error(`No command matching ${interaction.commandName} was found.`); 11 - return; 12 - } 13 - try { 14 - await command.execute(interaction); 15 - } 16 - catch (error) { 17 - Logger.error(error); 18 - if (interaction.replied || interaction.deferred) { 19 - await interaction.followUp({ content: "There was an error while executing this command!", ephemeral: true }); 20 - } 21 - else { 22 - await interaction.reply({ content: "There was an error while executing this command!", ephemeral: true }); 23 - } 24 - } 25 - }, 4 + export default { 5 + name: Events.InteractionCreate, 6 + async execute(interaction) { 7 + if (!interaction.isChatInputCommand()) return; 8 + const command = interaction.client.commands.get(interaction.commandName); 9 + if (!command) { 10 + Logger.error(`No command matching ${interaction.commandName} was found.`); 11 + return; 12 + } 13 + try { 14 + await command.execute(interaction); 15 + } 16 + catch (error) { 17 + Logger.error(error); 18 + if (interaction.replied || interaction.deferred) { 19 + await interaction.followUp({ content: "There was an error while executing this command!", ephemeral: true }); 20 + } 21 + else { 22 + await interaction.reply({ content: "There was an error while executing this command!", ephemeral: true }); 23 + } 24 + } 25 + }, 26 26 };
+7 -7
src/events/Warn.js
··· 1 - const { Events } = require("discord.js"); 2 - const Logger = require("../services/Logger"); 1 + import { Events } from "discord.js"; 2 + import { Logger } from "../services/Logger.js"; 3 3 4 4 // When the client is ready, run this code (only once) 5 - module.exports = { 6 - name: Events.Warn, 7 - execute(warn) { 8 - Logger.warn(warn); 9 - }, 5 + export default { 6 + name: Events.Warn, 7 + execute(warn) { 8 + Logger.warn(warn); 9 + }, 10 10 };
+6 -6
src/functions/bytesToSize.js
··· 1 - module.exports = (bytes) => { 2 - const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 3 - if (bytes === 0) return "n/a"; 4 - const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); 5 - if (i === 0) return `${bytes} ${sizes[i]})`; 6 - return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`; 1 + export default (bytes) => { 2 + const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 3 + if (bytes === 0) return "n/a"; 4 + const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); 5 + if (i === 0) return `${bytes} ${sizes[i]})`; 6 + return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`; 7 7 };
+2 -2
src/functions/capitalizeFirstLetter.js
··· 1 - module.exports = (string) => { 2 - return string.charAt(0).toUpperCase() + string.slice(1); 1 + export default (string) => { 2 + return string.charAt(0).toUpperCase() + string.slice(1); 3 3 };
+18 -17
src/functions/fetchClientServerInfo.js
··· 1 - const axios = require("axios"); 2 - require("dotenv").config(); 1 + import axios from "axios"; 2 + import { config } from "dotenv"; 3 + config(); 3 4 4 - module.exports = async (id) => { 5 - const headers = { 6 - "Accept": "application/json", 7 - "Content-Type": "application/json", 8 - "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 9 - }; 5 + export default async (id) => { 6 + const headers = { 7 + "Accept": "application/json", 8 + "Content-Type": "application/json", 9 + "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 10 + }; 10 11 11 - let response = await axios.get(`${process.env.PTERO_HOST}/api/client/servers/${id}`, { 12 - "headers": headers, 13 - }); 12 + let response = await axios.get(`${process.env.PTERO_HOST}/api/client/servers/${id}`, { 13 + "headers": headers, 14 + }); 14 15 15 - const server = response.data.attributes; 16 + const server = response.data.attributes; 16 17 17 - response = await axios.get(`${process.env.PTERO_HOST}/api/client/servers/${id}/resources`, { 18 - "headers": headers, 19 - }); 18 + response = await axios.get(`${process.env.PTERO_HOST}/api/client/servers/${id}/resources`, { 19 + "headers": headers, 20 + }); 20 21 21 - server.stats = response.data.attributes; 22 + server.stats = response.data.attributes; 22 23 23 - return server; 24 + return server; 24 25 };
src/functions/loadFilesFromFolder.js

This is a binary file and will not be displayed.

+1 -1
src/main.js
··· 1 - const Bot = require("./services/Bot.js"); 1 + import { Bot } from "./services/Bot.js"; 2 2 3 3 const bot = new Bot(); 4 4 bot.run();
+58 -65
src/services/Bot.js
··· 1 - const { Client, Collection, GatewayIntentBits } = require("discord.js"); 2 - const fs = require("fs"); 3 - const path = require("path"); 4 - const Logger = require("../services/Logger"); 5 - require("dotenv").config(); 1 + import { Client, Collection, GatewayIntentBits } from "discord.js"; 2 + import * as fs from "node:fs"; 3 + import * as path from "node:path"; 4 + import { fileURLToPath } from "url"; 5 + import { Logger } from "./Logger.js"; 6 + import { config } from "dotenv"; 7 + config(); 6 8 7 - module.exports = class Bot { 8 - constructor() { 9 - // Set bot token 10 - this.token = process.env.BOT_TOKEN; 11 - // Create a new client instance 12 - this.client = new Client({ 13 - intents: [ 14 - GatewayIntentBits.Guilds, 15 - GatewayIntentBits.GuildMembers, 16 - GatewayIntentBits.GuildModeration, 17 - // GatewayIntentBits.GuildEmojisAndStickers, 18 - // GatewayIntentBits.GuildIntegrations, 19 - // GatewayIntentBits.GuildWebhooks, 20 - // GatewayIntentBits.GuildInvites, 21 - // GatewayIntentBits.GuildVoiceStates, 22 - // GatewayIntentBits.GuildPresences, 23 - GatewayIntentBits.GuildMessages, 24 - GatewayIntentBits.GuildMessageReactions, 25 - // GatewayIntentBits.GuildMessageTyping, 26 - // GatewayIntentBits.DirectMessages, 27 - // GatewayIntentBits.DirectMessageReactions, 28 - // GatewayIntentBits.DirectMessageTyping, 29 - // GatewayIntentBits.MessageContent, 30 - // GatewayIntentBits.GuildScheduledEvents, 31 - // GatewayIntentBits.AutoModerationConfiguration, 32 - // GatewayIntentBits.AutoModerationExecution, 33 - ], 34 - }); 35 - } 9 + const __filename = fileURLToPath(import.meta.url); 10 + const __dirname = path.dirname(__filename); 11 + 12 + class Bot { 13 + constructor() { 14 + // Set bot token 15 + this.token = process.env.BOT_TOKEN; 16 + // Create a new client instance 17 + this.client = new Client({ 18 + intents: [ 19 + GatewayIntentBits.Guilds, 20 + GatewayIntentBits.GuildMembers, 21 + GatewayIntentBits.GuildMessages, 22 + ], 23 + }); 24 + } 25 + 26 + async run() { 27 + // Log in to Discord with your token 28 + await this.client.login(this.token); 29 + // Launch registration of all slash commands 30 + await this.registerCommands(); 31 + // Launch registration of events 32 + await this.registerEvents(); 33 + } 36 34 37 - run() { 38 - // Log in to Discord with your token 39 - this.client.login(this.token); 40 - // Launch registration of all slash commands 41 - this.registerCommands(); 42 - // Launch registration of events 43 - this.registerEvents(); 44 - } 35 + async registerCommands() { 36 + // Create a new collection instance for commands 37 + this.client.commands = new Collection(); 38 + const commandsPath = path.join(__dirname, "..", "commands"); 39 + const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith(".js")); 40 + for (const file of commandFiles) { 41 + const filePath = path.join(commandsPath, file); 42 + let command = await import(filePath); 43 + command = command.default; 44 + // Set a new item in the Collection with the key as the command name and the value as the exported module 45 + if (command?.data && command?.execute) this.client.commands.set(command.data.name, command); 46 + else Logger.warn(`The command at ${filePath} is missing a required "data" or "execute" property.`); 47 + } 48 + } 45 49 46 - registerCommands() { 47 - // Create a new collection instance for commands 48 - this.client.commands = new Collection(); 49 - const commandsPath = path.join(__dirname, "..", "commands"); 50 - const commandFiles = fs.readdirSync(commandsPath).filter((file) => file.endsWith(".js")); 51 - for (const file of commandFiles) { 52 - const filePath = path.join(commandsPath, file); 53 - const command = require(filePath); 54 - // Set a new item in the Collection with the key as the command name and the value as the exported module 55 - if (command?.data && command?.execute) this.client.commands.set(command.data.name, command); 56 - else Logger.warn(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); 57 - } 58 - } 50 + async registerEvents() { 51 + const eventsPath = path.join(__dirname, "..", "events"); 52 + const eventsFiles = fs.readdirSync(eventsPath).filter((file) => file.endsWith(".js")); 59 53 60 - registerEvents() { 61 - const eventsPath = path.join(__dirname, "..", "events"); 62 - const eventsFiles = fs.readdirSync(eventsPath).filter((file) => file.endsWith(".js")); 63 - for (const file of eventsFiles) { 64 - const filePath = path.join(eventsPath, file); 65 - const event = require(filePath); 66 - if (event.once) this.client.once(event.name, (...args) => event.execute(...args)); 67 - else this.client.on(event.name, (...args) => event.execute(...args)); 68 - } 69 - } 54 + for (const file of eventsFiles) { 55 + const filePath = path.join(eventsPath, file); 56 + const event = await import(filePath); 57 + if (event.once) this.client.once(event.name, (...args) => event.execute(...args)); 58 + else this.client.on(event.name, (...args) => event.execute(...args)); 59 + } 60 + } 70 61 }; 62 + 63 + export { Bot };
+19 -17
src/services/Logger.js
··· 1 - const { yellow, gray, red, cyan, green, bold } = require("colorette"); 1 + import { yellow, gray, red, cyan, green, bold } from "colorette"; 2 2 3 - module.exports = class Logger { 4 - static log(string) { 5 - return console.log(gray(string)); 6 - } 7 - static warn(string) { 8 - return console.warn(yellow(`${bold("[WARN]")} ${string}`)); 9 - } 10 - static error(string) { 11 - return console.error(red(`${bold("[ERROR]")} ${string}`)); 12 - } 13 - static info(string) { 14 - return console.info(cyan(`${bold("[INFO]")} ${string}`)); 15 - } 16 - static success(string) { 17 - return console.log(green(string)); 18 - } 3 + class Logger { 4 + static log(string) { 5 + return console.log(gray(string)); 6 + } 7 + static warn(string) { 8 + return console.warn(yellow(`${bold("[WARN]")} ${string}`)); 9 + } 10 + static error(string) { 11 + return console.error(red(`${bold("[ERROR]")} ${string}`)); 12 + } 13 + static info(string) { 14 + return console.info(cyan(`${bold("[INFO]")} ${string}`)); 15 + } 16 + static success(string) { 17 + return console.log(green(string)); 18 + } 19 19 }; 20 + 21 + export { Logger };
-1117
yarn.lock
··· 1 - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 - # yarn lockfile v1 3 - 4 - 5 - "@discordjs/builders@^1.6.0": 6 - version "1.6.1" 7 - resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.6.1.tgz#5b1447cfa493bc1306671ef18ce3aae13c0af0ba" 8 - integrity sha512-CCcLwn/8ANhlAbhlE18fcaN0hfXTen53/JiwZs1t9oE/Cqa9maA8ZRarkCIsXF4J7J/MYnd0J6IsxeKsq+f6mw== 9 - dependencies: 10 - "@discordjs/formatters" "^0.3.0" 11 - "@discordjs/util" "^0.2.0" 12 - "@sapphire/shapeshift" "^3.8.1" 13 - discord-api-types "^0.37.37" 14 - fast-deep-equal "^3.1.3" 15 - ts-mixer "^6.0.3" 16 - tslib "^2.5.0" 17 - 18 - "@discordjs/collection@^1.5.0": 19 - version "1.5.0" 20 - resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.0.tgz#478acd5d510cb5996c5101f47b24959ac7499cc2" 21 - integrity sha512-suyVndkEAAWrGxyw/CPGdtXoRRU6AUNkibtnbJevQzpelkJh3Q1gQqWDpqf5i39CnAn5+LrN0YS+cULeEjq2Yw== 22 - 23 - "@discordjs/formatters@^0.3.0": 24 - version "0.3.0" 25 - resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.0.tgz#8313d158c5e974597eec43b1f381d870a507d133" 26 - integrity sha512-Fc4MomalbP8HMKEMor3qUiboAKDtR7PSBoPjwm7WYghVRwgJlj5WYvUsriLsxeKk8+Qq2oy+HJlGTUkGvX0YnA== 27 - dependencies: 28 - discord-api-types "^0.37.37" 29 - 30 - "@discordjs/rest@^1.7.0": 31 - version "1.7.0" 32 - resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-1.7.0.tgz#c61fcd14e810b44e4821df5dfb5e74fa5fcb6e5d" 33 - integrity sha512-r2HzmznRIo8IDGYBWqQfkEaGN1LrFfWQd3dSyC4tOpMU8nuVvFUEw6V/lwnG44jyOq+vgyDny2fxeUDMt9I4aQ== 34 - dependencies: 35 - "@discordjs/collection" "^1.5.0" 36 - "@discordjs/util" "^0.2.0" 37 - "@sapphire/async-queue" "^1.5.0" 38 - "@sapphire/snowflake" "^3.4.0" 39 - discord-api-types "^0.37.37" 40 - file-type "^18.2.1" 41 - tslib "^2.5.0" 42 - undici "^5.21.0" 43 - 44 - "@discordjs/util@^0.2.0": 45 - version "0.2.0" 46 - resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.2.0.tgz#91b590dae3934ffa5fe34530afc5212c569d6751" 47 - integrity sha512-/8qNbebFzLWKOOg+UV+RB8itp4SmU5jw0tBUD3ifElW6rYNOj1Ku5JaSW7lLl/WgjjxF01l/1uQPCzkwr110vg== 48 - 49 - "@eslint-community/eslint-utils@^4.2.0": 50 - version "4.4.0" 51 - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" 52 - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 53 - dependencies: 54 - eslint-visitor-keys "^3.3.0" 55 - 56 - "@eslint-community/regexpp@^4.4.0": 57 - version "4.5.0" 58 - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" 59 - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== 60 - 61 - "@eslint/eslintrc@^2.0.2": 62 - version "2.0.2" 63 - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" 64 - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== 65 - dependencies: 66 - ajv "^6.12.4" 67 - debug "^4.3.2" 68 - espree "^9.5.1" 69 - globals "^13.19.0" 70 - ignore "^5.2.0" 71 - import-fresh "^3.2.1" 72 - js-yaml "^4.1.0" 73 - minimatch "^3.1.2" 74 - strip-json-comments "^3.1.1" 75 - 76 - "@eslint/js@8.39.0": 77 - version "8.39.0" 78 - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" 79 - integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== 80 - 81 - "@humanwhocodes/config-array@^0.11.8": 82 - version "0.11.8" 83 - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" 84 - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== 85 - dependencies: 86 - "@humanwhocodes/object-schema" "^1.2.1" 87 - debug "^4.1.1" 88 - minimatch "^3.0.5" 89 - 90 - "@humanwhocodes/module-importer@^1.0.1": 91 - version "1.0.1" 92 - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 93 - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 94 - 95 - "@humanwhocodes/object-schema@^1.2.1": 96 - version "1.2.1" 97 - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 98 - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 99 - 100 - "@nodelib/fs.scandir@2.1.5": 101 - version "2.1.5" 102 - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 103 - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 104 - dependencies: 105 - "@nodelib/fs.stat" "2.0.5" 106 - run-parallel "^1.1.9" 107 - 108 - "@nodelib/fs.stat@2.0.5": 109 - version "2.0.5" 110 - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 111 - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 112 - 113 - "@nodelib/fs.walk@^1.2.8": 114 - version "1.2.8" 115 - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 116 - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 117 - dependencies: 118 - "@nodelib/fs.scandir" "2.1.5" 119 - fastq "^1.6.0" 120 - 121 - "@sapphire/async-queue@^1.5.0": 122 - version "1.5.0" 123 - resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8" 124 - integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA== 125 - 126 - "@sapphire/shapeshift@^3.8.1": 127 - version "3.8.2" 128 - resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.8.2.tgz#f9f25cba74c710b56f8790de76a9642a9635e7db" 129 - integrity sha512-NXpnJAsxN3/h9TqQPntOeVWZrpIuucqXI3IWF6tj2fWCoRLCuVK5wx7Dtg7pRrtkYfsMUbDqgKoX26vrC5iYfA== 130 - dependencies: 131 - fast-deep-equal "^3.1.3" 132 - lodash "^4.17.21" 133 - 134 - "@sapphire/snowflake@^3.4.0": 135 - version "3.4.2" 136 - resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.4.2.tgz#365af8e7b57ada924ec8e85383b921280f81d128" 137 - integrity sha512-KJwlv5gkGjs1uFV7/xx81n3tqgBwBJvH94n1xDyH3q+JSmtsMeSleJffarEBfG2yAFeJiFA4BnGOK6FFPHc19g== 138 - 139 - "@tokenizer/token@^0.3.0": 140 - version "0.3.0" 141 - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" 142 - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== 143 - 144 - "@types/node@*": 145 - version "18.15.13" 146 - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" 147 - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== 148 - 149 - "@types/ws@^8.5.4": 150 - version "8.5.4" 151 - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" 152 - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== 153 - dependencies: 154 - "@types/node" "*" 155 - 156 - abbrev@1: 157 - version "1.1.1" 158 - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 159 - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 160 - 161 - acorn-jsx@^5.3.2: 162 - version "5.3.2" 163 - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 164 - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 165 - 166 - acorn@^8.8.0: 167 - version "8.8.2" 168 - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" 169 - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== 170 - 171 - ajv@^6.10.0, ajv@^6.12.4: 172 - version "6.12.6" 173 - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 174 - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 175 - dependencies: 176 - fast-deep-equal "^3.1.1" 177 - fast-json-stable-stringify "^2.0.0" 178 - json-schema-traverse "^0.4.1" 179 - uri-js "^4.2.2" 180 - 181 - ansi-regex@^5.0.1: 182 - version "5.0.1" 183 - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 184 - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 185 - 186 - ansi-styles@^4.1.0: 187 - version "4.3.0" 188 - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 189 - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 190 - dependencies: 191 - color-convert "^2.0.1" 192 - 193 - anymatch@~3.1.2: 194 - version "3.1.3" 195 - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 196 - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 197 - dependencies: 198 - normalize-path "^3.0.0" 199 - picomatch "^2.0.4" 200 - 201 - argparse@^2.0.1: 202 - version "2.0.1" 203 - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 204 - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 205 - 206 - asynckit@^0.4.0: 207 - version "0.4.0" 208 - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 209 - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 210 - 211 - axios@^1.3.6: 212 - version "1.3.6" 213 - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.6.tgz#1ace9a9fb994314b5f6327960918406fa92c6646" 214 - integrity sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg== 215 - dependencies: 216 - follow-redirects "^1.15.0" 217 - form-data "^4.0.0" 218 - proxy-from-env "^1.1.0" 219 - 220 - balanced-match@^1.0.0: 221 - version "1.0.2" 222 - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 223 - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 224 - 225 - binary-extensions@^2.0.0: 226 - version "2.2.0" 227 - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 228 - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 229 - 230 - brace-expansion@^1.1.7: 231 - version "1.1.11" 232 - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 233 - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 234 - dependencies: 235 - balanced-match "^1.0.0" 236 - concat-map "0.0.1" 237 - 238 - braces@~3.0.2: 239 - version "3.0.2" 240 - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 241 - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 242 - dependencies: 243 - fill-range "^7.0.1" 244 - 245 - busboy@^1.6.0: 246 - version "1.6.0" 247 - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" 248 - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 249 - dependencies: 250 - streamsearch "^1.1.0" 251 - 252 - callsites@^3.0.0: 253 - version "3.1.0" 254 - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 255 - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 256 - 257 - chalk@^4.0.0: 258 - version "4.1.2" 259 - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 260 - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 261 - dependencies: 262 - ansi-styles "^4.1.0" 263 - supports-color "^7.1.0" 264 - 265 - chokidar@^3.5.2: 266 - version "3.5.3" 267 - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 268 - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 269 - dependencies: 270 - anymatch "~3.1.2" 271 - braces "~3.0.2" 272 - glob-parent "~5.1.2" 273 - is-binary-path "~2.1.0" 274 - is-glob "~4.0.1" 275 - normalize-path "~3.0.0" 276 - readdirp "~3.6.0" 277 - optionalDependencies: 278 - fsevents "~2.3.2" 279 - 280 - color-convert@^2.0.1: 281 - version "2.0.1" 282 - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 283 - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 284 - dependencies: 285 - color-name "~1.1.4" 286 - 287 - color-name@~1.1.4: 288 - version "1.1.4" 289 - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 290 - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 291 - 292 - colorette@^2.0.19: 293 - version "2.0.20" 294 - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" 295 - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== 296 - 297 - combined-stream@^1.0.8: 298 - version "1.0.8" 299 - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 300 - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 301 - dependencies: 302 - delayed-stream "~1.0.0" 303 - 304 - concat-map@0.0.1: 305 - version "0.0.1" 306 - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 307 - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 308 - 309 - cross-spawn@^7.0.2: 310 - version "7.0.3" 311 - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 312 - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 313 - dependencies: 314 - path-key "^3.1.0" 315 - shebang-command "^2.0.0" 316 - which "^2.0.1" 317 - 318 - debug@^3.2.7: 319 - version "3.2.7" 320 - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 321 - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 322 - dependencies: 323 - ms "^2.1.1" 324 - 325 - debug@^4.1.1, debug@^4.3.2: 326 - version "4.3.4" 327 - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 328 - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 329 - dependencies: 330 - ms "2.1.2" 331 - 332 - deep-is@^0.1.3: 333 - version "0.1.4" 334 - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 335 - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 336 - 337 - delayed-stream@~1.0.0: 338 - version "1.0.0" 339 - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 340 - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 341 - 342 - discord-api-types@^0.37.37: 343 - version "0.37.39" 344 - resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.39.tgz#4b103bad3a1547b2106d8e65750ddb0374f9bb6a" 345 - integrity sha512-hkhQsQyzsTJITp311WXvHZh9j4RAMfIk2hPmsWeOTN50QTpg6zqmJNfel9D/8lYNvsU01wzw9281Yke8NhYyHg== 346 - 347 - discord.js@^14.8.0: 348 - version "14.9.0" 349 - resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.9.0.tgz#61e26c4a7a27f91fd669b4c46892868420a5be43" 350 - integrity sha512-ygGms5xP4hG+QrrY9k7d/OYCzMltSMtdl/2Snzq/nLCiZo+Sna91Ulv9l0+B5Jd/Czcq37B7wJAnmja7GOa+bg== 351 - dependencies: 352 - "@discordjs/builders" "^1.6.0" 353 - "@discordjs/collection" "^1.5.0" 354 - "@discordjs/formatters" "^0.3.0" 355 - "@discordjs/rest" "^1.7.0" 356 - "@discordjs/util" "^0.2.0" 357 - "@sapphire/snowflake" "^3.4.0" 358 - "@types/ws" "^8.5.4" 359 - discord-api-types "^0.37.37" 360 - fast-deep-equal "^3.1.3" 361 - lodash.snakecase "^4.1.1" 362 - tslib "^2.5.0" 363 - undici "^5.21.0" 364 - ws "^8.13.0" 365 - 366 - doctrine@^3.0.0: 367 - version "3.0.0" 368 - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 369 - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 370 - dependencies: 371 - esutils "^2.0.2" 372 - 373 - dotenv@^16.0.3: 374 - version "16.0.3" 375 - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" 376 - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== 377 - 378 - escape-string-regexp@^4.0.0: 379 - version "4.0.0" 380 - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 381 - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 382 - 383 - eslint-scope@^7.2.0: 384 - version "7.2.0" 385 - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" 386 - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== 387 - dependencies: 388 - esrecurse "^4.3.0" 389 - estraverse "^5.2.0" 390 - 391 - eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: 392 - version "3.4.0" 393 - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" 394 - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== 395 - 396 - eslint@^8.36.0: 397 - version "8.39.0" 398 - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.39.0.tgz#7fd20a295ef92d43809e914b70c39fd5a23cf3f1" 399 - integrity sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og== 400 - dependencies: 401 - "@eslint-community/eslint-utils" "^4.2.0" 402 - "@eslint-community/regexpp" "^4.4.0" 403 - "@eslint/eslintrc" "^2.0.2" 404 - "@eslint/js" "8.39.0" 405 - "@humanwhocodes/config-array" "^0.11.8" 406 - "@humanwhocodes/module-importer" "^1.0.1" 407 - "@nodelib/fs.walk" "^1.2.8" 408 - ajv "^6.10.0" 409 - chalk "^4.0.0" 410 - cross-spawn "^7.0.2" 411 - debug "^4.3.2" 412 - doctrine "^3.0.0" 413 - escape-string-regexp "^4.0.0" 414 - eslint-scope "^7.2.0" 415 - eslint-visitor-keys "^3.4.0" 416 - espree "^9.5.1" 417 - esquery "^1.4.2" 418 - esutils "^2.0.2" 419 - fast-deep-equal "^3.1.3" 420 - file-entry-cache "^6.0.1" 421 - find-up "^5.0.0" 422 - glob-parent "^6.0.2" 423 - globals "^13.19.0" 424 - grapheme-splitter "^1.0.4" 425 - ignore "^5.2.0" 426 - import-fresh "^3.0.0" 427 - imurmurhash "^0.1.4" 428 - is-glob "^4.0.0" 429 - is-path-inside "^3.0.3" 430 - js-sdsl "^4.1.4" 431 - js-yaml "^4.1.0" 432 - json-stable-stringify-without-jsonify "^1.0.1" 433 - levn "^0.4.1" 434 - lodash.merge "^4.6.2" 435 - minimatch "^3.1.2" 436 - natural-compare "^1.4.0" 437 - optionator "^0.9.1" 438 - strip-ansi "^6.0.1" 439 - strip-json-comments "^3.1.0" 440 - text-table "^0.2.0" 441 - 442 - espree@^9.5.1: 443 - version "9.5.1" 444 - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" 445 - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== 446 - dependencies: 447 - acorn "^8.8.0" 448 - acorn-jsx "^5.3.2" 449 - eslint-visitor-keys "^3.4.0" 450 - 451 - esquery@^1.4.2: 452 - version "1.5.0" 453 - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 454 - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 455 - dependencies: 456 - estraverse "^5.1.0" 457 - 458 - esrecurse@^4.3.0: 459 - version "4.3.0" 460 - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 461 - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 462 - dependencies: 463 - estraverse "^5.2.0" 464 - 465 - estraverse@^5.1.0, estraverse@^5.2.0: 466 - version "5.3.0" 467 - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 468 - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 469 - 470 - esutils@^2.0.2: 471 - version "2.0.3" 472 - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 473 - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 474 - 475 - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 476 - version "3.1.3" 477 - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 478 - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 479 - 480 - fast-json-stable-stringify@^2.0.0: 481 - version "2.1.0" 482 - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 483 - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 484 - 485 - fast-levenshtein@^2.0.6: 486 - version "2.0.6" 487 - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 488 - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 489 - 490 - fastq@^1.6.0: 491 - version "1.15.0" 492 - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 493 - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 494 - dependencies: 495 - reusify "^1.0.4" 496 - 497 - file-entry-cache@^6.0.1: 498 - version "6.0.1" 499 - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 500 - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 501 - dependencies: 502 - flat-cache "^3.0.4" 503 - 504 - file-type@^18.2.1: 505 - version "18.2.1" 506 - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.2.1.tgz#6d8f1fa3b079606f6ecf89483346f55fcd2c671b" 507 - integrity sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg== 508 - dependencies: 509 - readable-web-to-node-stream "^3.0.2" 510 - strtok3 "^7.0.0" 511 - token-types "^5.0.1" 512 - 513 - fill-range@^7.0.1: 514 - version "7.0.1" 515 - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 516 - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 517 - dependencies: 518 - to-regex-range "^5.0.1" 519 - 520 - find-up@^5.0.0: 521 - version "5.0.0" 522 - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 523 - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 524 - dependencies: 525 - locate-path "^6.0.0" 526 - path-exists "^4.0.0" 527 - 528 - flat-cache@^3.0.4: 529 - version "3.0.4" 530 - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 531 - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 532 - dependencies: 533 - flatted "^3.1.0" 534 - rimraf "^3.0.2" 535 - 536 - flatted@^3.1.0: 537 - version "3.2.7" 538 - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 539 - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 540 - 541 - follow-redirects@^1.15.0: 542 - version "1.15.2" 543 - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" 544 - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 545 - 546 - form-data@^4.0.0: 547 - version "4.0.0" 548 - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 549 - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 550 - dependencies: 551 - asynckit "^0.4.0" 552 - combined-stream "^1.0.8" 553 - mime-types "^2.1.12" 554 - 555 - fs.realpath@^1.0.0: 556 - version "1.0.0" 557 - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 558 - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 559 - 560 - fsevents@~2.3.2: 561 - version "2.3.2" 562 - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 563 - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 564 - 565 - glob-parent@^6.0.2: 566 - version "6.0.2" 567 - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 568 - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 569 - dependencies: 570 - is-glob "^4.0.3" 571 - 572 - glob-parent@~5.1.2: 573 - version "5.1.2" 574 - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 575 - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 576 - dependencies: 577 - is-glob "^4.0.1" 578 - 579 - glob@^7.1.3: 580 - version "7.2.3" 581 - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 582 - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 583 - dependencies: 584 - fs.realpath "^1.0.0" 585 - inflight "^1.0.4" 586 - inherits "2" 587 - minimatch "^3.1.1" 588 - once "^1.3.0" 589 - path-is-absolute "^1.0.0" 590 - 591 - globals@^13.19.0: 592 - version "13.20.0" 593 - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 594 - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 595 - dependencies: 596 - type-fest "^0.20.2" 597 - 598 - grapheme-splitter@^1.0.4: 599 - version "1.0.4" 600 - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" 601 - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 602 - 603 - has-flag@^3.0.0: 604 - version "3.0.0" 605 - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 606 - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 607 - 608 - has-flag@^4.0.0: 609 - version "4.0.0" 610 - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 611 - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 612 - 613 - ieee754@^1.2.1: 614 - version "1.2.1" 615 - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 616 - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 617 - 618 - ignore-by-default@^1.0.1: 619 - version "1.0.1" 620 - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 621 - integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== 622 - 623 - ignore@^5.2.0: 624 - version "5.2.4" 625 - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 626 - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 627 - 628 - import-fresh@^3.0.0, import-fresh@^3.2.1: 629 - version "3.3.0" 630 - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 631 - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 632 - dependencies: 633 - parent-module "^1.0.0" 634 - resolve-from "^4.0.0" 635 - 636 - imurmurhash@^0.1.4: 637 - version "0.1.4" 638 - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 639 - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 640 - 641 - inflight@^1.0.4: 642 - version "1.0.6" 643 - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 644 - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 645 - dependencies: 646 - once "^1.3.0" 647 - wrappy "1" 648 - 649 - inherits@2, inherits@^2.0.3: 650 - version "2.0.4" 651 - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 652 - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 653 - 654 - is-binary-path@~2.1.0: 655 - version "2.1.0" 656 - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 657 - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 658 - dependencies: 659 - binary-extensions "^2.0.0" 660 - 661 - is-extglob@^2.1.1: 662 - version "2.1.1" 663 - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 664 - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 665 - 666 - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 667 - version "4.0.3" 668 - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 669 - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 670 - dependencies: 671 - is-extglob "^2.1.1" 672 - 673 - is-number@^7.0.0: 674 - version "7.0.0" 675 - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 676 - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 677 - 678 - is-path-inside@^3.0.3: 679 - version "3.0.3" 680 - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 681 - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 682 - 683 - isexe@^2.0.0: 684 - version "2.0.0" 685 - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 686 - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 687 - 688 - js-sdsl@^4.1.4: 689 - version "4.4.0" 690 - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" 691 - integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== 692 - 693 - js-yaml@^4.1.0: 694 - version "4.1.0" 695 - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 696 - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 697 - dependencies: 698 - argparse "^2.0.1" 699 - 700 - json-schema-traverse@^0.4.1: 701 - version "0.4.1" 702 - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 703 - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 704 - 705 - json-stable-stringify-without-jsonify@^1.0.1: 706 - version "1.0.1" 707 - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 708 - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 709 - 710 - levn@^0.4.1: 711 - version "0.4.1" 712 - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 713 - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 714 - dependencies: 715 - prelude-ls "^1.2.1" 716 - type-check "~0.4.0" 717 - 718 - locate-path@^6.0.0: 719 - version "6.0.0" 720 - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 721 - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 722 - dependencies: 723 - p-locate "^5.0.0" 724 - 725 - lodash.merge@^4.6.2: 726 - version "4.6.2" 727 - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 728 - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 729 - 730 - lodash.snakecase@^4.1.1: 731 - version "4.1.1" 732 - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" 733 - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== 734 - 735 - lodash@^4.17.21: 736 - version "4.17.21" 737 - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 738 - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 739 - 740 - mime-db@1.52.0: 741 - version "1.52.0" 742 - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 743 - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 744 - 745 - mime-types@^2.1.12: 746 - version "2.1.35" 747 - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 748 - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 749 - dependencies: 750 - mime-db "1.52.0" 751 - 752 - minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 753 - version "3.1.2" 754 - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 755 - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 756 - dependencies: 757 - brace-expansion "^1.1.7" 758 - 759 - ms@2.1.2: 760 - version "2.1.2" 761 - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 762 - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 763 - 764 - ms@^2.1.1: 765 - version "2.1.3" 766 - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 767 - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 768 - 769 - natural-compare@^1.4.0: 770 - version "1.4.0" 771 - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 772 - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 773 - 774 - nodemon@^2.0.22: 775 - version "2.0.22" 776 - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" 777 - integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== 778 - dependencies: 779 - chokidar "^3.5.2" 780 - debug "^3.2.7" 781 - ignore-by-default "^1.0.1" 782 - minimatch "^3.1.2" 783 - pstree.remy "^1.1.8" 784 - semver "^5.7.1" 785 - simple-update-notifier "^1.0.7" 786 - supports-color "^5.5.0" 787 - touch "^3.1.0" 788 - undefsafe "^2.0.5" 789 - 790 - nopt@~1.0.10: 791 - version "1.0.10" 792 - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 793 - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== 794 - dependencies: 795 - abbrev "1" 796 - 797 - normalize-path@^3.0.0, normalize-path@~3.0.0: 798 - version "3.0.0" 799 - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 800 - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 801 - 802 - once@^1.3.0: 803 - version "1.4.0" 804 - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 805 - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 806 - dependencies: 807 - wrappy "1" 808 - 809 - optionator@^0.9.1: 810 - version "0.9.1" 811 - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 812 - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 813 - dependencies: 814 - deep-is "^0.1.3" 815 - fast-levenshtein "^2.0.6" 816 - levn "^0.4.1" 817 - prelude-ls "^1.2.1" 818 - type-check "^0.4.0" 819 - word-wrap "^1.2.3" 820 - 821 - p-limit@^3.0.2: 822 - version "3.1.0" 823 - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 824 - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 825 - dependencies: 826 - yocto-queue "^0.1.0" 827 - 828 - p-locate@^5.0.0: 829 - version "5.0.0" 830 - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 831 - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 832 - dependencies: 833 - p-limit "^3.0.2" 834 - 835 - parent-module@^1.0.0: 836 - version "1.0.1" 837 - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 838 - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 839 - dependencies: 840 - callsites "^3.0.0" 841 - 842 - path-exists@^4.0.0: 843 - version "4.0.0" 844 - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 845 - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 846 - 847 - path-is-absolute@^1.0.0: 848 - version "1.0.1" 849 - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 850 - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 851 - 852 - path-key@^3.1.0: 853 - version "3.1.1" 854 - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 855 - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 856 - 857 - peek-readable@^5.0.0: 858 - version "5.0.0" 859 - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec" 860 - integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== 861 - 862 - picomatch@^2.0.4, picomatch@^2.2.1: 863 - version "2.3.1" 864 - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 865 - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 866 - 867 - prelude-ls@^1.2.1: 868 - version "1.2.1" 869 - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 870 - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 871 - 872 - proxy-from-env@^1.1.0: 873 - version "1.1.0" 874 - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 875 - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 876 - 877 - pstree.remy@^1.1.8: 878 - version "1.1.8" 879 - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 880 - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 881 - 882 - punycode@^2.1.0: 883 - version "2.3.0" 884 - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 885 - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 886 - 887 - queue-microtask@^1.2.2: 888 - version "1.2.3" 889 - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 890 - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 891 - 892 - readable-stream@^3.6.0: 893 - version "3.6.2" 894 - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 895 - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 896 - dependencies: 897 - inherits "^2.0.3" 898 - string_decoder "^1.1.1" 899 - util-deprecate "^1.0.1" 900 - 901 - readable-web-to-node-stream@^3.0.2: 902 - version "3.0.2" 903 - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" 904 - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== 905 - dependencies: 906 - readable-stream "^3.6.0" 907 - 908 - readdirp@~3.6.0: 909 - version "3.6.0" 910 - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 911 - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 912 - dependencies: 913 - picomatch "^2.2.1" 914 - 915 - resolve-from@^4.0.0: 916 - version "4.0.0" 917 - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 918 - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 919 - 920 - reusify@^1.0.4: 921 - version "1.0.4" 922 - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 923 - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 924 - 925 - rimraf@^3.0.2: 926 - version "3.0.2" 927 - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 928 - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 929 - dependencies: 930 - glob "^7.1.3" 931 - 932 - run-parallel@^1.1.9: 933 - version "1.2.0" 934 - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 935 - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 936 - dependencies: 937 - queue-microtask "^1.2.2" 938 - 939 - safe-buffer@~5.2.0: 940 - version "5.2.1" 941 - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 942 - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 943 - 944 - semver@^5.7.1: 945 - version "5.7.1" 946 - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 947 - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 948 - 949 - semver@~7.0.0: 950 - version "7.0.0" 951 - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" 952 - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== 953 - 954 - shebang-command@^2.0.0: 955 - version "2.0.0" 956 - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 957 - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 958 - dependencies: 959 - shebang-regex "^3.0.0" 960 - 961 - shebang-regex@^3.0.0: 962 - version "3.0.0" 963 - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 964 - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 965 - 966 - simple-update-notifier@^1.0.7: 967 - version "1.1.0" 968 - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" 969 - integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== 970 - dependencies: 971 - semver "~7.0.0" 972 - 973 - streamsearch@^1.1.0: 974 - version "1.1.0" 975 - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" 976 - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 977 - 978 - string_decoder@^1.1.1: 979 - version "1.3.0" 980 - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 981 - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 982 - dependencies: 983 - safe-buffer "~5.2.0" 984 - 985 - strip-ansi@^6.0.1: 986 - version "6.0.1" 987 - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 988 - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 989 - dependencies: 990 - ansi-regex "^5.0.1" 991 - 992 - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 993 - version "3.1.1" 994 - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 995 - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 996 - 997 - strtok3@^7.0.0: 998 - version "7.0.0" 999 - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5" 1000 - integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== 1001 - dependencies: 1002 - "@tokenizer/token" "^0.3.0" 1003 - peek-readable "^5.0.0" 1004 - 1005 - supports-color@^5.5.0: 1006 - version "5.5.0" 1007 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1008 - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1009 - dependencies: 1010 - has-flag "^3.0.0" 1011 - 1012 - supports-color@^7.1.0: 1013 - version "7.2.0" 1014 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1015 - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1016 - dependencies: 1017 - has-flag "^4.0.0" 1018 - 1019 - text-table@^0.2.0: 1020 - version "0.2.0" 1021 - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1022 - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 1023 - 1024 - to-regex-range@^5.0.1: 1025 - version "5.0.1" 1026 - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1027 - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1028 - dependencies: 1029 - is-number "^7.0.0" 1030 - 1031 - token-types@^5.0.1: 1032 - version "5.0.1" 1033 - resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4" 1034 - integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== 1035 - dependencies: 1036 - "@tokenizer/token" "^0.3.0" 1037 - ieee754 "^1.2.1" 1038 - 1039 - touch@^3.1.0: 1040 - version "3.1.0" 1041 - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1042 - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1043 - dependencies: 1044 - nopt "~1.0.10" 1045 - 1046 - ts-mixer@^6.0.3: 1047 - version "6.0.3" 1048 - resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.3.tgz#69bd50f406ff39daa369885b16c77a6194c7cae6" 1049 - integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ== 1050 - 1051 - tslib@^2.5.0: 1052 - version "2.5.0" 1053 - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" 1054 - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== 1055 - 1056 - type-check@^0.4.0, type-check@~0.4.0: 1057 - version "0.4.0" 1058 - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1059 - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1060 - dependencies: 1061 - prelude-ls "^1.2.1" 1062 - 1063 - type-fest@^0.20.2: 1064 - version "0.20.2" 1065 - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1066 - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1067 - 1068 - undefsafe@^2.0.5: 1069 - version "2.0.5" 1070 - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 1071 - integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 1072 - 1073 - undici@^5.21.0: 1074 - version "5.22.0" 1075 - resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.0.tgz#5e205d82a5aecc003fc4388ccd3d2c6e8674a0ad" 1076 - integrity sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA== 1077 - dependencies: 1078 - busboy "^1.6.0" 1079 - 1080 - uri-js@^4.2.2: 1081 - version "4.4.1" 1082 - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1083 - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1084 - dependencies: 1085 - punycode "^2.1.0" 1086 - 1087 - util-deprecate@^1.0.1: 1088 - version "1.0.2" 1089 - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1090 - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1091 - 1092 - which@^2.0.1: 1093 - version "2.0.2" 1094 - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1095 - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1096 - dependencies: 1097 - isexe "^2.0.0" 1098 - 1099 - word-wrap@^1.2.3: 1100 - version "1.2.3" 1101 - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1102 - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1103 - 1104 - wrappy@1: 1105 - version "1.0.2" 1106 - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1107 - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1108 - 1109 - ws@^8.13.0: 1110 - version "8.13.0" 1111 - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" 1112 - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== 1113 - 1114 - yocto-queue@^0.1.0: 1115 - version "0.1.0" 1116 - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1117 - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==