Removed Custom Builder. Cleaned-Up package.json. Make the bot partially work. Command register was added but, has to be fixed.

This commit is contained in:
Ahmad Khan 2023-09-21 20:15:38 -04:00
parent 169ef72bfd
commit 4e818fb965
14 changed files with 152 additions and 360 deletions

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
target/
node_modules/
config.json
source/config.json

View file

@ -1,136 +0,0 @@
import * as esbuild from "esbuild";
import * as file_system from "fs";
import * as path from "path";
import * as child_process from "child_process";
import * as events from "events";
import * as url from "url";
const RunTargetError = {
TargetNotCompiled: "TargetNotCompiled",
TargetProgramError: "TargetProgramError",
TargetDirectoryMissing: "TargetDirectoryMissing"
}
const TargetInitializationError = {
TargetDirectoryAlreadyExists: "TargetDirectoryAlreadyExists"
}
const TargetProgramError = {
TargetNotRunning: "TargetNotRunning",
InvalidTargetPath: "InvalidTargetPath"
}
const ProjectPackageError = {
PackageMissing: "PackageMissing",
InvalidJsonContents: "InvalidJsonContents"
}
const CompileToTargetError = {
MissingPackageMainField: "MissingPackageMainField"
}
export const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
export const target_directory_path = path.join(__dirname, "../target/");
export const target_file_name = "_.cjs";
export const target_path = path.join(target_directory_path, target_file_name);
export const package_path = path.join(__dirname, "../package.json");
class TargetProgram extends events.EventEmitter {
#child_process = null;
#terminated = false;
#error = 0;
constructor(target_script_source) {
super();
if (!file_system.existsSync(target_script_source)) {
throw new Error(TargetProgramError.InvalidTargetPath);
}
this.#child_process = child_process.spawn(
`node${process.platform == "win32" ? ".exe" : ""}`,
[ target_script_source ],
{ stdio: "inherit" }
);
this.#child_process.on("exit", (code) => {
this.#terminated = true;
this.emit("terminate");
if (code != 0) {
this.#error = code;
this.emit("error", code);
}
});
}
halt() {
if (this.#terminated) {
throw new Error(TargetprogramError.TargetNotRunning);
}
this.#child_process.kill('SIGINT');
}
get error() {
return this.#error;
}
}
export function initialize_target_directory() {
if (!file_system.existsSync(target_directory_path)) {
throw new Error(TargetInitializationError.TargetDirectoryAlreadyExists);
}
file_system.mkdirSync(target_directory_path, { recursive: true });
}
export function run_target() {
if (!file_system.existsSync(target_directory_path)) {
throw new Error(RunTargetError.TargetDirectoryMissing);
}
if (!file_system.existsSync(target_path)) {
throw new Error(RunTargetError.TargetNotCompiled);
}
return new TargetProgram(target_path);
}
export function get_project_package() {
if (!file_system.existsSync(package_path)) {
throw new Error(ProjectPackageError.PackageMissing);
}
const contents = file_system.readFileSync(
package_path,
{
encoding: "utf8",
flag: "r"
}
);
try {
return JSON.parse(contents);
} catch (_) {
throw new Error(ProjectPackageError.InvalidJsonContents);
}
}
export function compile_to_target() {
const package_json = get_project_package();
if (!package_json.main) {
throw new Error(CompileToTargetError.MissingPackageMainField);
}
esbuild.buildSync({
bundle: true,
entryPoints: [ package_json.main ],
outfile: target_path,
platform: "node",
format: "cjs",
external: [ "deasync" ]
});
}

View file

@ -1,12 +0,0 @@
import * as api from "./api.js";
console.log("Compilation started");
try {
api.compile_to_target();
} catch (error) {
console.error(`Failed to compile, Error: ${error}`);
process.exit(1);
}
console.log("Compiled successfully");

View file

@ -1,18 +0,0 @@
import * as api from "./api.js";
console.log("Compilation started");
try {
api.compile_to_target();
} catch (error) {
console.error(`Failed to compile, Error: ${error}`);
process.exit(1);
}
console.log("Compiled successfully");
try {
const target = api.run_target();
} catch (fault) {
console.error(`Failed to run target, Error: ${fault}`);
}

View file

@ -1,7 +0,0 @@
import * as api from "./api.js";
try {
const target = api.run_target();
} catch (fault) {
console.error(`Failed to run target, Error: ${fault}`);
}

View file

@ -6,17 +6,12 @@
"license": "ISC",
"type": "module",
"scripts": {
"compile": "node ./build/compile.js",
"target": "node ./build/target.js",
"compile": "npx tsc",
"target": "node ./target/discord-bot.js",
"start": "yarn run compile && yarn run target"
},
"dependencies": {
"@discordjs/builders": "^1.6.5",
"@discordjs/rest": "^2.0.1",
"@types/deasync": "^0.1.2",
"deasync": "^0.1.28",
"discord.js": "^14.13.0",
"esbuild": "^0.19.3",
"mongoose": "^7.5.2"
},
"devDependencies": {

15
source/commands/ping.ts Normal file
View file

@ -0,0 +1,15 @@
import { SlashCommandBuilder } from 'discord.js';
interface Command {
data: SlashCommandBuilder;
execute: (interaction: any) => Promise<void>;
}
export const command: Command = {
data: new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!'),
execute: async (interaction) => {
await interaction.reply('Pong!');
},
};
export default command;

13
source/commands/server.ts Normal file
View file

@ -0,0 +1,13 @@
import { SlashCommandBuilder } from 'discord.js';
interface Command {
data: SlashCommandBuilder;
execute: (interaction: any) => Promise<void>;
}
export const command: Command = {
data: new SlashCommandBuilder().setName('server').setDescription('Provides information about the server.'),
execute: async (interaction) => {
await interaction.reply(`This server is ${interaction.guild.name} and has ${interaction.guild.memberCount} members.`);
},
};

13
source/commands/user.ts Normal file
View file

@ -0,0 +1,13 @@
import { SlashCommandBuilder } from 'discord.js';
interface Command {
data: SlashCommandBuilder;
execute: (interaction: any) => Promise<void>;
}
export const command: Command = {
data: new SlashCommandBuilder().setName('user').setDescription('Provides information about the user.'),
execute: async (interaction) => {
await interaction.reply(`This command was run by ${interaction.user.username}, who joined on ${interaction.member.joinedAt}.`);
},
};

View file

@ -1,17 +1,70 @@
// Require the necessary discord.js classes
import { Client, Events, GatewayIntentBits } from 'discord.js';
import config from '../config.json' assert { type: 'json' };
import fs from'node:fs';
import path from 'node:path';
import { Client, Collection, Events, GatewayIntentBits } from'discord.js';
import config from './config.json' assert { type: 'json' };
import { deployCommands } from './util/deployCommand.js';
const { token } = config;
const { token, application_client_id, guild_id } = config;
// Create a new client instance
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const client: any = new Client({ intents: [GatewayIntentBits.Guilds] });
client.commands = new Collection();
try {
const __dirname = path.resolve();
const commandsPath = path.join(__dirname, '/target/commands/');
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const filePath = path.join('file://', commandsPath, file);
const commandModule = await import(filePath);
const command = commandModule.default;
if (command instanceof Object && 'data' in command && 'execute' in command) {
client.commands.set(command.data.name, command);
} else {
console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
}
}
} catch (error: any) {
console.log(`Error while getting commands up: ${error}`)
}
try {
await deployCommands({token, guild_id, application_client_id});
} catch (error: any) {
console.log(`Error while registering commands: ${error}`)
}
// When the client is ready, run this code (only once)
// We use 'c' for the event parameter to keep it separate from the already defined 'client'
client.once(Events.ClientReady, c => {
client.once(Events.ClientReady, (c: any) => {
console.log(`Ready! Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction: any) => {
if (!interaction.isChatInputCommand()) return;
const command = interaction.client.commands.get(interaction.commandName);
if (!command) {
console.error(`No command matching ${interaction.commandName} was found.`);
return;
}
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
} else {
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
}
}
});
// Log in to Discord with your client's token
client.login(token);

View file

@ -0,0 +1,44 @@
import { REST, Routes } from 'discord.js';
import fs from 'node:fs';
import path from 'node:path';
export async function deployCommands({token, guildId, clientId}: any) {
const commands = [];
const __dirname = path.resolve();
const commandsPath = path.join(__dirname, '/target/commands/');
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
for (const file of commandFiles) {
const filePath = path.join('file://', commandsPath, file);
const command = await import(filePath);
if (command instanceof Object && 'data' in command && 'execute' in command) {
commands.push(command.data.toJSON());
} else {
console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
}
}
// Construct and prepare an instance of the REST module
const rest = new REST().setToken(token);
// and deploy your commands!
(async () => {
try {
console.log(`Started refreshing ${commands.length} application (/) commands.`);
// The put method is used to fully refresh all commands in the guild with the current set
const data: any = await rest.put(
Routes.applicationGuildCommands(clientId, guildId),
{ body: commands },
);
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
// And of course, make sure you catch and log any errors!
console.error(error);
}
})();
}

View file

@ -25,9 +25,9 @@
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
"module": "esnext", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
"module": "esnext", /* Specify what module code is generated. */
"rootDir": "./source", /* Specify the root folder within your source files. */
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
@ -39,7 +39,7 @@
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
"resolveJsonModule": true, /* Enable importing .json files. */
"resolveJsonModule": true, /* Enable importing .json files. */
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
@ -55,7 +55,7 @@
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
// "outDir": "./dist", /* Specify an output folder for all emitted files. */
"outDir": "./target", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */

170
yarn.lock
View file

@ -69,116 +69,6 @@
tslib "^2.6.1"
ws "^8.13.0"
"@esbuild/android-arm64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.3.tgz#91a3b1b4a68c01ffdd5d8ffffb0a83178a366ae0"
integrity sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==
"@esbuild/android-arm@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.3.tgz#08bd09f2ebc312422f4e94ae954821f9cf37b39e"
integrity sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==
"@esbuild/android-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.3.tgz#b1dffec99ed5505fc57561e8758b449dba4924fe"
integrity sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==
"@esbuild/darwin-arm64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.3.tgz#2e0db5ad26313c7f420f2cd76d9d263fc49cb549"
integrity sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==
"@esbuild/darwin-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.3.tgz#ebe99f35049180023bb37999bddbe306b076a484"
integrity sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==
"@esbuild/freebsd-arm64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.3.tgz#cf8b58ba5173440ea6124a3d0278bfe4ce181c20"
integrity sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==
"@esbuild/freebsd-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.3.tgz#3f283099810ef1b8468cd1a9400c042e3f12e2a7"
integrity sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==
"@esbuild/linux-arm64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.3.tgz#a8b3aa69653ac504a51aa73739fb06de3a04d1ff"
integrity sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==
"@esbuild/linux-arm@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.3.tgz#ff6a2f68d4fc3ab46f614bca667a1a81ed6eea26"
integrity sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==
"@esbuild/linux-ia32@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.3.tgz#5813baf70e406304e8931b200e39d0293b488073"
integrity sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==
"@esbuild/linux-loong64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.3.tgz#21110f29b5e31dc865c7253fde8a2003f7e8b6fd"
integrity sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==
"@esbuild/linux-mips64el@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.3.tgz#4530fc416651eadeb1acc27003c00eac769eb8fd"
integrity sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==
"@esbuild/linux-ppc64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.3.tgz#facf910b0d397e391b37b01a1b4f6e363b04e56b"
integrity sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==
"@esbuild/linux-riscv64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.3.tgz#4a67abe97a495430d5867340982f5424a64f2aac"
integrity sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==
"@esbuild/linux-s390x@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.3.tgz#c5fb47474b9f816d81876c119dbccadf671cc5f6"
integrity sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==
"@esbuild/linux-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.3.tgz#f22d659969ab78dc422f1df8d9a79bc1e7b12ee3"
integrity sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==
"@esbuild/netbsd-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.3.tgz#e9b046934996991f46b8c1cadac815aa45f84fd4"
integrity sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==
"@esbuild/openbsd-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.3.tgz#b287ef4841fc1067bbbd9a60549e8f9cf1b7ee3a"
integrity sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==
"@esbuild/sunos-x64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.3.tgz#b2b8ba7d27907c7245f6e57dc62f3b88693f84b0"
integrity sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==
"@esbuild/win32-arm64@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.3.tgz#1974c8c180c9add4962235662c569fcc4c8f43dd"
integrity sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==
"@esbuild/win32-ia32@0.19.3":
version "0.19.3"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.3.tgz#b02cc2dd8b6aed042069680f01f45fdfd3de5bc4"
integrity sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==
"@esbuild/win32-x64@0.19.3":
version "0.19.3"
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.3.tgz"
integrity sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==
"@jridgewell/resolve-uri@^3.0.3":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
@ -242,11 +132,6 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
"@types/deasync@^0.1.2":
version "0.1.2"
resolved "https://registry.npmjs.org/@types/deasync/-/deasync-0.1.2.tgz"
integrity sha512-sCBFlGCEmZMPS06wdnQELcYzyUYio2K1Hp6g0fjJSKP1jkGKQpIdjRNUQAvdSCCJCWxIMCkX2CL7pi4BCm8Ydg==
"@types/node@*", "@types/node@^20.6.3":
version "20.6.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.3.tgz#5b763b321cd3b80f6b8dde7a37e1a77ff9358dd9"
@ -292,13 +177,6 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
bindings@^1.5.0:
version "1.5.0"
resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
dependencies:
file-uri-to-path "1.0.0"
bson@^5.4.0:
version "5.5.0"
resolved "https://registry.npmjs.org/bson/-/bson-5.5.0.tgz"
@ -316,14 +194,6 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
deasync@^0.1.28:
version "0.1.28"
resolved "https://registry.npmjs.org/deasync/-/deasync-0.1.28.tgz"
integrity sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==
dependencies:
bindings "^1.5.0"
node-addon-api "^1.7.1"
debug@4.x:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@ -343,7 +213,7 @@ discord-api-types@0.37.50:
discord.js@^14.13.0:
version "14.13.0"
resolved "https://registry.npmjs.org/discord.js/-/discord.js-14.13.0.tgz"
resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.13.0.tgz#e7a00bdba70adb9e266a06884ca1acaf9a0b5c20"
integrity sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==
dependencies:
"@discordjs/builders" "^1.6.5"
@ -361,44 +231,11 @@ discord.js@^14.13.0:
undici "5.22.1"
ws "^8.13.0"
esbuild@^0.19.3:
version "0.19.3"
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.3.tgz"
integrity sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==
optionalDependencies:
"@esbuild/android-arm" "0.19.3"
"@esbuild/android-arm64" "0.19.3"
"@esbuild/android-x64" "0.19.3"
"@esbuild/darwin-arm64" "0.19.3"
"@esbuild/darwin-x64" "0.19.3"
"@esbuild/freebsd-arm64" "0.19.3"
"@esbuild/freebsd-x64" "0.19.3"
"@esbuild/linux-arm" "0.19.3"
"@esbuild/linux-arm64" "0.19.3"
"@esbuild/linux-ia32" "0.19.3"
"@esbuild/linux-loong64" "0.19.3"
"@esbuild/linux-mips64el" "0.19.3"
"@esbuild/linux-ppc64" "0.19.3"
"@esbuild/linux-riscv64" "0.19.3"
"@esbuild/linux-s390x" "0.19.3"
"@esbuild/linux-x64" "0.19.3"
"@esbuild/netbsd-x64" "0.19.3"
"@esbuild/openbsd-x64" "0.19.3"
"@esbuild/sunos-x64" "0.19.3"
"@esbuild/win32-arm64" "0.19.3"
"@esbuild/win32-ia32" "0.19.3"
"@esbuild/win32-x64" "0.19.3"
fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
ip@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz"
@ -488,11 +325,6 @@ ms@2.1.3:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
node-addon-api@^1.7.1:
version "1.7.2"
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz"
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
punycode@^2.1.1:
version "2.3.0"
resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"