From 276ea9208ac8bf2d67168080063c091711147ce6 Mon Sep 17 00:00:00 2001 From: Elijah R Date: Fri, 12 Jul 2024 20:58:12 -0400 Subject: [PATCH] add discord webhook (and pin typescript to 5.4.5 due to a fun discord.js bug) --- server/config.example.toml | 4 + server/package.json | 5 +- server/src/config.ts | 8 +- server/src/discord.ts | 18 ++ server/src/index.ts | 10 +- server/src/ratelimiter.ts | 4 +- server/src/room.ts | 6 +- server/src/tts.ts | 2 +- yarn.lock | 428 ++++++++++++++++++++++++++----------- 9 files changed, 354 insertions(+), 131 deletions(-) create mode 100644 server/src/discord.ts diff --git a/server/config.example.toml b/server/config.example.toml index 5c7f257..6a9d999 100644 --- a/server/config.example.toml +++ b/server/config.example.toml @@ -32,6 +32,10 @@ html = """ """ +[discord] +enabled = false +webhookURL = "" + [tts] enabled = true # https://git.computernewb.com/computernewb/SAPIServer diff --git a/server/package.json b/server/package.json index dcab1a8..6902e4d 100644 --- a/server/package.json +++ b/server/package.json @@ -6,13 +6,14 @@ }, "packageManager": "yarn@4.2.2", "devDependencies": { - "@types/node": "^20.14.9", + "@types/node": "^20.14.10", "@types/ws": "^8.5.10", - "typescript": "^5.5.3" + "typescript": "5.4.5" }, "dependencies": { "@fastify/static": "^7.0.4", "@fastify/websocket": "^10.0.1", + "discord.js": "^14.15.3", "fastify": "^4.28.1", "html-entities": "^2.5.2", "mysql2": "^3.10.2", diff --git a/server/src/config.ts b/server/src/config.ts index 3c468a0..f9dbd19 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -6,7 +6,8 @@ export interface IConfig { } mysql: MySQLConfig; chat: ChatConfig; - motd: motdConfig + motd: motdConfig; + discord: DiscordConfig; tts: TTSConfig; agents: AgentConfig[]; } @@ -51,4 +52,9 @@ export interface MySQLConfig { username: string; password: string; database: string; +} + +export interface DiscordConfig { + enabled: boolean; + webhookURL: string; } \ No newline at end of file diff --git a/server/src/discord.ts b/server/src/discord.ts new file mode 100644 index 0000000..1a65ae3 --- /dev/null +++ b/server/src/discord.ts @@ -0,0 +1,18 @@ +import { WebhookClient } from "discord.js"; +import { DiscordConfig } from "./config.js"; + +export class DiscordLogger { + private webhook: WebhookClient; + + constructor(config: DiscordConfig) { + this.webhook = new WebhookClient({url: config.webhookURL}); + } + + logMsg(username: string, msg: string) { + this.webhook.send({ + username, + allowedMentions: {}, + content: msg, + }); + } +} \ No newline at end of file diff --git a/server/src/index.ts b/server/src/index.ts index a708e7c..b2df294 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -8,10 +8,10 @@ import { IConfig } from './config.js'; import * as fs from 'fs'; import { TTSClient } from './tts.js'; import path from 'path'; -import { fileURLToPath } from 'url'; import { isIP } from 'net'; import { Database } from './database.js'; import { MSAgentErrorMessage, MSAgentProtocolMessageType } from '@msagent-chat/protocol'; +import { DiscordLogger } from './discord.js'; let config: IConfig; let configPath: string; @@ -88,7 +88,13 @@ app.get("/api/motd/html", (req, res) => { return config.motd.html; }); -let room = new MSAgentChatRoom(config.chat, config.agents, db, tts); +// Discord +let discord = null; +if (config.discord.enabled) { + discord = new DiscordLogger(config.discord); +} + +let room = new MSAgentChatRoom(config.chat, config.agents, db, tts, discord); app.register(async app => { app.get("/api/socket", {websocket: true}, async (socket, req) => { diff --git a/server/src/ratelimiter.ts b/server/src/ratelimiter.ts index 8fd4877..fac0546 100644 --- a/server/src/ratelimiter.ts +++ b/server/src/ratelimiter.ts @@ -1,5 +1,5 @@ -import { EventEmitter } from 'events'; -import { RateLimitConfig } from './config'; +import { EventEmitter } from 'node:events'; +import { RateLimitConfig } from './config.js'; // Class to ratelimit a resource (chatting, logging in, etc) export default class RateLimiter extends EventEmitter { diff --git a/server/src/room.ts b/server/src/room.ts index 48204f6..86d13ae 100644 --- a/server/src/room.ts +++ b/server/src/room.ts @@ -4,6 +4,7 @@ import { TTSClient } from "./tts.js"; import { AgentConfig, ChatConfig } from "./config.js"; import * as htmlentities from 'html-entities'; import { Database } from "./database.js"; +import { DiscordLogger } from "./discord.js"; export class MSAgentChatRoom { agents: AgentConfig[]; @@ -12,13 +13,15 @@ export class MSAgentChatRoom { msgId : number = 0; config: ChatConfig; db: Database; + discord: DiscordLogger | null; - constructor(config: ChatConfig, agents: AgentConfig[], db: Database, tts: TTSClient | null) { + constructor(config: ChatConfig, agents: AgentConfig[], db: Database, tts: TTSClient | null, discord: DiscordLogger | null) { this.agents = agents; this.clients = []; this.config = config; this.tts = tts; this.db = db; + this.discord = discord; } addClient(client: Client) { @@ -79,6 +82,7 @@ export class MSAgentChatRoom { for (const _client of this.getActiveClients()) { _client.send(msg); } + this.discord?.logMsg(client.username!, message); }); client.on('admin', () => { let msg: MSAgentPromoteMessage = { diff --git a/server/src/tts.ts b/server/src/tts.ts index 5b589c1..3bf7a91 100644 --- a/server/src/tts.ts +++ b/server/src/tts.ts @@ -1,7 +1,7 @@ import path from "path"; import * as fs from 'fs/promises'; import { TTSConfig } from "./config.js"; -import { Readable } from "stream"; +import { Readable } from "node:stream"; import { ReadableStream } from 'node:stream/web'; import { finished } from "node:stream/promises"; diff --git a/yarn.lock b/yarn.lock index d7d2702..ce667c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,6 +34,85 @@ __metadata: languageName: node linkType: hard +"@discordjs/builders@npm:^1.8.2": + version: 1.8.2 + resolution: "@discordjs/builders@npm:1.8.2" + dependencies: + "@discordjs/formatters": "npm:^0.4.0" + "@discordjs/util": "npm:^1.1.0" + "@sapphire/shapeshift": "npm:^3.9.7" + discord-api-types: "npm:0.37.83" + fast-deep-equal: "npm:^3.1.3" + ts-mixer: "npm:^6.0.4" + tslib: "npm:^2.6.2" + checksum: 10c0/108fe8903e9bc875a28b39629589391e44f41835169114e93c15548b5635632862168d4bec3392eac12e981d06b830d90f11b7af38fd664d7ea9cfa46b0726f3 + languageName: node + linkType: hard + +"@discordjs/collection@npm:1.5.3": + version: 1.5.3 + resolution: "@discordjs/collection@npm:1.5.3" + checksum: 10c0/54338e005e9a1c6a5c91464cbcc378a5bf74410ad5b8bba1961b80d0ec8f1eb1b768ea737ad03bcb62430ea84aa5561523318b739538b334115ed775630ca42c + languageName: node + linkType: hard + +"@discordjs/collection@npm:^2.1.0": + version: 2.1.0 + resolution: "@discordjs/collection@npm:2.1.0" + checksum: 10c0/537df017962d4b98a35768db0d47e457a3f64daf550921368f98d3fbd66358d76f00ce01eac61163841b353747e702d1e1ea8badfdc2fb5a412eae7e84b1c607 + languageName: node + linkType: hard + +"@discordjs/formatters@npm:^0.4.0": + version: 0.4.0 + resolution: "@discordjs/formatters@npm:0.4.0" + dependencies: + discord-api-types: "npm:0.37.83" + checksum: 10c0/9788e00559155f1767f85d02f14b0368affd4b7b86c1ff2207779906093ad9caf86cd74a60e681da5e762234b45fc9368c044247a484b4691cd652d5ff0d4f70 + languageName: node + linkType: hard + +"@discordjs/rest@npm:^2.3.0": + version: 2.3.0 + resolution: "@discordjs/rest@npm:2.3.0" + dependencies: + "@discordjs/collection": "npm:^2.1.0" + "@discordjs/util": "npm:^1.1.0" + "@sapphire/async-queue": "npm:^1.5.2" + "@sapphire/snowflake": "npm:^3.5.3" + "@vladfrangu/async_event_emitter": "npm:^2.2.4" + discord-api-types: "npm:0.37.83" + magic-bytes.js: "npm:^1.10.0" + tslib: "npm:^2.6.2" + undici: "npm:6.13.0" + checksum: 10c0/f971c16f4095fd9f092d8d73dfed788341823bc06901b5b6b3b15a65697dc6bff4cc6ade93bedc2c2a6e01d39dae8bac9ebbed59a3a336fdbf2d81a4e63d2581 + languageName: node + linkType: hard + +"@discordjs/util@npm:^1.1.0": + version: 1.1.0 + resolution: "@discordjs/util@npm:1.1.0" + checksum: 10c0/e4a7945b17eb86b3fa5bf49e49e0d0786c8f39e66bbeee19f01db4e817cf5a4761e684ec63a7d832722648d0e23236eeb21c450c34a11683102813a23701bda4 + languageName: node + linkType: hard + +"@discordjs/ws@npm:^1.1.1": + version: 1.1.1 + resolution: "@discordjs/ws@npm:1.1.1" + dependencies: + "@discordjs/collection": "npm:^2.1.0" + "@discordjs/rest": "npm:^2.3.0" + "@discordjs/util": "npm:^1.1.0" + "@sapphire/async-queue": "npm:^1.5.2" + "@types/ws": "npm:^8.5.10" + "@vladfrangu/async_event_emitter": "npm:^2.2.4" + discord-api-types: "npm:0.37.83" + tslib: "npm:^2.6.2" + ws: "npm:^8.16.0" + checksum: 10c0/57e46534e3ea8ba53c1fbd282d4f0aa03563e10244847f6e6393957a56d05ae0af52c43114d6a6e1d7a3f3127498b09efd69dd3da11abe5e4a5170ac2e269178 + languageName: node + linkType: hard + "@fastify/accept-negotiator@npm:^1.0.0": version: 1.1.0 resolution: "@fastify/accept-negotiator@npm:1.1.0" @@ -229,13 +308,14 @@ __metadata: dependencies: "@fastify/static": "npm:^7.0.4" "@fastify/websocket": "npm:^10.0.1" - "@types/node": "npm:^20.14.9" + "@types/node": "npm:^20.14.10" "@types/ws": "npm:^8.5.10" + discord.js: "npm:^14.15.3" fastify: "npm:^4.28.1" html-entities: "npm:^2.5.2" mysql2: "npm:^3.10.2" toml: "npm:^3.0.0" - typescript: "npm:^5.5.3" + typescript: "npm:5.4.5" ws: "npm:^8.17.1" languageName: unknown linkType: soft @@ -1195,90 +1275,114 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-darwin-arm64@npm:1.6.6" +"@sapphire/async-queue@npm:^1.5.2": + version: 1.5.2 + resolution: "@sapphire/async-queue@npm:1.5.2" + checksum: 10c0/e588a70efe7993a85e3e81103f3f9c3c2c12dd6f3ab2a0f0b763fa412a99780db7a9e1560f188c77945e5e561a40be53120f49b5d83dfa88dd2cf02955e46647 + languageName: node + linkType: hard + +"@sapphire/shapeshift@npm:^3.9.7": + version: 3.9.7 + resolution: "@sapphire/shapeshift@npm:3.9.7" + dependencies: + fast-deep-equal: "npm:^3.1.3" + lodash: "npm:^4.17.21" + checksum: 10c0/29883d4c1986714fd4b2a7e4a58bf30a4598a02bbe031605dd99b766310a98889e2ae6f16bf37f43d91cf5960733dc1a619bfdaa85a96bc0ff9cc5ce57b8e689 + languageName: node + linkType: hard + +"@sapphire/snowflake@npm:3.5.3, @sapphire/snowflake@npm:^3.5.3": + version: 3.5.3 + resolution: "@sapphire/snowflake@npm:3.5.3" + checksum: 10c0/361b6a3e16eea4eb48b2608005ce397d4163065ccd84077059a0f609b97fb9cc52a173d7a64bbfce6f5d1e77be0f9704fd72ef64683a3dc7e455e9b4a1c90db1 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-darwin-arm64@npm:1.6.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-darwin-x64@npm:1.6.6" +"@swc/core-darwin-x64@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-darwin-x64@npm:1.6.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.6" +"@swc/core-linux-arm-gnueabihf@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.13" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-linux-arm64-gnu@npm:1.6.6" +"@swc/core-linux-arm64-gnu@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm64-gnu@npm:1.6.13" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-linux-arm64-musl@npm:1.6.6" +"@swc/core-linux-arm64-musl@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-arm64-musl@npm:1.6.13" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-linux-x64-gnu@npm:1.6.6" +"@swc/core-linux-x64-gnu@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-x64-gnu@npm:1.6.13" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-linux-x64-musl@npm:1.6.6" +"@swc/core-linux-x64-musl@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-linux-x64-musl@npm:1.6.13" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-win32-arm64-msvc@npm:1.6.6" +"@swc/core-win32-arm64-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-arm64-msvc@npm:1.6.13" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-win32-ia32-msvc@npm:1.6.6" +"@swc/core-win32-ia32-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-ia32-msvc@npm:1.6.13" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.6.6": - version: 1.6.6 - resolution: "@swc/core-win32-x64-msvc@npm:1.6.6" +"@swc/core-win32-x64-msvc@npm:1.6.13": + version: 1.6.13 + resolution: "@swc/core-win32-x64-msvc@npm:1.6.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.36": - version: 1.6.6 - resolution: "@swc/core@npm:1.6.6" + version: 1.6.13 + resolution: "@swc/core@npm:1.6.13" dependencies: - "@swc/core-darwin-arm64": "npm:1.6.6" - "@swc/core-darwin-x64": "npm:1.6.6" - "@swc/core-linux-arm-gnueabihf": "npm:1.6.6" - "@swc/core-linux-arm64-gnu": "npm:1.6.6" - "@swc/core-linux-arm64-musl": "npm:1.6.6" - "@swc/core-linux-x64-gnu": "npm:1.6.6" - "@swc/core-linux-x64-musl": "npm:1.6.6" - "@swc/core-win32-arm64-msvc": "npm:1.6.6" - "@swc/core-win32-ia32-msvc": "npm:1.6.6" - "@swc/core-win32-x64-msvc": "npm:1.6.6" + "@swc/core-darwin-arm64": "npm:1.6.13" + "@swc/core-darwin-x64": "npm:1.6.13" + "@swc/core-linux-arm-gnueabihf": "npm:1.6.13" + "@swc/core-linux-arm64-gnu": "npm:1.6.13" + "@swc/core-linux-arm64-musl": "npm:1.6.13" + "@swc/core-linux-x64-gnu": "npm:1.6.13" + "@swc/core-linux-x64-musl": "npm:1.6.13" + "@swc/core-win32-arm64-msvc": "npm:1.6.13" + "@swc/core-win32-ia32-msvc": "npm:1.6.13" + "@swc/core-win32-x64-msvc": "npm:1.6.13" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.9" peerDependencies: @@ -1307,7 +1411,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/7e46e9f81218abfda9230bc6f4aeaf86ac811c6d8441ca936669da0f182c1f5863b6611d35e4e3b649eb0d395a199b8955d823b7c572eb2203a6b191e86ccfe0 + checksum: 10c0/679fe7fd80370601b5be999636a16052608fff7c039738016f3382bb307e7f48af2e465f8a6d4c1202778d4c1e324feabfd3033ebed4e5b0e3c19bdff5f7f2fb languageName: node linkType: hard @@ -1343,12 +1447,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.14.9": - version: 20.14.9 - resolution: "@types/node@npm:20.14.9" +"@types/node@npm:*, @types/node@npm:^20.14.10": + version: 20.14.10 + resolution: "@types/node@npm:20.14.10" dependencies: undici-types: "npm:~5.26.4" - checksum: 10c0/911ffa444dc032897f4a23ed580c67903bd38ea1c5ec99b1d00fa10b83537a3adddef8e1f29710cbdd8e556a61407ed008e06537d834e48caf449ce59f87d387 + checksum: 10c0/0b06cff14365c2d0085dc16cc8cbea5c40ec09cfc1fea966be9eeecf35562760bfde8f88e86de6edfaf394501236e229d9c1084fad04fb4dec472ae245d8ae69 languageName: node linkType: hard @@ -1361,6 +1465,13 @@ __metadata: languageName: node linkType: hard +"@vladfrangu/async_event_emitter@npm:^2.2.4": + version: 2.4.3 + resolution: "@vladfrangu/async_event_emitter@npm:2.4.3" + checksum: 10c0/ba72ea5cb02d6e1d86cfd88e38f2b2fba27b3391d72dc06eb6d56e021f0a8843cc092b94b35171a8419d4b857aa7335b755b8f0b737f12e7fb8f7821151ae4dc + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -1439,14 +1550,14 @@ __metadata: linkType: hard "ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.11.0": - version: 8.16.0 - resolution: "ajv@npm:8.16.0" + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 10c0/6fc38aa8fd4fbfaa7096ac049e48c0cb440db36b76fef2d7d5b7d92b102735670d055d412d19176c08c9d48eaa9d06661b67e59f04943dc71ab1551e0484f88c + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 languageName: node linkType: hard @@ -1521,11 +1632,11 @@ __metadata: linkType: hard "base-x@npm:^3.0.8": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" + version: 3.0.10 + resolution: "base-x@npm:3.0.10" dependencies: safe-buffer: "npm:^5.0.1" - checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a + checksum: 10c0/a13a34b71439ee5381667efa630b3bf640cf17f632c5ba01990483367592e72f247d7fb4f8c6d0e3ff8c0fb7224b3ac682ff5be09b87063a45b3968f0457e563 languageName: node linkType: hard @@ -1573,16 +1684,16 @@ __metadata: linkType: hard "browserslist@npm:^4.6.6": - version: 4.23.1 - resolution: "browserslist@npm:4.23.1" + version: 4.23.2 + resolution: "browserslist@npm:4.23.2" dependencies: - caniuse-lite: "npm:^1.0.30001629" - electron-to-chromium: "npm:^1.4.796" + caniuse-lite: "npm:^1.0.30001640" + electron-to-chromium: "npm:^1.4.820" node-releases: "npm:^2.0.14" - update-browserslist-db: "npm:^1.0.16" + update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10c0/eb47c7ab9d60db25ce2faca70efeb278faa7282a2f62b7f2fa2f92e5f5251cf65144244566c86559419ff4f6d78f59ea50e39911321ad91f3b27788901f1f5e9 + checksum: 10c0/0217d23c69ed61cdd2530c7019bf7c822cd74c51f8baab18dd62457fed3129f52499f8d3a6f809ae1fb7bb3050aa70caa9a529cc36c7478427966dbf429723a5 languageName: node linkType: hard @@ -1607,8 +1718,8 @@ __metadata: linkType: hard "cacache@npm:^18.0.0": - version: 18.0.3 - resolution: "cacache@npm:18.0.3" + version: 18.0.4 + resolution: "cacache@npm:18.0.4" dependencies: "@npmcli/fs": "npm:^3.1.0" fs-minipass: "npm:^3.0.0" @@ -1622,7 +1733,7 @@ __metadata: ssri: "npm:^10.0.0" tar: "npm:^6.1.11" unique-filename: "npm:^3.0.0" - checksum: 10c0/dfda92840bb371fb66b88c087c61a74544363b37a265023223a99965b16a16bbb87661fe4948718d79df6e0cc04e85e62784fbcf1832b2a5e54ff4c46fbb45b7 + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f languageName: node linkType: hard @@ -1633,10 +1744,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001629": - version: 1.0.30001639 - resolution: "caniuse-lite@npm:1.0.30001639" - checksum: 10c0/3f56ce3d516a4fba959ad10ed6ecb15c6329233fc01f9f2714234a2ca91f408296d708a366ece510ca6566f71cb80d20d4c019441a1451ac1456e0128c8de78a +"caniuse-lite@npm:^1.0.30001640": + version: 1.0.30001641 + resolution: "caniuse-lite@npm:1.0.30001641" + checksum: 10c0/a065b641cfcc84b36955ee909bfd7313ad103d6a299f0fd261e0e4160e8f1cec79d685c5a9f11097a77687cf47154eddb8133163f2a34bcb8d73c45033a014d2 languageName: node linkType: hard @@ -1896,6 +2007,33 @@ __metadata: languageName: node linkType: hard +"discord-api-types@npm:0.37.83": + version: 0.37.83 + resolution: "discord-api-types@npm:0.37.83" + checksum: 10c0/cc1fd6c27a4076a47b1dae71212da52dd2265785edc3b099e3f0b05dae1df469e1a90e8159beff8fbdb37d65324cae4196625568541df6b9afdc80c300936ed6 + languageName: node + linkType: hard + +"discord.js@npm:^14.15.3": + version: 14.15.3 + resolution: "discord.js@npm:14.15.3" + dependencies: + "@discordjs/builders": "npm:^1.8.2" + "@discordjs/collection": "npm:1.5.3" + "@discordjs/formatters": "npm:^0.4.0" + "@discordjs/rest": "npm:^2.3.0" + "@discordjs/util": "npm:^1.1.0" + "@discordjs/ws": "npm:^1.1.1" + "@sapphire/snowflake": "npm:3.5.3" + discord-api-types: "npm:0.37.83" + fast-deep-equal: "npm:3.1.3" + lodash.snakecase: "npm:4.1.1" + tslib: "npm:2.6.2" + undici: "npm:6.13.0" + checksum: 10c0/21a4e28541c29bf7170835f42cebc684e83615221f3c1262677e1f363e8fd28e7367e35bceabaea15873d965aecf0a832df6d572790ddec104bd0e025d11bdb8 + languageName: node + linkType: hard + "dom-serializer@npm:^1.0.1": version: 1.4.1 resolution: "dom-serializer@npm:1.4.1" @@ -1967,10 +2105,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.796": - version: 1.4.816 - resolution: "electron-to-chromium@npm:1.4.816" - checksum: 10c0/1a84bc42234484cbc5e8b521de57fd3ab9984a2111d8605eab26b3525f382c0c7b83b45bf8b34e5fa4a730cd183fef5dffa4a0627754c7f4fb0aae9cb3c16b37 +"electron-to-chromium@npm:^1.4.820": + version: 1.4.827 + resolution: "electron-to-chromium@npm:1.4.827" + checksum: 10c0/e37719d8f13da78eb2bc68184cdf73d167ecf413abc28afef2b0a5c55866293752fda980d83a5f42b5780781bde418b24c12e1c38f2662d25ed1c2f71880bc24 languageName: node linkType: hard @@ -2106,7 +2244,7 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.3": +"fast-deep-equal@npm:3.1.3, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 @@ -2151,6 +2289,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.1 + resolution: "fast-uri@npm:3.0.1" + checksum: 10c0/3cd46d6006083b14ca61ffe9a05b8eef75ef87e9574b6f68f2e17ecf4daa7aaadeff44e3f0f7a0ef4e0f7e7c20fc07beec49ff14dc72d0b500f00386592f2d10 + languageName: node + linkType: hard + "fastify-plugin@npm:^4.0.0": version: 4.5.1 resolution: "fastify-plugin@npm:4.5.1" @@ -2277,8 +2422,8 @@ __metadata: linkType: hard "glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.4": - version: 10.4.2 - resolution: "glob@npm:10.4.2" + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: "npm:^3.1.0" jackspeak: "npm:^3.1.2" @@ -2288,7 +2433,7 @@ __metadata: path-scurry: "npm:^1.11.1" bin: glob: dist/esm/bin.mjs - checksum: 10c0/2c7296695fa75a935f3ad17dc62e4e170a8bb8752cf64d328be8992dd6ad40777939003754e10e9741ff8fbe43aa52fba32d6930d0ffa0e3b74bc3fb5eebaa2f + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e languageName: node linkType: hard @@ -2569,15 +2714,15 @@ __metadata: linkType: hard "jackspeak@npm:^3.1.2": - version: 3.4.0 - resolution: "jackspeak@npm:3.4.0" + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" dependencies: "@isaacs/cliui": "npm:^8.0.2" "@pkgjs/parseargs": "npm:^0.11.0" dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 10c0/7e42d1ea411b4d57d43ea8a6afbca9224382804359cb72626d0fc45bb8db1de5ad0248283c3db45fe73e77210750d4fcc7c2b4fe5d24fda94aaa24d658295c5f + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 languageName: node linkType: hard @@ -2791,6 +2936,20 @@ __metadata: languageName: node linkType: hard +"lodash.snakecase@npm:4.1.1": + version: 4.1.1 + resolution: "lodash.snakecase@npm:4.1.1" + checksum: 10c0/f0b3f2497eb20eea1a1cfc22d645ecaeb78ac14593eb0a40057977606d2f35f7aaff0913a06553c783b535aafc55b718f523f9eb78f8d5293f492af41002eaf9 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + "long@npm:^5.2.1": version: 5.2.3 resolution: "long@npm:5.2.3" @@ -2799,9 +2958,9 @@ __metadata: linkType: hard "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.3.0 - resolution: "lru-cache@npm:10.3.0" - checksum: 10c0/02d57024d90672774d66e0b76328a8975483b782c68118078363be17b8e0efb4f2bee89d98ce87e72f42d68fe7cb4ad14b1205d43e4f9954f5c91e3be4eaceb8 + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb languageName: node linkType: hard @@ -2819,6 +2978,13 @@ __metadata: languageName: node linkType: hard +"magic-bytes.js@npm:^1.10.0": + version: 1.10.0 + resolution: "magic-bytes.js@npm:1.10.0" + checksum: 10c0/aa751a9be6baa80da19b395a4c538e1dcf652a3760a2e507b9e04c4cb3832635b718f8a947e5b0a434a1b323792632002f98815b3389f0beb3af1c4d51eb339e + languageName: node + linkType: hard + "make-fetch-happen@npm:^13.0.0": version: 13.0.1 resolution: "make-fetch-happen@npm:13.0.1" @@ -3122,11 +3288,11 @@ __metadata: linkType: hard "node-addon-api@npm:^7.0.0": - version: 7.1.0 - resolution: "node-addon-api@npm:7.1.0" + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" dependencies: node-gyp: "npm:latest" - checksum: 10c0/2e096ab079e3c46d33b0e252386e9c239c352f7cc6d75363d9a3c00bdff34c1a5da170da861917512843f213c32d024ced9dc9552b968029786480d18727ec66 + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 languageName: node linkType: hard @@ -3157,8 +3323,8 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.1.0 - resolution: "node-gyp@npm:10.1.0" + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" @@ -3166,13 +3332,13 @@ __metadata: graceful-fs: "npm:^4.2.6" make-fetch-happen: "npm:^13.0.0" nopt: "npm:^7.0.0" - proc-log: "npm:^3.0.0" + proc-log: "npm:^4.1.0" semver: "npm:^7.3.5" - tar: "npm:^6.1.2" + tar: "npm:^6.2.1" which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b languageName: node linkType: hard @@ -3429,14 +3595,7 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc - languageName: node - linkType: hard - -"proc-log@npm:^4.2.0": +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": version: 4.2.0 resolution: "proc-log@npm:4.2.0" checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 @@ -3487,13 +3646,6 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 - languageName: node - linkType: hard - "quick-format-unescaped@npm:^4.0.3": version: 4.0.4 resolution: "quick-format-unescaped@npm:4.0.4" @@ -3971,7 +4123,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": +"tar@npm:^6.1.11, tar@npm:^6.2.1": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -4038,7 +4190,21 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0": +"ts-mixer@npm:^6.0.4": + version: 6.0.4 + resolution: "ts-mixer@npm:6.0.4" + checksum: 10c0/4c442fc99cdffd4a3f0ce55c624fb703f4ded5cab6912f97705489565c4a74d3e4213f10c33499ec5150900a628d38537a9a6a9e35b5045b65129a84b4db21ae + languageName: node + linkType: hard + +"tslib@npm:2.6.2": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb + languageName: node + linkType: hard + +"tslib@npm:^2.4.0, tslib@npm:^2.6.2": version: 2.6.3 resolution: "tslib@npm:2.6.3" checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a @@ -4061,6 +4227,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:5.4.5": + version: 5.4.5 + resolution: "typescript@npm:5.4.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e + languageName: node + linkType: hard + "typescript@npm:>=3.0.0, typescript@npm:^5.5.3": version: 5.5.3 resolution: "typescript@npm:5.5.3" @@ -4071,6 +4247,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A5.4.5#optional!builtin": + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9 + languageName: node + linkType: hard + "typescript@patch:typescript@npm%3A>=3.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.5.3#optional!builtin": version: 5.5.3 resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=b45daf" @@ -4088,6 +4274,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:6.13.0": + version: 6.13.0 + resolution: "undici@npm:6.13.0" + checksum: 10c0/b1b0456e7d4e87fd4f71a2a0716d8ea826f024fbcf16b7c6185194ca138cb822c20db509ed18c837fffcd9ffc3d74004ad6f950ebc895ff81ebb5ca6bf001cb2 + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -4106,7 +4299,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.16": +"update-browserslist-db@npm:^1.1.0": version: 1.1.0 resolution: "update-browserslist-db@npm:1.1.0" dependencies: @@ -4120,15 +4313,6 @@ __metadata: languageName: node linkType: hard -"uri-js@npm:^4.4.1": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - "util-deprecate@npm:^1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -4201,9 +4385,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.0.0, ws@npm:^8.17.1": - version: 8.17.1 - resolution: "ws@npm:8.17.1" +"ws@npm:^8.0.0, ws@npm:^8.16.0, ws@npm:^8.17.1": + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -4212,7 +4396,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10c0/f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 languageName: node linkType: hard