diff --git a/bundle/src/Server.ts b/src/Server.ts
index 165ab121..4d5d6422 100644
--- a/bundle/src/Server.ts
+++ b/src/Server.ts
@@ -10,7 +10,7 @@ import { green, bold, yellow } from "picocolors";
import { Config, getOrInitialiseDatabase } from "@fosscord/util";
import * as Sentry from "@sentry/node";
import * as Tracing from "@sentry/tracing";
-import { PluginLoader } from "@fosscord/util";
+// import { PluginLoader } from "@fosscord/util";
const app = express();
const server = http.createServer();
@@ -95,7 +95,7 @@ async function main() {
});
}
console.log(`[Server] ${green(`listening on port ${bold(port)}`)}`);
- PluginLoader.loadPlugins();
+ // PluginLoader.loadPlugins();
}
main().catch(console.error);
diff --git a/api/src/Server.ts b/src/api/Server.ts
index 136f9814..136f9814 100644
--- a/api/src/Server.ts
+++ b/src/api/Server.ts
diff --git a/api/src/global.d.ts b/src/api/global.d.ts
index 7751af8f..7751af8f 100644
--- a/api/src/global.d.ts
+++ b/src/api/global.d.ts
diff --git a/api/src/index.ts b/src/api/index.ts
index adc7649c..adc7649c 100644
--- a/api/src/index.ts
+++ b/src/api/index.ts
diff --git a/api/src/middlewares/Authentication.ts b/src/api/middlewares/Authentication.ts
index 2d9ccf57..2d9ccf57 100644
--- a/api/src/middlewares/Authentication.ts
+++ b/src/api/middlewares/Authentication.ts
diff --git a/api/src/middlewares/BodyParser.ts b/src/api/middlewares/BodyParser.ts
index 35db3c6f..35db3c6f 100644
--- a/api/src/middlewares/BodyParser.ts
+++ b/src/api/middlewares/BodyParser.ts
diff --git a/api/src/middlewares/CORS.ts b/src/api/middlewares/CORS.ts
index 20260cf9..20260cf9 100644
--- a/api/src/middlewares/CORS.ts
+++ b/src/api/middlewares/CORS.ts
diff --git a/api/src/middlewares/ErrorHandler.ts b/src/api/middlewares/ErrorHandler.ts
index 8a046e06..8a046e06 100644
--- a/api/src/middlewares/ErrorHandler.ts
+++ b/src/api/middlewares/ErrorHandler.ts
diff --git a/api/src/middlewares/RateLimit.ts b/src/api/middlewares/RateLimit.ts
index 47180b62..47180b62 100644
--- a/api/src/middlewares/RateLimit.ts
+++ b/src/api/middlewares/RateLimit.ts
diff --git a/api/src/middlewares/TestClient.ts b/src/api/middlewares/TestClient.ts
index 4fe631cb..a47ff396 100644
--- a/api/src/middlewares/TestClient.ts
+++ b/src/api/middlewares/TestClient.ts
@@ -7,11 +7,13 @@ import { Config } from "@fosscord/util";
import { AssetCacheItem } from "../util/entities/AssetCacheItem"
import { green } from "picocolors";
+const AssetsPath = path.join(__dirname, "..", "..", "..", "assets")
+
export default function TestClient(app: Application) {
const agent = new ProxyAgent();
//build client page
- let html = fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "index.html"), { encoding: "utf8" });
+ let html = fs.readFileSync(path.join(AssetsPath, "index.html"), { encoding: "utf8" });
html = applyEnv(html);
html = applyInlinePlugins(html);
html = applyPlugins(html);
@@ -19,7 +21,7 @@ export default function TestClient(app: Application) {
//load asset cache
let newAssetCache: Map<string, AssetCacheItem> = new Map<string, AssetCacheItem>();
- let assetCacheDir = path.join(__dirname, "..", "..", "assets", "cache");
+ let assetCacheDir = path.join(AssetsPath, "cache");
if(process.env.ASSET_CACHE_DIR)
assetCacheDir = process.env.ASSET_CACHE_DIR
@@ -32,7 +34,7 @@ export default function TestClient(app: Application) {
newAssetCache = new Map<string, AssetCacheItem>(Object.entries(JSON.parse(rawdata.toString())));
}
- app.use("/assets", express.static(path.join(__dirname, "..", "..", "assets")));
+ app.use("/assets", express.static(path.join(AssetsPath)));
app.get("/assets/:file", async (req: Request, res: Response) => {
delete req.headers.host;
let response: FetchResponse;
@@ -113,7 +115,7 @@ function applyEnv(html: string): string {
function applyPlugins(html: string): string {
// plugins
- let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "plugins"));
+ let files = fs.readdirSync(path.join(AssetsPath, "plugins"));
let plugins = "";
files.forEach(x =>{if(x.endsWith(".js")) plugins += `<script src='/assets/plugins/${x}'></script>\n`; });
return html.replaceAll("<!-- plugin marker -->", plugins);
@@ -121,7 +123,7 @@ function applyPlugins(html: string): string {
function applyInlinePlugins(html: string): string{
// inline plugins
- let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "inline-plugins"));
+ let files = fs.readdirSync(path.join(AssetsPath, "inline-plugins"));
let plugins = "";
files.forEach(x =>{if(x.endsWith(".js")) plugins += `<script src='/assets/inline-plugins/${x}'></script>\n\n`; });
return html.replaceAll("<!-- inline plugin marker -->", plugins);
@@ -129,9 +131,9 @@ function applyInlinePlugins(html: string): string{
function applyPreloadPlugins(html: string): string{
//preload plugins
- let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "preload-plugins"));
+ let files = fs.readdirSync(path.join(AssetsPath, "preload-plugins"));
let plugins = "";
- files.forEach(x =>{if(x.endsWith(".js")) plugins += `<script>${fs.readFileSync(path.join(__dirname, "..", "..", "assets", "preload-plugins", x))}</script>\n`; });
+ files.forEach(x =>{if(x.endsWith(".js")) plugins += `<script>${fs.readFileSync(path.join(AssetsPath, "preload-plugins", x))}</script>\n`; });
return html.replaceAll("<!-- preload plugin marker -->", plugins);
}
diff --git a/api/src/middlewares/Translation.ts b/src/api/middlewares/Translation.ts
index baabf221..64b03bf8 100644
--- a/api/src/middlewares/Translation.ts
+++ b/src/api/middlewares/Translation.ts
@@ -6,8 +6,8 @@ import i18nextBackend from "i18next-node-fs-backend";
import { Router } from "express";
export async function initTranslation(router: Router) {
- const languages = fs.readdirSync(path.join(__dirname, "..", "..", "locales"));
- const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "locales", "en"));
+ const languages = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales"));
+ const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales", "en"));
const ns = namespaces.filter((x) => x.endsWith(".json")).map((x) => x.slice(0, x.length - 5));
await i18next
@@ -19,7 +19,7 @@ export async function initTranslation(router: Router) {
fallbackLng: "en",
ns,
backend: {
- loadPath: __dirname + "/../../locales/{{lng}}/{{ns}}.json"
+ loadPath: __dirname + "/../../../assets/locales/{{lng}}/{{ns}}.json"
},
load: "all"
});
diff --git a/api/src/middlewares/index.ts b/src/api/middlewares/index.ts
index f0c50dbe..f0c50dbe 100644
--- a/api/src/middlewares/index.ts
+++ b/src/api/middlewares/index.ts
diff --git a/api/src/routes/-/healthz.ts b/src/api/routes/-/healthz.ts
index f7bcfebf..f7bcfebf 100644
--- a/api/src/routes/-/healthz.ts
+++ b/src/api/routes/-/healthz.ts
diff --git a/api/src/routes/-/readyz.ts b/src/api/routes/-/readyz.ts
index f7bcfebf..f7bcfebf 100644
--- a/api/src/routes/-/readyz.ts
+++ b/src/api/routes/-/readyz.ts
diff --git a/api/src/routes/applications/#id/entitlements.ts b/src/api/routes/applications/#id/entitlements.ts
index cfcfe40f..cfcfe40f 100644
--- a/api/src/routes/applications/#id/entitlements.ts
+++ b/src/api/routes/applications/#id/entitlements.ts
diff --git a/api/src/routes/applications/detectable.ts b/src/api/routes/applications/detectable.ts
index 28ce42da..28ce42da 100644
--- a/api/src/routes/applications/detectable.ts
+++ b/src/api/routes/applications/detectable.ts
diff --git a/api/src/routes/applications/index.ts b/src/api/routes/applications/index.ts
index 033dcc51..033dcc51 100644
--- a/api/src/routes/applications/index.ts
+++ b/src/api/routes/applications/index.ts
diff --git a/api/src/routes/auth/location-metadata.ts b/src/api/routes/auth/location-metadata.ts
index f4c2bd16..f4c2bd16 100644
--- a/api/src/routes/auth/location-metadata.ts
+++ b/src/api/routes/auth/location-metadata.ts
diff --git a/api/src/routes/auth/login.ts b/src/api/routes/auth/login.ts
index 9fc5924d..9fc5924d 100644
--- a/api/src/routes/auth/login.ts
+++ b/src/api/routes/auth/login.ts
diff --git a/api/src/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts
index 421dbafa..421dbafa 100644
--- a/api/src/routes/auth/mfa/totp.ts
+++ b/src/api/routes/auth/mfa/totp.ts
diff --git a/api/src/routes/auth/register.ts b/src/api/routes/auth/register.ts
index 09366a12..09366a12 100644
--- a/api/src/routes/auth/register.ts
+++ b/src/api/routes/auth/register.ts
diff --git a/api/src/routes/channels/#channel_id/followers.ts b/src/api/routes/channels/#channel_id/followers.ts
index 641af4f8..641af4f8 100644
--- a/api/src/routes/channels/#channel_id/followers.ts
+++ b/src/api/routes/channels/#channel_id/followers.ts
diff --git a/api/src/routes/channels/#channel_id/index.ts b/src/api/routes/channels/#channel_id/index.ts
index bb8b868b..bb8b868b 100644
--- a/api/src/routes/channels/#channel_id/index.ts
+++ b/src/api/routes/channels/#channel_id/index.ts
diff --git a/api/src/routes/channels/#channel_id/invites.ts b/src/api/routes/channels/#channel_id/invites.ts
index b5c65c0d..b5c65c0d 100644
--- a/api/src/routes/channels/#channel_id/invites.ts
+++ b/src/api/routes/channels/#channel_id/invites.ts
diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts
index 041f4d5e..041f4d5e 100644
--- a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts
diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts
index b2cb6763..b2cb6763 100644
--- a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts
diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts
index d7e27062..d7e27062 100644
--- a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts
diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts
index d0ab35bb..d0ab35bb 100644
--- a/api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts
diff --git a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
index 24a33d2d..af44b522 100644
--- a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts
+++ b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
@@ -13,7 +13,7 @@ export default router;
// https://discord.com/developers/docs/resources/channel#bulk-delete-messages
router.post("/", route({ body: "BulkDeleteSchema" }), async (req: Request, res: Response) => {
const { channel_id } = req.params;
- const channel = await Channel.findOneByOrFail({ id: channel_id });
+ const channel = await Channel.findOneOrFail({where:{ id: channel_id} });
if (!channel.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400);
const rights = await getRights(req.user_id);
diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts
index 9ab0d97d..9ab0d97d 100644
--- a/api/src/routes/channels/#channel_id/messages/index.ts
+++ b/src/api/routes/channels/#channel_id/messages/index.ts
diff --git a/api/src/routes/channels/#channel_id/permissions.ts b/src/api/routes/channels/#channel_id/permissions.ts
index 34052fe5..34052fe5 100644
--- a/api/src/routes/channels/#channel_id/permissions.ts
+++ b/src/api/routes/channels/#channel_id/permissions.ts
diff --git a/api/src/routes/channels/#channel_id/pins.ts b/src/api/routes/channels/#channel_id/pins.ts
index 003638c5..003638c5 100644
--- a/api/src/routes/channels/#channel_id/pins.ts
+++ b/src/api/routes/channels/#channel_id/pins.ts
diff --git a/api/src/routes/channels/#channel_id/purge.ts b/src/api/routes/channels/#channel_id/purge.ts
index 1ef6e1d7..1ef6e1d7 100644
--- a/api/src/routes/channels/#channel_id/purge.ts
+++ b/src/api/routes/channels/#channel_id/purge.ts
diff --git a/api/src/routes/channels/#channel_id/recipients.ts b/src/api/routes/channels/#channel_id/recipients.ts
index 069212e2..069212e2 100644
--- a/api/src/routes/channels/#channel_id/recipients.ts
+++ b/src/api/routes/channels/#channel_id/recipients.ts
diff --git a/api/src/routes/channels/#channel_id/typing.ts b/src/api/routes/channels/#channel_id/typing.ts
index 99460f6e..99460f6e 100644
--- a/api/src/routes/channels/#channel_id/typing.ts
+++ b/src/api/routes/channels/#channel_id/typing.ts
diff --git a/api/src/routes/channels/#channel_id/webhooks.ts b/src/api/routes/channels/#channel_id/webhooks.ts
index b11c8eb9..b11c8eb9 100644
--- a/api/src/routes/channels/#channel_id/webhooks.ts
+++ b/src/api/routes/channels/#channel_id/webhooks.ts
diff --git a/api/src/routes/discoverable-guilds.ts b/src/api/routes/discoverable-guilds.ts
index 35ecf28c..35ecf28c 100644
--- a/api/src/routes/discoverable-guilds.ts
+++ b/src/api/routes/discoverable-guilds.ts
diff --git a/api/src/routes/discovery.ts b/src/api/routes/discovery.ts
index 30c418c6..30c418c6 100644
--- a/api/src/routes/discovery.ts
+++ b/src/api/routes/discovery.ts
diff --git a/api/src/routes/downloads.ts b/src/api/routes/downloads.ts
index 44530353..44530353 100644
--- a/api/src/routes/downloads.ts
+++ b/src/api/routes/downloads.ts
diff --git a/api/src/routes/experiments.ts b/src/api/routes/experiments.ts
index fcbd9271..fcbd9271 100644
--- a/api/src/routes/experiments.ts
+++ b/src/api/routes/experiments.ts
diff --git a/api/src/routes/gateway/bot.ts b/src/api/routes/gateway/bot.ts
index f1dbb9df..f1dbb9df 100644
--- a/api/src/routes/gateway/bot.ts
+++ b/src/api/routes/gateway/bot.ts
diff --git a/api/src/routes/gateway/index.ts b/src/api/routes/gateway/index.ts
index 9bad7478..9bad7478 100644
--- a/api/src/routes/gateway/index.ts
+++ b/src/api/routes/gateway/index.ts
diff --git a/api/src/routes/gifs/search.ts b/src/api/routes/gifs/search.ts
index 1099dc4a..1099dc4a 100644
--- a/api/src/routes/gifs/search.ts
+++ b/src/api/routes/gifs/search.ts
diff --git a/api/src/routes/gifs/trending-gifs.ts b/src/api/routes/gifs/trending-gifs.ts
index 2b28d9d2..2b28d9d2 100644
--- a/api/src/routes/gifs/trending-gifs.ts
+++ b/src/api/routes/gifs/trending-gifs.ts
diff --git a/api/src/routes/gifs/trending.ts b/src/api/routes/gifs/trending.ts
index 61eb76c4..61eb76c4 100644
--- a/api/src/routes/gifs/trending.ts
+++ b/src/api/routes/gifs/trending.ts
diff --git a/api/src/routes/guild-recommendations.ts b/src/api/routes/guild-recommendations.ts
index bd0140d6..bd0140d6 100644
--- a/api/src/routes/guild-recommendations.ts
+++ b/src/api/routes/guild-recommendations.ts
diff --git a/api/src/routes/guilds/#guild_id/audit-logs.ts b/src/api/routes/guilds/#guild_id/audit-logs.ts
index b54835fc..b54835fc 100644
--- a/api/src/routes/guilds/#guild_id/audit-logs.ts
+++ b/src/api/routes/guilds/#guild_id/audit-logs.ts
diff --git a/api/src/routes/guilds/#guild_id/bans.ts b/src/api/routes/guilds/#guild_id/bans.ts
index 3d405344..3d405344 100644
--- a/api/src/routes/guilds/#guild_id/bans.ts
+++ b/src/api/routes/guilds/#guild_id/bans.ts
diff --git a/api/src/routes/guilds/#guild_id/channels.ts b/src/api/routes/guilds/#guild_id/channels.ts
index 8f2d3643..8f2d3643 100644
--- a/api/src/routes/guilds/#guild_id/channels.ts
+++ b/src/api/routes/guilds/#guild_id/channels.ts
diff --git a/api/src/routes/guilds/#guild_id/delete.ts b/src/api/routes/guilds/#guild_id/delete.ts
index e2624651..e2624651 100644
--- a/api/src/routes/guilds/#guild_id/delete.ts
+++ b/src/api/routes/guilds/#guild_id/delete.ts
diff --git a/api/src/routes/guilds/#guild_id/discovery-requirements.ts b/src/api/routes/guilds/#guild_id/discovery-requirements.ts
index ad20633f..ad20633f 100644
--- a/api/src/routes/guilds/#guild_id/discovery-requirements.ts
+++ b/src/api/routes/guilds/#guild_id/discovery-requirements.ts
diff --git a/api/src/routes/guilds/#guild_id/emojis.ts b/src/api/routes/guilds/#guild_id/emojis.ts
index 4bf4bdcd..4bf4bdcd 100644
--- a/api/src/routes/guilds/#guild_id/emojis.ts
+++ b/src/api/routes/guilds/#guild_id/emojis.ts
diff --git a/api/src/routes/guilds/#guild_id/index.ts b/src/api/routes/guilds/#guild_id/index.ts
index a9712c71..a9712c71 100644
--- a/api/src/routes/guilds/#guild_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/index.ts
diff --git a/api/src/routes/guilds/#guild_id/integrations.ts b/src/api/routes/guilds/#guild_id/integrations.ts
index 90650111..90650111 100644
--- a/api/src/routes/guilds/#guild_id/integrations.ts
+++ b/src/api/routes/guilds/#guild_id/integrations.ts
diff --git a/api/src/routes/guilds/#guild_id/invites.ts b/src/api/routes/guilds/#guild_id/invites.ts
index b7534e31..b7534e31 100644
--- a/api/src/routes/guilds/#guild_id/invites.ts
+++ b/src/api/routes/guilds/#guild_id/invites.ts
diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
index 794369d8..794369d8 100644
--- a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts
index a6c71333..a6c71333 100644
--- a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts
diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts
index 8f5ca7ba..8f5ca7ba 100644
--- a/api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts
diff --git a/api/src/routes/guilds/#guild_id/members/index.ts b/src/api/routes/guilds/#guild_id/members/index.ts
index 2ed28bda..2ed28bda 100644
--- a/api/src/routes/guilds/#guild_id/members/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/index.ts
diff --git a/api/src/routes/guilds/#guild_id/premium.ts b/src/api/routes/guilds/#guild_id/premium.ts
index 75361ac6..75361ac6 100644
--- a/api/src/routes/guilds/#guild_id/premium.ts
+++ b/src/api/routes/guilds/#guild_id/premium.ts
diff --git a/api/src/routes/guilds/#guild_id/prune.ts b/src/api/routes/guilds/#guild_id/prune.ts
index 673f022f..673f022f 100644
--- a/api/src/routes/guilds/#guild_id/prune.ts
+++ b/src/api/routes/guilds/#guild_id/prune.ts
diff --git a/api/src/routes/guilds/#guild_id/regions.ts b/src/api/routes/guilds/#guild_id/regions.ts
index 308d5ee5..308d5ee5 100644
--- a/api/src/routes/guilds/#guild_id/regions.ts
+++ b/src/api/routes/guilds/#guild_id/regions.ts
diff --git a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts
index d4422a9c..d4422a9c 100644
--- a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts
diff --git a/api/src/routes/guilds/#guild_id/roles/index.ts b/src/api/routes/guilds/#guild_id/roles/index.ts
index 17f0b5e9..17f0b5e9 100644
--- a/api/src/routes/guilds/#guild_id/roles/index.ts
+++ b/src/api/routes/guilds/#guild_id/roles/index.ts
diff --git a/api/src/routes/guilds/#guild_id/stickers.ts b/src/api/routes/guilds/#guild_id/stickers.ts
index 71c9dfcd..71c9dfcd 100644
--- a/api/src/routes/guilds/#guild_id/stickers.ts
+++ b/src/api/routes/guilds/#guild_id/stickers.ts
diff --git a/api/src/routes/guilds/#guild_id/templates.ts b/src/api/routes/guilds/#guild_id/templates.ts
index 9c79692d..9c79692d 100644
--- a/api/src/routes/guilds/#guild_id/templates.ts
+++ b/src/api/routes/guilds/#guild_id/templates.ts
diff --git a/api/src/routes/guilds/#guild_id/vanity-url.ts b/src/api/routes/guilds/#guild_id/vanity-url.ts
index ff92ce8d..ff92ce8d 100644
--- a/api/src/routes/guilds/#guild_id/vanity-url.ts
+++ b/src/api/routes/guilds/#guild_id/vanity-url.ts
diff --git a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts
index 28a9e8c1..28a9e8c1 100644
--- a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts
diff --git a/api/src/routes/guilds/#guild_id/webhooks.ts b/src/api/routes/guilds/#guild_id/webhooks.ts
index c8c1eb5c..c8c1eb5c 100644
--- a/api/src/routes/guilds/#guild_id/webhooks.ts
+++ b/src/api/routes/guilds/#guild_id/webhooks.ts
diff --git a/api/src/routes/guilds/#guild_id/welcome_screen.ts b/src/api/routes/guilds/#guild_id/welcome_screen.ts
index d08300ba..d08300ba 100644
--- a/api/src/routes/guilds/#guild_id/welcome_screen.ts
+++ b/src/api/routes/guilds/#guild_id/welcome_screen.ts
diff --git a/api/src/routes/guilds/#guild_id/widget.json.ts b/src/api/routes/guilds/#guild_id/widget.json.ts
index 37739418..37739418 100644
--- a/api/src/routes/guilds/#guild_id/widget.json.ts
+++ b/src/api/routes/guilds/#guild_id/widget.json.ts
diff --git a/api/src/routes/guilds/#guild_id/widget.png.ts b/src/api/routes/guilds/#guild_id/widget.png.ts
index ec0ac85c..a61d938d 100644
--- a/api/src/routes/guilds/#guild_id/widget.png.ts
+++ b/src/api/routes/guilds/#guild_id/widget.png.ts
@@ -34,7 +34,7 @@ router.get("/", route({}), async (req: Request, res: Response) => {
const sizeOf = require("image-size");
// TODO: Widget style templates need Fosscord branding
- const source = path.join(__dirname, "..", "..", "..", "..", "assets", "widget", `${style}.png`);
+ const source = path.join(__dirname, "..", "..", "..", "..", "..", "assets", "widget", `${style}.png`);
if (!fs.existsSync(source)) {
throw new HTTPError("Widget template does not exist.", 400);
}
diff --git a/api/src/routes/guilds/#guild_id/widget.ts b/src/api/routes/guilds/#guild_id/widget.ts
index dbb4cc0c..dbb4cc0c 100644
--- a/api/src/routes/guilds/#guild_id/widget.ts
+++ b/src/api/routes/guilds/#guild_id/widget.ts
diff --git a/api/src/routes/guilds/index.ts b/src/api/routes/guilds/index.ts
index e4d66192..e4d66192 100644
--- a/api/src/routes/guilds/index.ts
+++ b/src/api/routes/guilds/index.ts
diff --git a/api/src/routes/guilds/templates/index.ts b/src/api/routes/guilds/templates/index.ts
index 3a0de9e8..3a0de9e8 100644
--- a/api/src/routes/guilds/templates/index.ts
+++ b/src/api/routes/guilds/templates/index.ts
diff --git a/api/src/routes/invites/index.ts b/src/api/routes/invites/index.ts
index 1b434505..1b434505 100644
--- a/api/src/routes/invites/index.ts
+++ b/src/api/routes/invites/index.ts
diff --git a/api/src/routes/oauth2/tokens.ts b/src/api/routes/oauth2/tokens.ts
index bd284221..bd284221 100644
--- a/api/src/routes/oauth2/tokens.ts
+++ b/src/api/routes/oauth2/tokens.ts
diff --git a/api/src/routes/outbound-promotions.ts b/src/api/routes/outbound-promotions.ts
index 411e95bf..411e95bf 100644
--- a/api/src/routes/outbound-promotions.ts
+++ b/src/api/routes/outbound-promotions.ts
diff --git a/api/src/routes/partners/#guild_id/requirements.ts b/src/api/routes/partners/#guild_id/requirements.ts
index 545c5c78..545c5c78 100644
--- a/api/src/routes/partners/#guild_id/requirements.ts
+++ b/src/api/routes/partners/#guild_id/requirements.ts
diff --git a/api/src/routes/ping.ts b/src/api/routes/ping.ts
index 3c1da2c3..3c1da2c3 100644
--- a/api/src/routes/ping.ts
+++ b/src/api/routes/ping.ts
diff --git a/api/src/routes/policies/instance/domains.ts b/src/api/routes/policies/instance/domains.ts
index 20cd07ba..20cd07ba 100644
--- a/api/src/routes/policies/instance/domains.ts
+++ b/src/api/routes/policies/instance/domains.ts
diff --git a/api/src/routes/policies/instance/index.ts b/src/api/routes/policies/instance/index.ts
index e3da014f..e3da014f 100644
--- a/api/src/routes/policies/instance/index.ts
+++ b/src/api/routes/policies/instance/index.ts
diff --git a/api/src/routes/policies/instance/limits.ts b/src/api/routes/policies/instance/limits.ts
index 7de1476b..7de1476b 100644
--- a/api/src/routes/policies/instance/limits.ts
+++ b/src/api/routes/policies/instance/limits.ts
diff --git a/api/src/routes/scheduled-maintenances/upcoming_json.ts b/src/api/routes/scheduled-maintenances/upcoming_json.ts
index 83092e44..83092e44 100644
--- a/api/src/routes/scheduled-maintenances/upcoming_json.ts
+++ b/src/api/routes/scheduled-maintenances/upcoming_json.ts
diff --git a/api/src/routes/science.ts b/src/api/routes/science.ts
index 8556a3ad..8556a3ad 100644
--- a/api/src/routes/science.ts
+++ b/src/api/routes/science.ts
diff --git a/api/src/routes/stage-instances.ts b/src/api/routes/stage-instances.ts
index 411e95bf..411e95bf 100644
--- a/api/src/routes/stage-instances.ts
+++ b/src/api/routes/stage-instances.ts
diff --git a/api/src/routes/sticker-packs/index.ts b/src/api/routes/sticker-packs/index.ts
index e6560d12..e6560d12 100644
--- a/api/src/routes/sticker-packs/index.ts
+++ b/src/api/routes/sticker-packs/index.ts
diff --git a/api/src/routes/stickers/#sticker_id/index.ts b/src/api/routes/stickers/#sticker_id/index.ts
index b484a7a1..b484a7a1 100644
--- a/api/src/routes/stickers/#sticker_id/index.ts
+++ b/src/api/routes/stickers/#sticker_id/index.ts
diff --git a/api/src/routes/stop.ts b/src/api/routes/stop.ts
index 7f8b78ba..7f8b78ba 100644
--- a/api/src/routes/stop.ts
+++ b/src/api/routes/stop.ts
diff --git a/api/src/routes/store/published-listings/applications.ts b/src/api/routes/store/published-listings/applications.ts
index 060a4c3d..060a4c3d 100644
--- a/api/src/routes/store/published-listings/applications.ts
+++ b/src/api/routes/store/published-listings/applications.ts
diff --git a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts b/src/api/routes/store/published-listings/applications/#id/subscription-plans.ts
index 54151ae5..54151ae5 100644
--- a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts
+++ b/src/api/routes/store/published-listings/applications/#id/subscription-plans.ts
diff --git a/api/src/routes/store/published-listings/skus.ts b/src/api/routes/store/published-listings/skus.ts
index 060a4c3d..060a4c3d 100644
--- a/api/src/routes/store/published-listings/skus.ts
+++ b/src/api/routes/store/published-listings/skus.ts
diff --git a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
index 723a5160..723a5160 100644
--- a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
+++ b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
diff --git a/api/src/routes/teams.ts b/src/api/routes/teams.ts
index 7ce3abcb..7ce3abcb 100644
--- a/api/src/routes/teams.ts
+++ b/src/api/routes/teams.ts
diff --git a/api/src/routes/template.ts.disabled b/src/api/routes/template.ts.disabled
index fcc59ef4..fcc59ef4 100644
--- a/api/src/routes/template.ts.disabled
+++ b/src/api/routes/template.ts.disabled
diff --git a/api/src/routes/track.ts b/src/api/routes/track.ts
index 8556a3ad..8556a3ad 100644
--- a/api/src/routes/track.ts
+++ b/src/api/routes/track.ts
diff --git a/api/src/routes/updates.ts b/src/api/routes/updates.ts
index a24e94c1..a24e94c1 100644
--- a/api/src/routes/updates.ts
+++ b/src/api/routes/updates.ts
diff --git a/api/src/routes/users/#id/index.ts b/src/api/routes/users/#id/index.ts
index bdb1060f..bdb1060f 100644
--- a/api/src/routes/users/#id/index.ts
+++ b/src/api/routes/users/#id/index.ts
diff --git a/api/src/routes/users/#id/profile.ts b/src/api/routes/users/#id/profile.ts
index 7a995a8c..7a995a8c 100644
--- a/api/src/routes/users/#id/profile.ts
+++ b/src/api/routes/users/#id/profile.ts
diff --git a/api/src/routes/users/#id/relationships.ts b/src/api/routes/users/#id/relationships.ts
index 61655c25..61655c25 100644
--- a/api/src/routes/users/#id/relationships.ts
+++ b/src/api/routes/users/#id/relationships.ts
diff --git a/api/src/routes/users/@me/activities/statistics/applications.ts b/src/api/routes/users/@me/activities/statistics/applications.ts
index 014df8af..014df8af 100644
--- a/api/src/routes/users/@me/activities/statistics/applications.ts
+++ b/src/api/routes/users/@me/activities/statistics/applications.ts
diff --git a/api/src/routes/users/@me/affinities/guilds.ts b/src/api/routes/users/@me/affinities/guilds.ts
index 8d744744..8d744744 100644
--- a/api/src/routes/users/@me/affinities/guilds.ts
+++ b/src/api/routes/users/@me/affinities/guilds.ts
diff --git a/api/src/routes/users/@me/affinities/users.ts b/src/api/routes/users/@me/affinities/users.ts
index 6d4e4991..6d4e4991 100644
--- a/api/src/routes/users/@me/affinities/users.ts
+++ b/src/api/routes/users/@me/affinities/users.ts
diff --git a/api/src/routes/users/@me/applications/#app_id/entitlements.ts b/src/api/routes/users/@me/applications/#app_id/entitlements.ts
index 411e95bf..411e95bf 100644
--- a/api/src/routes/users/@me/applications/#app_id/entitlements.ts
+++ b/src/api/routes/users/@me/applications/#app_id/entitlements.ts
diff --git a/api/src/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts
index 33d40796..33d40796 100644
--- a/api/src/routes/users/@me/billing/country-code.ts
+++ b/src/api/routes/users/@me/billing/country-code.ts
diff --git a/api/src/routes/users/@me/billing/payment-sources.ts b/src/api/routes/users/@me/billing/payment-sources.ts
index 014df8af..014df8af 100644
--- a/api/src/routes/users/@me/billing/payment-sources.ts
+++ b/src/api/routes/users/@me/billing/payment-sources.ts
diff --git a/api/src/routes/users/@me/billing/subscriptions.ts b/src/api/routes/users/@me/billing/subscriptions.ts
index 411e95bf..411e95bf 100644
--- a/api/src/routes/users/@me/billing/subscriptions.ts
+++ b/src/api/routes/users/@me/billing/subscriptions.ts
diff --git a/api/src/routes/users/@me/channels.ts b/src/api/routes/users/@me/channels.ts
index ad483529..ad483529 100644
--- a/api/src/routes/users/@me/channels.ts
+++ b/src/api/routes/users/@me/channels.ts
diff --git a/api/src/routes/users/@me/connections.ts b/src/api/routes/users/@me/connections.ts
index 411e95bf..411e95bf 100644
--- a/api/src/routes/users/@me/connections.ts
+++ b/src/api/routes/users/@me/connections.ts
diff --git a/api/src/routes/users/@me/delete.ts b/src/api/routes/users/@me/delete.ts
index 1d81c2b9..1d81c2b9 100644
--- a/api/src/routes/users/@me/delete.ts
+++ b/src/api/routes/users/@me/delete.ts
diff --git a/api/src/routes/users/@me/devices.ts b/src/api/routes/users/@me/devices.ts
index 8556a3ad..8556a3ad 100644
--- a/api/src/routes/users/@me/devices.ts
+++ b/src/api/routes/users/@me/devices.ts
diff --git a/api/src/routes/users/@me/disable.ts b/src/api/routes/users/@me/disable.ts
index 4aff3774..4aff3774 100644
--- a/api/src/routes/users/@me/disable.ts
+++ b/src/api/routes/users/@me/disable.ts
diff --git a/api/src/routes/users/@me/email-settings.ts b/src/api/routes/users/@me/email-settings.ts
index 3114984e..3114984e 100644
--- a/api/src/routes/users/@me/email-settings.ts
+++ b/src/api/routes/users/@me/email-settings.ts
diff --git a/api/src/routes/users/@me/entitlements.ts b/src/api/routes/users/@me/entitlements.ts
index 341e2b4c..341e2b4c 100644
--- a/api/src/routes/users/@me/entitlements.ts
+++ b/src/api/routes/users/@me/entitlements.ts
diff --git a/api/src/routes/users/@me/guilds.ts b/src/api/routes/users/@me/guilds.ts
index 4d4fccd4..4d4fccd4 100644
--- a/api/src/routes/users/@me/guilds.ts
+++ b/src/api/routes/users/@me/guilds.ts
diff --git a/api/src/routes/users/@me/guilds/premium/subscription-slots.ts b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
index 014df8af..014df8af 100644
--- a/api/src/routes/users/@me/guilds/premium/subscription-slots.ts
+++ b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
diff --git a/api/src/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts
index 7d095451..7d095451 100644
--- a/api/src/routes/users/@me/index.ts
+++ b/src/api/routes/users/@me/index.ts
diff --git a/api/src/routes/users/@me/library.ts b/src/api/routes/users/@me/library.ts
index 7ac13bae..7ac13bae 100644
--- a/api/src/routes/users/@me/library.ts
+++ b/src/api/routes/users/@me/library.ts
diff --git a/api/src/routes/users/@me/mfa/codes.ts b/src/api/routes/users/@me/mfa/codes.ts
index 4224a1c0..4224a1c0 100644
--- a/api/src/routes/users/@me/mfa/codes.ts
+++ b/src/api/routes/users/@me/mfa/codes.ts
diff --git a/api/src/routes/users/@me/mfa/totp/disable.ts b/src/api/routes/users/@me/mfa/totp/disable.ts
index 2fe9355c..2fe9355c 100644
--- a/api/src/routes/users/@me/mfa/totp/disable.ts
+++ b/src/api/routes/users/@me/mfa/totp/disable.ts
diff --git a/api/src/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts
index ac668d1d..ac668d1d 100644
--- a/api/src/routes/users/@me/mfa/totp/enable.ts
+++ b/src/api/routes/users/@me/mfa/totp/enable.ts
diff --git a/api/src/routes/users/@me/notes.ts b/src/api/routes/users/@me/notes.ts
index f938f088..f938f088 100644
--- a/api/src/routes/users/@me/notes.ts
+++ b/src/api/routes/users/@me/notes.ts
diff --git a/api/src/routes/users/@me/relationships.ts b/src/api/routes/users/@me/relationships.ts
index f7464b99..f7464b99 100644
--- a/api/src/routes/users/@me/relationships.ts
+++ b/src/api/routes/users/@me/relationships.ts
diff --git a/api/src/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts
index 7578d36e..7578d36e 100644
--- a/api/src/routes/users/@me/settings.ts
+++ b/src/api/routes/users/@me/settings.ts
diff --git a/api/src/routes/voice/regions.ts b/src/api/routes/voice/regions.ts
index 4de304ee..4de304ee 100644
--- a/api/src/routes/voice/regions.ts
+++ b/src/api/routes/voice/regions.ts
diff --git a/api/src/start.ts b/src/api/start.ts
index 98beb1fa..9ba198e7 100644
--- a/api/src/start.ts
+++ b/src/api/start.ts
@@ -13,7 +13,7 @@ try {
console.log("[API] Failed to get thread count! Using 1...")
}
-if (cluster.isPrimary && process.env.NODE_ENV == "production") {
+if (cluster.isMaster && process.env.NODE_ENV == "production") {
console.log(`Primary ${process.pid} is running`);
// Fork workers.
diff --git a/api/src/util/entities/AssetCacheItem.ts b/src/api/util/entities/AssetCacheItem.ts
index 160dece6..160dece6 100644
--- a/api/src/util/entities/AssetCacheItem.ts
+++ b/src/api/util/entities/AssetCacheItem.ts
diff --git a/api/src/util/entities/blockedEmailDomains.txt b/src/api/util/entities/blockedEmailDomains.txt
index eb88305d..eb88305d 100644
--- a/api/src/util/entities/blockedEmailDomains.txt
+++ b/src/api/util/entities/blockedEmailDomains.txt
diff --git a/api/src/util/entities/trustedEmailDomains.txt b/src/api/util/entities/trustedEmailDomains.txt
index 38ffa4fa..38ffa4fa 100644
--- a/api/src/util/entities/trustedEmailDomains.txt
+++ b/src/api/util/entities/trustedEmailDomains.txt
diff --git a/api/src/util/handlers/Instance.ts b/src/api/util/handlers/Instance.ts
index 7c337270..7c337270 100644
--- a/api/src/util/handlers/Instance.ts
+++ b/src/api/util/handlers/Instance.ts
diff --git a/api/src/util/handlers/Message.ts b/src/api/util/handlers/Message.ts
index ff5ece75..ff5ece75 100644
--- a/api/src/util/handlers/Message.ts
+++ b/src/api/util/handlers/Message.ts
diff --git a/api/src/util/handlers/Voice.ts b/src/api/util/handlers/Voice.ts
index 4d60eb91..4d60eb91 100644
--- a/api/src/util/handlers/Voice.ts
+++ b/src/api/util/handlers/Voice.ts
diff --git a/api/src/util/handlers/route.ts b/src/api/util/handlers/route.ts
index f8130f3c..71e14955 100644
--- a/api/src/util/handlers/route.ts
+++ b/src/api/util/handlers/route.ts
@@ -19,7 +19,7 @@ import Ajv from "ajv";
import { AnyValidateFunction } from "ajv/dist/core";
import addFormats from "ajv-formats";
-const SchemaPath = path.join(__dirname, "..", "..", "..", "assets", "schemas.json");
+const SchemaPath = path.join(__dirname, "..", "..", "..","..", "assets", "schemas.json");
const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" }));
export const ajv = new Ajv({
diff --git a/api/src/util/index.ts b/src/api/util/index.ts
index b3c7559f..b3c7559f 100644
--- a/api/src/util/index.ts
+++ b/src/api/util/index.ts
diff --git a/api/src/util/utility/Base64.ts b/src/api/util/utility/Base64.ts
index 46cff77a..46cff77a 100644
--- a/api/src/util/utility/Base64.ts
+++ b/src/api/util/utility/Base64.ts
diff --git a/api/src/util/utility/RandomInviteID.ts b/src/api/util/utility/RandomInviteID.ts
index 7ea344e0..7ea344e0 100644
--- a/api/src/util/utility/RandomInviteID.ts
+++ b/src/api/util/utility/RandomInviteID.ts
diff --git a/api/src/util/utility/String.ts b/src/api/util/utility/String.ts
index 982b7e11..982b7e11 100644
--- a/api/src/util/utility/String.ts
+++ b/src/api/util/utility/String.ts
diff --git a/api/src/util/utility/ipAddress.ts b/src/api/util/utility/ipAddress.ts
index 8d986b26..8d986b26 100644
--- a/api/src/util/utility/ipAddress.ts
+++ b/src/api/util/utility/ipAddress.ts
diff --git a/api/src/util/utility/passwordStrength.ts b/src/api/util/utility/passwordStrength.ts
index 8eca63b8..8eca63b8 100644
--- a/api/src/util/utility/passwordStrength.ts
+++ b/src/api/util/utility/passwordStrength.ts
diff --git a/cdn/src/Server.ts b/src/cdn/Server.ts
index b27d3321..b27d3321 100644
--- a/cdn/src/Server.ts
+++ b/src/cdn/Server.ts
diff --git a/cdn/src/index.ts b/src/cdn/index.ts
index a24300d6..a24300d6 100644
--- a/cdn/src/index.ts
+++ b/src/cdn/index.ts
diff --git a/cdn/src/routes/attachments.ts b/src/cdn/routes/attachments.ts
index 723a6c03..723a6c03 100644
--- a/cdn/src/routes/attachments.ts
+++ b/src/cdn/routes/attachments.ts
diff --git a/cdn/src/routes/avatars.ts b/src/cdn/routes/avatars.ts
index 40705b2e..40705b2e 100644
--- a/cdn/src/routes/avatars.ts
+++ b/src/cdn/routes/avatars.ts
diff --git a/cdn/src/routes/external.ts b/src/cdn/routes/external.ts
index c9441fc2..c9441fc2 100644
--- a/cdn/src/routes/external.ts
+++ b/src/cdn/routes/external.ts
diff --git a/cdn/src/routes/ping.ts b/src/cdn/routes/ping.ts
index 38daf81e..38daf81e 100644
--- a/cdn/src/routes/ping.ts
+++ b/src/cdn/routes/ping.ts
diff --git a/cdn/src/routes/role-icons.ts b/src/cdn/routes/role-icons.ts
index 2e5c42dd..2e5c42dd 100644
--- a/cdn/src/routes/role-icons.ts
+++ b/src/cdn/routes/role-icons.ts
diff --git a/cdn/src/start.ts b/src/cdn/start.ts
index 71681b40..71681b40 100644
--- a/cdn/src/start.ts
+++ b/src/cdn/start.ts
diff --git a/cdn/src/util/FileStorage.ts b/src/cdn/util/FileStorage.ts
index aee9d345..aee9d345 100644
--- a/cdn/src/util/FileStorage.ts
+++ b/src/cdn/util/FileStorage.ts
diff --git a/cdn/src/util/S3Storage.ts b/src/cdn/util/S3Storage.ts
index c4066817..c4066817 100644
--- a/cdn/src/util/S3Storage.ts
+++ b/src/cdn/util/S3Storage.ts
diff --git a/cdn/src/util/Storage.ts b/src/cdn/util/Storage.ts
index 728804a0..728804a0 100644
--- a/cdn/src/util/Storage.ts
+++ b/src/cdn/util/Storage.ts
diff --git a/cdn/src/util/index.ts b/src/cdn/util/index.ts
index 07a5c31a..07a5c31a 100644
--- a/cdn/src/util/index.ts
+++ b/src/cdn/util/index.ts
diff --git a/cdn/src/util/multer.ts b/src/cdn/util/multer.ts
index bfdf6aff..bfdf6aff 100644
--- a/cdn/src/util/multer.ts
+++ b/src/cdn/util/multer.ts
diff --git a/gateway/src/Server.ts b/src/gateway/Server.ts
index 82fbeba2..82fbeba2 100644
--- a/gateway/src/Server.ts
+++ b/src/gateway/Server.ts
diff --git a/gateway/src/events/Close.ts b/src/gateway/events/Close.ts
index 5b7c512c..5b7c512c 100644
--- a/gateway/src/events/Close.ts
+++ b/src/gateway/events/Close.ts
diff --git a/gateway/src/events/Connection.ts b/src/gateway/events/Connection.ts
index 508b4741..508b4741 100644
--- a/gateway/src/events/Connection.ts
+++ b/src/gateway/events/Connection.ts
diff --git a/gateway/src/events/Message.ts b/src/gateway/events/Message.ts
index 7ed1dd06..569f5fc7 100644
--- a/gateway/src/events/Message.ts
+++ b/src/gateway/events/Message.ts
@@ -6,7 +6,6 @@ try {
} catch (error) {}
import OPCodeHandlers from "../opcodes";
import { check } from "../opcodes/instanceOf";
-import WS from "ws";
const PayloadSchema = {
op: Number,
@@ -15,7 +14,7 @@ const PayloadSchema = {
$t: String,
};
-export async function Message(this: WebSocket, buffer: WS.RawData) {
+export async function Message(this: WebSocket, buffer: Buffer) {
// TODO: compression
let data: Payload;
diff --git a/gateway/src/index.ts b/src/gateway/index.ts
index d77ce931..d77ce931 100644
--- a/gateway/src/index.ts
+++ b/src/gateway/index.ts
diff --git a/gateway/src/listener/listener.ts b/src/gateway/listener/listener.ts
index 8c69e193..8c69e193 100644
--- a/gateway/src/listener/listener.ts
+++ b/src/gateway/listener/listener.ts
diff --git a/gateway/src/opcodes/Heartbeat.ts b/src/gateway/opcodes/Heartbeat.ts
index 42b72d4b..42b72d4b 100644
--- a/gateway/src/opcodes/Heartbeat.ts
+++ b/src/gateway/opcodes/Heartbeat.ts
diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts
new file mode 100644
index 00000000..4f17ab70
--- /dev/null
+++ b/src/gateway/opcodes/Identify.ts
@@ -0,0 +1,298 @@
+import { WebSocket, Payload } from "@fosscord/gateway";
+import {
+ checkToken,
+ Intents,
+ Member,
+ ReadyEventData,
+ User,
+ Session,
+ EVENTEnum,
+ Config,
+ PublicMember,
+ PublicUser,
+ PrivateUserProjection,
+ ReadState,
+ Application,
+ emitEvent,
+ SessionsReplace,
+ PrivateSessionProjection,
+ MemberPrivateProjection,
+ PresenceUpdateEvent,
+ UserSettings,
+ IdentifySchema,
+} from "@fosscord/util";
+import { Send } from "../util/Send";
+import { CLOSECODES, OPCODES } from "../util/Constants";
+import { genSessionId } from "../util/SessionUtils";
+import { setupListener } from "../listener/listener";
+// import experiments from "./experiments.json";
+const experiments: any = [];
+import { check } from "./instanceOf";
+import { Recipient } from "@fosscord/util";
+import { OrmUtils } from "@fosscord/util";
+
+// TODO: user sharding
+// TODO: check privileged intents, if defined in the config
+// TODO: check if already identified
+
+export async function onIdentify(this: WebSocket, data: Payload) {
+ clearTimeout(this.readyTimeout);
+ check.call(this, IdentifySchema, data.d);
+
+ const identify: IdentifySchema = data.d;
+
+ try {
+ const { jwtSecret } = Config.get().security;
+ var { decoded } = await checkToken(identify.token, jwtSecret); // will throw an error if invalid
+ } catch (error) {
+ console.error("invalid token", error);
+ return this.close(CLOSECODES.Authentication_failed);
+ }
+ this.user_id = decoded.id;
+
+ const session_id = genSessionId();
+ this.session_id = session_id; //Set the session of the WebSocket object
+
+ const [user, read_states, members, recipients, session, application] =
+ await Promise.all([
+ User.findOneOrFail({
+ where: { id: this.user_id },
+ relations: ["relationships", "relationships.to", "settings"],
+ select: [...PrivateUserProjection, "relationships"],
+ }),
+ ReadState.find({ where: { user_id: this.user_id } }),
+ Member.find({
+ where: { id: this.user_id },
+ select: MemberPrivateProjection,
+ relations: [
+ "guild",
+ "guild.channels",
+ "guild.emojis",
+ "guild.emojis.user",
+ "guild.roles",
+ "guild.stickers",
+ "user",
+ "roles",
+ ],
+ }),
+ Recipient.find({
+ where: { user_id: this.user_id, closed: false },
+ relations: [
+ "channel",
+ "channel.recipients",
+ "channel.recipients.user",
+ ],
+ // TODO: public user selection
+ }),
+ // save the session and delete it when the websocket is closed
+ await OrmUtils.mergeDeep(new Session(), {
+ user_id: this.user_id,
+ session_id: session_id,
+ // TODO: check if status is only one of: online, dnd, offline, idle
+ status: identify.presence?.status || "offline", //does the session always start as online?
+ client_info: {
+ //TODO read from identity
+ client: "desktop",
+ os: identify.properties?.os,
+ version: 0,
+ },
+ activities: [],
+ }).save(),
+ Application.findOne({ where: { id: this.user_id } }),
+ ]);
+
+ if (!user) return this.close(CLOSECODES.Authentication_failed);
+ if (!user.settings) { //settings may not exist after updating...
+ user.settings = new UserSettings();
+ user.settings.id = user.id;
+ await user.settings.save();
+ }
+
+ if (!identify.intents) identify.intents = "0x6ffffffff"
+ this.intents = new Intents(identify.intents);
+ if (identify.shard) {
+ this.shard_id = identify.shard[0];
+ this.shard_count = identify.shard[1];
+ if (
+ this.shard_count == null ||
+ this.shard_id == null ||
+ this.shard_id >= this.shard_count ||
+ this.shard_id < 0 ||
+ this.shard_count <= 0
+ ) {
+ console.log(identify.shard);
+ return this.close(CLOSECODES.Invalid_shard);
+ }
+ }
+ let users: PublicUser[] = [];
+
+ const merged_members = members.map((x: Member) => {
+ return [
+ {
+ ...x,
+ roles: x.roles.map((x) => x.id),
+ settings: undefined,
+ guild: undefined,
+ },
+ ];
+ }) as PublicMember[][];
+ let guilds = members.map((x) => ({ ...x.guild, joined_at: x.joined_at }));
+
+ // @ts-ignore
+ guilds = guilds.map((guild) => {
+ if (user.bot) {
+ setTimeout(() => {
+ Send(this, {
+ op: OPCODES.Dispatch,
+ t: EVENTEnum.GuildCreate,
+ s: this.sequence++,
+ d: guild,
+ });
+ }, 500);
+ return { id: guild.id, unavailable: true };
+ }
+
+ return guild;
+ });
+
+ const user_guild_settings_entries = members.map((x) => x.settings);
+
+ const channels = recipients.map((x) => {
+ // @ts-ignore
+ x.channel.recipients = x.channel.recipients?.map((x) => x.user);
+ //TODO is this needed? check if users in group dm that are not friends are sent in the READY event
+ users = users.concat(x.channel.recipients as unknown as User[]);
+ if (x.channel.isDm()) {
+ x.channel.recipients = x.channel.recipients!.filter(
+ (x) => x.id !== this.user_id
+ );
+ }
+ return x.channel;
+ });
+
+ for (let relation of user.relationships) {
+ const related_user = relation.to;
+ const public_related_user = {
+ username: related_user.username,
+ discriminator: related_user.discriminator,
+ id: related_user.id,
+ public_flags: related_user.public_flags,
+ avatar: related_user.avatar,
+ bot: related_user.bot,
+ bio: related_user.bio,
+ premium_since: user.premium_since
+ };
+ users.push(public_related_user);
+ }
+
+ setImmediate(async () => {
+ // run in seperate "promise context" because ready payload is not dependent on those events
+ emitEvent({
+ event: "SESSIONS_REPLACE",
+ user_id: this.user_id,
+ data: await Session.find({
+ where: { user_id: this.user_id },
+ select: PrivateSessionProjection,
+ }),
+ } as SessionsReplace);
+ emitEvent({
+ event: "PRESENCE_UPDATE",
+ user_id: this.user_id,
+ data: {
+ user: await User.getPublicUser(this.user_id),
+ activities: session.activities,
+ client_status: session?.client_info,
+ status: session.status,
+ },
+ } as PresenceUpdateEvent);
+ });
+
+ read_states.forEach((s: any) => {
+ s.id = s.channel_id;
+ delete s.user_id;
+ delete s.channel_id;
+ });
+
+ const privateUser = {
+ avatar: user.avatar,
+ mobile: user.mobile,
+ desktop: user.desktop,
+ discriminator: user.discriminator,
+ email: user.email,
+ flags: user.flags,
+ id: user.id,
+ mfa_enabled: user.mfa_enabled,
+ nsfw_allowed: user.nsfw_allowed,
+ phone: user.phone,
+ premium: user.premium,
+ premium_type: user.premium_type,
+ public_flags: user.public_flags,
+ username: user.username,
+ verified: user.verified,
+ bot: user.bot,
+ accent_color: user.accent_color || 0,
+ banner: user.banner,
+ bio: user.bio,
+ premium_since: user.premium_since
+ };
+
+ const d: ReadyEventData = {
+ v: 8,
+ application: {id: application?.id??'', flags: application?.flags??''}, //TODO: check this code!
+ user: privateUser,
+ user_settings: user.settings,
+ // @ts-ignore
+ guilds: guilds.map((x) => {
+ // @ts-ignore
+ x.guild_hashes = {}; // @ts-ignore
+ x.guild_scheduled_events = []; // @ts-ignore
+ x.threads = [];
+ return x;
+ }),
+ guild_experiments: [], // TODO
+ geo_ordered_rtc_regions: [], // TODO
+ relationships: user.relationships.map((x) => x.toPublicRelationship()),
+ read_state: {
+ entries: read_states,
+ partial: false,
+ version: 304128,
+ },
+ user_guild_settings: {
+ entries: user_guild_settings_entries,
+ partial: false, // TODO partial
+ version: 642,
+ },
+ private_channels: channels,
+ session_id: session_id,
+ analytics_token: "", // TODO
+ connected_accounts: [], // TODO
+ consents: {
+ personalization: {
+ consented: false, // TODO
+ },
+ },
+ country_code: user.settings.locale,
+ friend_suggestion_count: 0, // TODO
+ // @ts-ignore
+ experiments: experiments, // TODO
+ guild_join_requests: [], // TODO what is this?
+ users: users.filter((x) => x).unique(),
+ merged_members: merged_members,
+ // shard // TODO: only for user sharding
+ };
+
+ // TODO: send real proper data structure
+ await Send(this, {
+ op: OPCODES.Dispatch,
+ t: EVENTEnum.Ready,
+ s: this.sequence++,
+ d,
+ });
+
+ //TODO send READY_SUPPLEMENTAL
+ //TODO send GUILD_MEMBER_LIST_UPDATE
+ //TODO send SESSIONS_REPLACE
+ //TODO send VOICE_STATE_UPDATE to let the client know if another device is already connected to a voice channel
+
+ await setupListener.call(this);
+}
diff --git a/gateway/src/opcodes/LazyRequest.ts b/src/gateway/opcodes/LazyRequest.ts
index cd0586de..74996f5b 100644
--- a/gateway/src/opcodes/LazyRequest.ts
+++ b/src/gateway/opcodes/LazyRequest.ts
@@ -16,7 +16,7 @@ async function getMembers(guild_id: string, range: [number, number]) {
// TODO: wait for typeorm to implement ordering for .find queries https://github.com/typeorm/typeorm/issues/2620
// TODO: rewrite this, released in 0.3.0
- let members = await (await getOrInitialiseDatabase()).getRepository(Member)
+ let members: Member[] = await (await getOrInitialiseDatabase()).getRepository(Member)
.createQueryBuilder("member")
.where("member.guild_id = :guild_id", { guild_id })
.leftJoinAndSelect("member.roles", "role")
diff --git a/gateway/src/opcodes/PresenceUpdate.ts b/src/gateway/opcodes/PresenceUpdate.ts
index f31c9161..f31c9161 100644
--- a/gateway/src/opcodes/PresenceUpdate.ts
+++ b/src/gateway/opcodes/PresenceUpdate.ts
diff --git a/gateway/src/opcodes/RequestGuildMembers.ts b/src/gateway/opcodes/RequestGuildMembers.ts
index b80721dc..b80721dc 100644
--- a/gateway/src/opcodes/RequestGuildMembers.ts
+++ b/src/gateway/opcodes/RequestGuildMembers.ts
diff --git a/gateway/src/opcodes/Resume.ts b/src/gateway/opcodes/Resume.ts
index 42dc586d..42dc586d 100644
--- a/gateway/src/opcodes/Resume.ts
+++ b/src/gateway/opcodes/Resume.ts
diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/src/gateway/opcodes/VoiceStateUpdate.ts
index 73f73565..c4297a68 100644
--- a/gateway/src/opcodes/VoiceStateUpdate.ts
+++ b/src/gateway/opcodes/VoiceStateUpdate.ts
@@ -12,7 +12,7 @@ import {
VoiceStateUpdateSchema,
} from "@fosscord/util";
import { OrmUtils } from "@fosscord/util";
-import { Region } from "@fosscord/util/src/config";
+import { Region } from "@fosscord/util";
// TODO: check if a voice server is setup
// Notice: Bot users respect the voice channel's user limit, if set. When the voice channel is full, you will not receive the Voice State Update or Voice Server Update events in response to your own Voice State Update. Having MANAGE_CHANNELS permission bypasses this limit and allows you to join regardless of the channel being full or not.
diff --git a/gateway/src/opcodes/experiments.json b/src/gateway/opcodes/experiments.json
index 0370b5da..0370b5da 100644
--- a/gateway/src/opcodes/experiments.json
+++ b/src/gateway/opcodes/experiments.json
diff --git a/gateway/src/opcodes/index.ts b/src/gateway/opcodes/index.ts
index 027739db..027739db 100644
--- a/gateway/src/opcodes/index.ts
+++ b/src/gateway/opcodes/index.ts
diff --git a/gateway/src/opcodes/instanceOf.ts b/src/gateway/opcodes/instanceOf.ts
index eb6f6ea1..eb6f6ea1 100644
--- a/gateway/src/opcodes/instanceOf.ts
+++ b/src/gateway/opcodes/instanceOf.ts
diff --git a/gateway/src/start.ts b/src/gateway/start.ts
index 2000522a..2000522a 100644
--- a/gateway/src/start.ts
+++ b/src/gateway/start.ts
diff --git a/gateway/src/util/Constants.ts b/src/gateway/util/Constants.ts
index 692f9028..692f9028 100644
--- a/gateway/src/util/Constants.ts
+++ b/src/gateway/util/Constants.ts
diff --git a/gateway/src/util/Heartbeat.ts b/src/gateway/util/Heartbeat.ts
index f6871cfe..f6871cfe 100644
--- a/gateway/src/util/Heartbeat.ts
+++ b/src/gateway/util/Heartbeat.ts
diff --git a/gateway/src/util/Send.ts b/src/gateway/util/Send.ts
index 2a28d8e0..2a28d8e0 100644
--- a/gateway/src/util/Send.ts
+++ b/src/gateway/util/Send.ts
diff --git a/gateway/src/util/SessionUtils.ts b/src/gateway/util/SessionUtils.ts
index bf854042..bf854042 100644
--- a/gateway/src/util/SessionUtils.ts
+++ b/src/gateway/util/SessionUtils.ts
diff --git a/gateway/src/util/WebSocket.ts b/src/gateway/util/WebSocket.ts
index e3313f40..9496da85 100644
--- a/gateway/src/util/WebSocket.ts
+++ b/src/gateway/util/WebSocket.ts
@@ -8,8 +8,8 @@ export interface WebSocket extends WS {
session_id: string;
encoding: "etf" | "json";
compress?: "zlib-stream";
- shard_count?: bigint;
- shard_id?: bigint;
+ shard_count?: number;
+ shard_id?: number;
deflate?: Deflate;
heartbeatTimeout: NodeJS.Timeout;
readyTimeout: NodeJS.Timeout;
diff --git a/gateway/src/util/index.ts b/src/gateway/util/index.ts
index 0be5ecee..0be5ecee 100644
--- a/gateway/src/util/index.ts
+++ b/src/gateway/util/index.ts
diff --git a/bundle/src/start.ts b/src/start.ts
index a20581c3..a20581c3 100644
--- a/bundle/src/start.ts
+++ b/src/start.ts
diff --git a/src/stats.ts b/src/stats.ts
new file mode 100644
index 00000000..654e0a4f
--- /dev/null
+++ b/src/stats.ts
@@ -0,0 +1,24 @@
+import os from "os";
+import { red } from "picocolors";
+
+export function initStats() {
+
+ console.log(`[Path] running in ${__dirname}`);
+ try {
+ console.log(`[CPU] ${os.cpus()[0].model} Cores x${os.cpus().length}`);
+ }
+ catch {
+ console.log('[CPU] Failed to get cpu model!')
+ }
+
+ console.log(`[System] ${os.platform()} ${os.arch()}`);
+ console.log(`[Process] running with PID: ${process.pid}`);
+ if (process.getuid && process.getuid() === 0) {
+ console.warn(
+ red(
+ `[Process] Warning fosscord is running as root, this highly discouraged and might expose your system vulnerable to attackers. Please run fosscord as a user without root privileges.`
+ )
+ );
+ }
+
+}
diff --git a/util/src/config/Config.ts b/src/util/config/Config.ts
index b703040f..7aee1775 100644
--- a/util/src/config/Config.ts
+++ b/src/util/config/Config.ts
@@ -1,4 +1,4 @@
-import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from "../config";
+import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from ".";
export class ConfigValue {
gateway: EndpointConfiguration = new EndpointConfiguration();
diff --git a/util/src/config/index.ts b/src/util/config/index.ts
index 0a9b58ae..0a9b58ae 100644
--- a/util/src/config/index.ts
+++ b/src/util/config/index.ts
diff --git a/util/src/config/types/ApiConfiguration.ts b/src/util/config/types/ApiConfiguration.ts
index 16b1efba..16b1efba 100644
--- a/util/src/config/types/ApiConfiguration.ts
+++ b/src/util/config/types/ApiConfiguration.ts
diff --git a/util/src/config/types/ClientConfiguration.ts b/src/util/config/types/ClientConfiguration.ts
index 1adda1e2..1adda1e2 100644
--- a/util/src/config/types/ClientConfiguration.ts
+++ b/src/util/config/types/ClientConfiguration.ts
diff --git a/util/src/config/types/DefaultsConfiguration.ts b/src/util/config/types/DefaultsConfiguration.ts
index 9b02a590..9b02a590 100644
--- a/util/src/config/types/DefaultsConfiguration.ts
+++ b/src/util/config/types/DefaultsConfiguration.ts
diff --git a/util/src/config/types/EndpointConfiguration.ts b/src/util/config/types/EndpointConfiguration.ts
index 87baea31..87baea31 100644
--- a/util/src/config/types/EndpointConfiguration.ts
+++ b/src/util/config/types/EndpointConfiguration.ts
diff --git a/util/src/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts
index 55848b44..55848b44 100644
--- a/util/src/config/types/GeneralConfiguration.ts
+++ b/src/util/config/types/GeneralConfiguration.ts
diff --git a/util/src/config/types/GifConfiguration.ts b/src/util/config/types/GifConfiguration.ts
index 6a2d520d..6a2d520d 100644
--- a/util/src/config/types/GifConfiguration.ts
+++ b/src/util/config/types/GifConfiguration.ts
diff --git a/util/src/config/types/GuildConfiguration.ts b/src/util/config/types/GuildConfiguration.ts
index 3d43b368..3d43b368 100644
--- a/util/src/config/types/GuildConfiguration.ts
+++ b/src/util/config/types/GuildConfiguration.ts
diff --git a/util/src/config/types/KafkaConfiguration.ts b/src/util/config/types/KafkaConfiguration.ts
index 7932f49e..7932f49e 100644
--- a/util/src/config/types/KafkaConfiguration.ts
+++ b/src/util/config/types/KafkaConfiguration.ts
diff --git a/util/src/config/types/LimitConfigurations.ts b/src/util/config/types/LimitConfigurations.ts
index bcc2e7e2..bcc2e7e2 100644
--- a/util/src/config/types/LimitConfigurations.ts
+++ b/src/util/config/types/LimitConfigurations.ts
diff --git a/util/src/config/types/LoginConfiguration.ts b/src/util/config/types/LoginConfiguration.ts
index 255c9451..255c9451 100644
--- a/util/src/config/types/LoginConfiguration.ts
+++ b/src/util/config/types/LoginConfiguration.ts
diff --git a/util/src/config/types/MetricsConfiguration.ts b/src/util/config/types/MetricsConfiguration.ts
index d7cd4937..d7cd4937 100644
--- a/util/src/config/types/MetricsConfiguration.ts
+++ b/src/util/config/types/MetricsConfiguration.ts
diff --git a/util/src/config/types/RabbitMQConfiguration.ts b/src/util/config/types/RabbitMQConfiguration.ts
index ce4a9123..ce4a9123 100644
--- a/util/src/config/types/RabbitMQConfiguration.ts
+++ b/src/util/config/types/RabbitMQConfiguration.ts
diff --git a/util/src/config/types/RegionConfiguration.ts b/src/util/config/types/RegionConfiguration.ts
index 09d9271c..09d9271c 100644
--- a/util/src/config/types/RegionConfiguration.ts
+++ b/src/util/config/types/RegionConfiguration.ts
diff --git a/util/src/config/types/RegisterConfiguration.ts b/src/util/config/types/RegisterConfiguration.ts
index a0dc97c5..a0dc97c5 100644
--- a/util/src/config/types/RegisterConfiguration.ts
+++ b/src/util/config/types/RegisterConfiguration.ts
diff --git a/util/src/config/types/SecurityConfiguration.ts b/src/util/config/types/SecurityConfiguration.ts
index 405b86ac..405b86ac 100644
--- a/util/src/config/types/SecurityConfiguration.ts
+++ b/src/util/config/types/SecurityConfiguration.ts
diff --git a/util/src/config/types/SentryConfiguration.ts b/src/util/config/types/SentryConfiguration.ts
index 836094a1..836094a1 100644
--- a/util/src/config/types/SentryConfiguration.ts
+++ b/src/util/config/types/SentryConfiguration.ts
diff --git a/util/src/config/types/TemplateConfiguration.ts b/src/util/config/types/TemplateConfiguration.ts
index 4a9aa8f2..4a9aa8f2 100644
--- a/util/src/config/types/TemplateConfiguration.ts
+++ b/src/util/config/types/TemplateConfiguration.ts
diff --git a/util/src/config/types/index.ts b/src/util/config/types/index.ts
index 608503a0..608503a0 100644
--- a/util/src/config/types/index.ts
+++ b/src/util/config/types/index.ts
diff --git a/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
index 54e7f365..54e7f365 100644
--- a/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
+++ b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
diff --git a/util/src/config/types/subconfigurations/client/index.ts b/src/util/config/types/subconfigurations/client/index.ts
index 96bbb0ca..96bbb0ca 100644
--- a/util/src/config/types/subconfigurations/client/index.ts
+++ b/src/util/config/types/subconfigurations/client/index.ts
diff --git a/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts
index d6ff7697..d6ff7697 100644
--- a/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts
+++ b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts
diff --git a/util/src/config/types/subconfigurations/defaults/UserDefaults.ts b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts
index 4481c011..4481c011 100644
--- a/util/src/config/types/subconfigurations/defaults/UserDefaults.ts
+++ b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts
diff --git a/util/src/config/types/subconfigurations/defaults/index.ts b/src/util/config/types/subconfigurations/defaults/index.ts
index 50258d1c..50258d1c 100644
--- a/util/src/config/types/subconfigurations/defaults/index.ts
+++ b/src/util/config/types/subconfigurations/defaults/index.ts
diff --git a/util/src/config/types/subconfigurations/guild/AutoJoin.ts b/src/util/config/types/subconfigurations/guild/AutoJoin.ts
index 47dfe5ec..47dfe5ec 100644
--- a/util/src/config/types/subconfigurations/guild/AutoJoin.ts
+++ b/src/util/config/types/subconfigurations/guild/AutoJoin.ts
diff --git a/util/src/config/types/subconfigurations/guild/Discovery.ts b/src/util/config/types/subconfigurations/guild/Discovery.ts
index 59d8a8ae..59d8a8ae 100644
--- a/util/src/config/types/subconfigurations/guild/Discovery.ts
+++ b/src/util/config/types/subconfigurations/guild/Discovery.ts
diff --git a/util/src/config/types/subconfigurations/guild/index.ts b/src/util/config/types/subconfigurations/guild/index.ts
index e9614856..e9614856 100644
--- a/util/src/config/types/subconfigurations/guild/index.ts
+++ b/src/util/config/types/subconfigurations/guild/index.ts
diff --git a/util/src/config/types/subconfigurations/index.ts b/src/util/config/types/subconfigurations/index.ts
index bfbadc92..bfbadc92 100644
--- a/util/src/config/types/subconfigurations/index.ts
+++ b/src/util/config/types/subconfigurations/index.ts
diff --git a/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts
index 4f9a5e51..4f9a5e51 100644
--- a/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts
+++ b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts
diff --git a/util/src/config/types/subconfigurations/kafka/index.ts b/src/util/config/types/subconfigurations/kafka/index.ts
index 2c633950..2c633950 100644
--- a/util/src/config/types/subconfigurations/kafka/index.ts
+++ b/src/util/config/types/subconfigurations/kafka/index.ts
diff --git a/util/src/config/types/subconfigurations/limits/ChannelLimits.ts b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts
index 2f8f9485..2f8f9485 100644
--- a/util/src/config/types/subconfigurations/limits/ChannelLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts
diff --git a/util/src/config/types/subconfigurations/limits/GuildLimits.ts b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
index 91ad39ae..91ad39ae 100644
--- a/util/src/config/types/subconfigurations/limits/GuildLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
diff --git a/util/src/config/types/subconfigurations/limits/MessageLimits.ts b/src/util/config/types/subconfigurations/limits/MessageLimits.ts
index 51576b90..51576b90 100644
--- a/util/src/config/types/subconfigurations/limits/MessageLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/MessageLimits.ts
diff --git a/util/src/config/types/subconfigurations/limits/RateLimits.ts b/src/util/config/types/subconfigurations/limits/RateLimits.ts
index 25e7a1e0..25e7a1e0 100644
--- a/util/src/config/types/subconfigurations/limits/RateLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/RateLimits.ts
diff --git a/util/src/config/types/subconfigurations/limits/UserLimits.ts b/src/util/config/types/subconfigurations/limits/UserLimits.ts
index 0d10e0b3..0d10e0b3 100644
--- a/util/src/config/types/subconfigurations/limits/UserLimits.ts
+++ b/src/util/config/types/subconfigurations/limits/UserLimits.ts
diff --git a/util/src/config/types/subconfigurations/limits/index.ts b/src/util/config/types/subconfigurations/limits/index.ts
index 0b7304f6..0b7304f6 100644
--- a/util/src/config/types/subconfigurations/limits/index.ts
+++ b/src/util/config/types/subconfigurations/limits/index.ts
diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts
index df171044..df171044 100644
--- a/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts
diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
index 7089e28e..7089e28e 100644
--- a/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts
diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts
index 3012a8a8..844b1b9a 100644
--- a/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts
@@ -1,4 +1,4 @@
-import { AuthRateLimit } from ".";
+import { AuthRateLimit } from "./Auth";
import { RateLimitOptions } from "./RateLimitOptions";
export class RouteRateLimit {
diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/index.ts b/src/util/config/types/subconfigurations/limits/ratelimits/index.ts
index 432eb601..432eb601 100644
--- a/util/src/config/types/subconfigurations/limits/ratelimits/index.ts
+++ b/src/util/config/types/subconfigurations/limits/ratelimits/index.ts
diff --git a/util/src/config/types/subconfigurations/region/Region.ts b/src/util/config/types/subconfigurations/region/Region.ts
index a8717e1f..a8717e1f 100644
--- a/util/src/config/types/subconfigurations/region/Region.ts
+++ b/src/util/config/types/subconfigurations/region/Region.ts
diff --git a/util/src/config/types/subconfigurations/region/index.ts b/src/util/config/types/subconfigurations/region/index.ts
index 2beb8de7..2beb8de7 100644
--- a/util/src/config/types/subconfigurations/region/index.ts
+++ b/src/util/config/types/subconfigurations/region/index.ts
diff --git a/util/src/config/types/subconfigurations/register/DateOfBirth.ts b/src/util/config/types/subconfigurations/register/DateOfBirth.ts
index 5a3c4e9d..5a3c4e9d 100644
--- a/util/src/config/types/subconfigurations/register/DateOfBirth.ts
+++ b/src/util/config/types/subconfigurations/register/DateOfBirth.ts
diff --git a/util/src/config/types/subconfigurations/register/Email.ts b/src/util/config/types/subconfigurations/register/Email.ts
index 115d49e0..115d49e0 100644
--- a/util/src/config/types/subconfigurations/register/Email.ts
+++ b/src/util/config/types/subconfigurations/register/Email.ts
diff --git a/util/src/config/types/subconfigurations/register/Password.ts b/src/util/config/types/subconfigurations/register/Password.ts
index 977473ac..977473ac 100644
--- a/util/src/config/types/subconfigurations/register/Password.ts
+++ b/src/util/config/types/subconfigurations/register/Password.ts
diff --git a/util/src/config/types/subconfigurations/register/index.ts b/src/util/config/types/subconfigurations/register/index.ts
index d9738120..d9738120 100644
--- a/util/src/config/types/subconfigurations/register/index.ts
+++ b/src/util/config/types/subconfigurations/register/index.ts
diff --git a/util/src/config/types/subconfigurations/security/Captcha.ts b/src/util/config/types/subconfigurations/security/Captcha.ts
index ad6aa762..ad6aa762 100644
--- a/util/src/config/types/subconfigurations/security/Captcha.ts
+++ b/src/util/config/types/subconfigurations/security/Captcha.ts
diff --git a/util/src/config/types/subconfigurations/security/TwoFactor.ts b/src/util/config/types/subconfigurations/security/TwoFactor.ts
index 33a47385..33a47385 100644
--- a/util/src/config/types/subconfigurations/security/TwoFactor.ts
+++ b/src/util/config/types/subconfigurations/security/TwoFactor.ts
diff --git a/util/src/config/types/subconfigurations/security/index.ts b/src/util/config/types/subconfigurations/security/index.ts
index 17619589..17619589 100644
--- a/util/src/config/types/subconfigurations/security/index.ts
+++ b/src/util/config/types/subconfigurations/security/index.ts
diff --git a/util/src/dtos/DmChannelDTO.ts b/src/util/dtos/DmChannelDTO.ts
index 226b2f9d..226b2f9d 100644
--- a/util/src/dtos/DmChannelDTO.ts
+++ b/src/util/dtos/DmChannelDTO.ts
diff --git a/util/src/dtos/UserDTO.ts b/src/util/dtos/UserDTO.ts
index ee2752a4..ee2752a4 100644
--- a/util/src/dtos/UserDTO.ts
+++ b/src/util/dtos/UserDTO.ts
diff --git a/util/src/dtos/index.ts b/src/util/dtos/index.ts
index 0e8f8459..0e8f8459 100644
--- a/util/src/dtos/index.ts
+++ b/src/util/dtos/index.ts
diff --git a/util/src/entities/Application.ts b/src/util/entities/Application.ts
index 103f8e84..103f8e84 100644
--- a/util/src/entities/Application.ts
+++ b/src/util/entities/Application.ts
diff --git a/util/src/entities/Attachment.ts b/src/util/entities/Attachment.ts
index 7b4b17eb..7b4b17eb 100644
--- a/util/src/entities/Attachment.ts
+++ b/src/util/entities/Attachment.ts
diff --git a/util/src/entities/AuditLog.ts b/src/util/entities/AuditLog.ts
index b003e7ba..b003e7ba 100644
--- a/util/src/entities/AuditLog.ts
+++ b/src/util/entities/AuditLog.ts
diff --git a/util/src/entities/BackupCodes.ts b/src/util/entities/BackupCodes.ts
index 9092c14e..9092c14e 100644
--- a/util/src/entities/BackupCodes.ts
+++ b/src/util/entities/BackupCodes.ts
diff --git a/util/src/entities/Ban.ts b/src/util/entities/Ban.ts
index 9504bd8e..9504bd8e 100644
--- a/util/src/entities/Ban.ts
+++ b/src/util/entities/Ban.ts
diff --git a/util/src/entities/BaseClass.ts b/src/util/entities/BaseClass.ts
index aecc2465..aecc2465 100644
--- a/util/src/entities/BaseClass.ts
+++ b/src/util/entities/BaseClass.ts
diff --git a/util/src/entities/Categories.ts b/src/util/entities/Categories.ts
index 81fbc303..81fbc303 100644
--- a/util/src/entities/Categories.ts
+++ b/src/util/entities/Categories.ts
diff --git a/util/src/entities/Channel.ts b/src/util/entities/Channel.ts
index a576d7af..a576d7af 100644
--- a/util/src/entities/Channel.ts
+++ b/src/util/entities/Channel.ts
diff --git a/util/src/entities/ClientRelease.ts b/src/util/entities/ClientRelease.ts
index c5afd307..c5afd307 100644
--- a/util/src/entities/ClientRelease.ts
+++ b/src/util/entities/ClientRelease.ts
diff --git a/util/src/entities/Config.ts b/src/util/entities/Config.ts
index 606fe901..606fe901 100644
--- a/util/src/entities/Config.ts
+++ b/src/util/entities/Config.ts
diff --git a/util/src/entities/ConnectedAccount.ts b/src/util/entities/ConnectedAccount.ts
index 09ae30ab..09ae30ab 100644
--- a/util/src/entities/ConnectedAccount.ts
+++ b/src/util/entities/ConnectedAccount.ts
diff --git a/util/src/entities/Emoji.ts b/src/util/entities/Emoji.ts
index a3615b7d..a3615b7d 100644
--- a/util/src/entities/Emoji.ts
+++ b/src/util/entities/Emoji.ts
diff --git a/util/src/entities/Encryption.ts b/src/util/entities/Encryption.ts
index 6b578d15..6b578d15 100644
--- a/util/src/entities/Encryption.ts
+++ b/src/util/entities/Encryption.ts
diff --git a/util/src/entities/Group.ts b/src/util/entities/Group.ts
index b24d38cf..b24d38cf 100644
--- a/util/src/entities/Group.ts
+++ b/src/util/entities/Group.ts
diff --git a/util/src/entities/Guild.ts b/src/util/entities/Guild.ts
index d146e577..d146e577 100644
--- a/util/src/entities/Guild.ts
+++ b/src/util/entities/Guild.ts
diff --git a/util/src/entities/Invite.ts b/src/util/entities/Invite.ts
index 1e0ebe52..1e0ebe52 100644
--- a/util/src/entities/Invite.ts
+++ b/src/util/entities/Invite.ts
diff --git a/util/src/entities/Member.ts b/src/util/entities/Member.ts
index baac58ed..baac58ed 100644
--- a/util/src/entities/Member.ts
+++ b/src/util/entities/Member.ts
diff --git a/util/src/entities/Message.ts b/src/util/entities/Message.ts
index ba3d4f2d..ba3d4f2d 100644
--- a/util/src/entities/Message.ts
+++ b/src/util/entities/Message.ts
diff --git a/util/src/entities/Migration.ts b/src/util/entities/Migration.ts
index 3f39ae72..3f39ae72 100644
--- a/util/src/entities/Migration.ts
+++ b/src/util/entities/Migration.ts
diff --git a/util/src/entities/Note.ts b/src/util/entities/Note.ts
index 36017c5e..36017c5e 100644
--- a/util/src/entities/Note.ts
+++ b/src/util/entities/Note.ts
diff --git a/util/src/entities/RateLimit.ts b/src/util/entities/RateLimit.ts
index f5916f6b..f5916f6b 100644
--- a/util/src/entities/RateLimit.ts
+++ b/src/util/entities/RateLimit.ts
diff --git a/util/src/entities/ReadState.ts b/src/util/entities/ReadState.ts
index b915573b..b915573b 100644
--- a/util/src/entities/ReadState.ts
+++ b/src/util/entities/ReadState.ts
diff --git a/util/src/entities/Recipient.ts b/src/util/entities/Recipient.ts
index a945f938..a945f938 100644
--- a/util/src/entities/Recipient.ts
+++ b/src/util/entities/Recipient.ts
diff --git a/util/src/entities/Relationship.ts b/src/util/entities/Relationship.ts
index c3592c76..c3592c76 100644
--- a/util/src/entities/Relationship.ts
+++ b/src/util/entities/Relationship.ts
diff --git a/util/src/entities/Role.ts b/src/util/entities/Role.ts
index 4b721b5b..4b721b5b 100644
--- a/util/src/entities/Role.ts
+++ b/src/util/entities/Role.ts
diff --git a/util/src/entities/Session.ts b/src/util/entities/Session.ts
index 969efa89..969efa89 100644
--- a/util/src/entities/Session.ts
+++ b/src/util/entities/Session.ts
diff --git a/util/src/entities/Sticker.ts b/src/util/entities/Sticker.ts
index 37bc6fbe..37bc6fbe 100644
--- a/util/src/entities/Sticker.ts
+++ b/src/util/entities/Sticker.ts
diff --git a/util/src/entities/StickerPack.ts b/src/util/entities/StickerPack.ts
index ec8c69a2..ec8c69a2 100644
--- a/util/src/entities/StickerPack.ts
+++ b/src/util/entities/StickerPack.ts
diff --git a/util/src/entities/Team.ts b/src/util/entities/Team.ts
index 22140b7f..22140b7f 100644
--- a/util/src/entities/Team.ts
+++ b/src/util/entities/Team.ts
diff --git a/util/src/entities/TeamMember.ts b/src/util/entities/TeamMember.ts
index b726e1e8..b726e1e8 100644
--- a/util/src/entities/TeamMember.ts
+++ b/src/util/entities/TeamMember.ts
diff --git a/util/src/entities/Template.ts b/src/util/entities/Template.ts
index 1d952283..1d952283 100644
--- a/util/src/entities/Template.ts
+++ b/src/util/entities/Template.ts
diff --git a/util/src/entities/User.ts b/src/util/entities/User.ts
index 61343e81..61343e81 100644
--- a/util/src/entities/User.ts
+++ b/src/util/entities/User.ts
diff --git a/util/src/entities/UserGroup.ts b/src/util/entities/UserGroup.ts
index 709b9d0b..709b9d0b 100644
--- a/util/src/entities/UserGroup.ts
+++ b/src/util/entities/UserGroup.ts
diff --git a/util/src/entities/UserSettings.ts b/src/util/entities/UserSettings.ts
index ef6f95af..ef6f95af 100644
--- a/util/src/entities/UserSettings.ts
+++ b/src/util/entities/UserSettings.ts
diff --git a/util/src/entities/VoiceState.ts b/src/util/entities/VoiceState.ts
index 75748a01..75748a01 100644
--- a/util/src/entities/VoiceState.ts
+++ b/src/util/entities/VoiceState.ts
diff --git a/util/src/entities/Webhook.ts b/src/util/entities/Webhook.ts
index 89538417..89538417 100644
--- a/util/src/entities/Webhook.ts
+++ b/src/util/entities/Webhook.ts
diff --git a/util/src/entities/index.ts b/src/util/entities/index.ts
index c6f12022..c6f12022 100644
--- a/util/src/entities/index.ts
+++ b/src/util/entities/index.ts
diff --git a/util/src/index.ts b/src/util/index.ts
index daeffd69..d944dc49 100644
--- a/util/src/index.ts
+++ b/src/util/index.ts
@@ -1,6 +1,7 @@
import "reflect-metadata";
export * from "./util/index";
+export * from "./config/index";
export * from "./interfaces/index";
export * from "./entities/index";
export * from "./dtos/index";
diff --git a/util/src/interfaces/Activity.ts b/src/util/interfaces/Activity.ts
index 43984afd..43984afd 100644
--- a/util/src/interfaces/Activity.ts
+++ b/src/util/interfaces/Activity.ts
diff --git a/util/src/interfaces/Event.ts b/src/util/interfaces/Event.ts
index be66c62f..be66c62f 100644
--- a/util/src/interfaces/Event.ts
+++ b/src/util/interfaces/Event.ts
diff --git a/util/src/interfaces/Interaction.ts b/src/util/interfaces/Interaction.ts
index 5d3aae24..5d3aae24 100644
--- a/util/src/interfaces/Interaction.ts
+++ b/src/util/interfaces/Interaction.ts
diff --git a/util/src/interfaces/Presence.ts b/src/util/interfaces/Presence.ts
index 7663891a..7663891a 100644
--- a/util/src/interfaces/Presence.ts
+++ b/src/util/interfaces/Presence.ts
diff --git a/util/src/interfaces/Status.ts b/src/util/interfaces/Status.ts
index 5d2e1bba..5d2e1bba 100644
--- a/util/src/interfaces/Status.ts
+++ b/src/util/interfaces/Status.ts
diff --git a/util/src/interfaces/index.ts b/src/util/interfaces/index.ts
index ab7fa429..ab7fa429 100644
--- a/util/src/interfaces/index.ts
+++ b/src/util/interfaces/index.ts
diff --git a/util/src/migrations/mariadb/1659901151025-initial.ts b/src/util/migrations/mariadb/1659901151025-initial.ts
index d15e0add..d15e0add 100644
--- a/util/src/migrations/mariadb/1659901151025-initial.ts
+++ b/src/util/migrations/mariadb/1659901151025-initial.ts
diff --git a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts b/src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts
index de173cfe..de173cfe 100644
--- a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts
+++ b/src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts
diff --git a/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts b/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts
index 87d075e4..87d075e4 100644
--- a/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts
+++ b/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts
diff --git a/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts b/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts
index 98da67db..98da67db 100644
--- a/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts
+++ b/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts
diff --git a/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts b/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts
index 04f8e6af..04f8e6af 100644
--- a/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts
+++ b/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts
diff --git a/util/src/migrations/postgres/1659899687168-initial.ts b/src/util/migrations/postgres/1659899687168-initial.ts
index 4ffb897d..4ffb897d 100644
--- a/util/src/migrations/postgres/1659899687168-initial.ts
+++ b/src/util/migrations/postgres/1659899687168-initial.ts
diff --git a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts b/src/util/migrations/postgres/1659921826567-premium_since_as_date.ts
index ac1e2edb..ac1e2edb 100644
--- a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts
+++ b/src/util/migrations/postgres/1659921826567-premium_since_as_date.ts
diff --git a/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts b/src/util/migrations/postgres/1660257815436-CodeCleanup2.ts
index 511c2f5a..511c2f5a 100644
--- a/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts
+++ b/src/util/migrations/postgres/1660257815436-CodeCleanup2.ts
diff --git a/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts b/src/util/migrations/postgres/1660258372154-CodeCleanup3.ts
index e2823a54..e2823a54 100644
--- a/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts
+++ b/src/util/migrations/postgres/1660258372154-CodeCleanup3.ts
diff --git a/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts b/src/util/migrations/postgres/1660260565996-CodeCleanup4.ts
index 0aaf7197..0aaf7197 100644
--- a/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts
+++ b/src/util/migrations/postgres/1660260565996-CodeCleanup4.ts
diff --git a/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts b/src/util/migrations/postgres/1660265907544-CodeCleanup5.ts
index 157d686a..157d686a 100644
--- a/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts
+++ b/src/util/migrations/postgres/1660265907544-CodeCleanup5.ts
diff --git a/util/src/migrations/sqlite/1659899662635-initial.ts b/src/util/migrations/sqlite/1659899662635-initial.ts
index f82e7b0d..f82e7b0d 100644
--- a/util/src/migrations/sqlite/1659899662635-initial.ts
+++ b/src/util/migrations/sqlite/1659899662635-initial.ts
diff --git a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts b/src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts
index 788be625..788be625 100644
--- a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts
+++ b/src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts
diff --git a/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts b/src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts
index 5a61db0d..5a61db0d 100644
--- a/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts
+++ b/src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts
diff --git a/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts b/src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts
index 53698256..53698256 100644
--- a/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts
+++ b/src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts
diff --git a/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts b/src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts
index 13fba6dd..13fba6dd 100644
--- a/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts
+++ b/src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts
diff --git a/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts b/src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts
index 33f4df03..33f4df03 100644
--- a/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts
+++ b/src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts
diff --git a/util/src/schemas/ActivitySchema.ts b/src/util/schemas/ActivitySchema.ts
index e18f66c8..e18f66c8 100644
--- a/util/src/schemas/ActivitySchema.ts
+++ b/src/util/schemas/ActivitySchema.ts
diff --git a/util/src/schemas/BanCreateSchema.ts b/src/util/schemas/BanCreateSchema.ts
index 64b02943..64b02943 100644
--- a/util/src/schemas/BanCreateSchema.ts
+++ b/src/util/schemas/BanCreateSchema.ts
diff --git a/util/src/schemas/BanModeratorSchema.ts b/src/util/schemas/BanModeratorSchema.ts
index b497d319..b497d319 100644
--- a/util/src/schemas/BanModeratorSchema.ts
+++ b/src/util/schemas/BanModeratorSchema.ts
diff --git a/util/src/schemas/BanRegistrySchema.ts b/src/util/schemas/BanRegistrySchema.ts
index 661f934f..661f934f 100644
--- a/util/src/schemas/BanRegistrySchema.ts
+++ b/src/util/schemas/BanRegistrySchema.ts
diff --git a/util/src/schemas/BulkDeleteSchema.ts b/src/util/schemas/BulkDeleteSchema.ts
index 26f88374..26f88374 100644
--- a/util/src/schemas/BulkDeleteSchema.ts
+++ b/src/util/schemas/BulkDeleteSchema.ts
diff --git a/util/src/schemas/ChannelModifySchema.ts b/src/util/schemas/ChannelModifySchema.ts
index 3cfcf7d2..3cfcf7d2 100644
--- a/util/src/schemas/ChannelModifySchema.ts
+++ b/src/util/schemas/ChannelModifySchema.ts
diff --git a/util/src/schemas/ChannelPermissionOverwriteSchema.ts b/src/util/schemas/ChannelPermissionOverwriteSchema.ts
index fe9ba860..fe9ba860 100644
--- a/util/src/schemas/ChannelPermissionOverwriteSchema.ts
+++ b/src/util/schemas/ChannelPermissionOverwriteSchema.ts
diff --git a/util/src/schemas/ChannelReorderSchema.ts b/src/util/schemas/ChannelReorderSchema.ts
index 3715f59e..3715f59e 100644
--- a/util/src/schemas/ChannelReorderSchema.ts
+++ b/src/util/schemas/ChannelReorderSchema.ts
diff --git a/util/src/schemas/DmChannelCreateSchema.ts b/src/util/schemas/DmChannelCreateSchema.ts
index d5afc6d7..d5afc6d7 100644
--- a/util/src/schemas/DmChannelCreateSchema.ts
+++ b/src/util/schemas/DmChannelCreateSchema.ts
diff --git a/util/src/schemas/EmojiCreateSchema.ts b/src/util/schemas/EmojiCreateSchema.ts
index d50c419c..d50c419c 100644
--- a/util/src/schemas/EmojiCreateSchema.ts
+++ b/src/util/schemas/EmojiCreateSchema.ts
diff --git a/util/src/schemas/EmojiModifySchema.ts b/src/util/schemas/EmojiModifySchema.ts
index 5529dbd5..5529dbd5 100644
--- a/util/src/schemas/EmojiModifySchema.ts
+++ b/src/util/schemas/EmojiModifySchema.ts
diff --git a/util/src/schemas/GuildCreateSchema.ts b/src/util/schemas/GuildCreateSchema.ts
index e4855119..e4855119 100644
--- a/util/src/schemas/GuildCreateSchema.ts
+++ b/src/util/schemas/GuildCreateSchema.ts
diff --git a/util/src/schemas/GuildTemplateCreateSchema.ts b/src/util/schemas/GuildTemplateCreateSchema.ts
index 1579001e..1579001e 100644
--- a/util/src/schemas/GuildTemplateCreateSchema.ts
+++ b/src/util/schemas/GuildTemplateCreateSchema.ts
diff --git a/util/src/schemas/GuildUpdateSchema.ts b/src/util/schemas/GuildUpdateSchema.ts
index 86527cf1..86527cf1 100644
--- a/util/src/schemas/GuildUpdateSchema.ts
+++ b/src/util/schemas/GuildUpdateSchema.ts
diff --git a/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts b/src/util/schemas/GuildUpdateWelcomeScreenSchema.ts
index b1e36920..b1e36920 100644
--- a/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts
+++ b/src/util/schemas/GuildUpdateWelcomeScreenSchema.ts
diff --git a/util/src/schemas/IdentifySchema.ts b/src/util/schemas/IdentifySchema.ts
index 8f95c6a0..f3d60fb3 100644
--- a/util/src/schemas/IdentifySchema.ts
+++ b/src/util/schemas/IdentifySchema.ts
@@ -2,7 +2,7 @@ import { ActivitySchema } from "./ActivitySchema";
export const IdentifySchema = {
token: String,
- $intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt
+ $intents: String, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt
$properties: Object,
// {
// // discord uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key
@@ -33,7 +33,7 @@ export const IdentifySchema = {
$presence: ActivitySchema,
$compress: Boolean,
$large_threshold: Number,
- $shard: [BigInt, BigInt],
+ $shard: [Number, Number],
$guild_subscriptions: Boolean,
$capabilities: Number,
$client_state: {
@@ -71,11 +71,11 @@ export interface IdentifySchema {
client_version?: string;
system_locale?: string;
};
- intents?: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt
+ intents?: string; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt
presence?: ActivitySchema;
compress?: boolean;
large_threshold?: number;
- shard?: [bigint, bigint];
+ shard?: [number, number];
guild_subscriptions?: boolean;
capabilities?: number;
client_state?: {
diff --git a/util/src/schemas/InviteCreateSchema.ts b/src/util/schemas/InviteCreateSchema.ts
index 7f6af338..7f6af338 100644
--- a/util/src/schemas/InviteCreateSchema.ts
+++ b/src/util/schemas/InviteCreateSchema.ts
diff --git a/util/src/schemas/LazyRequestSchema.ts b/src/util/schemas/LazyRequestSchema.ts
index 1fe658bb..1fe658bb 100644
--- a/util/src/schemas/LazyRequestSchema.ts
+++ b/src/util/schemas/LazyRequestSchema.ts
diff --git a/util/src/schemas/LoginSchema.ts b/src/util/schemas/LoginSchema.ts
index 358019a8..358019a8 100644
--- a/util/src/schemas/LoginSchema.ts
+++ b/src/util/schemas/LoginSchema.ts
diff --git a/util/src/schemas/MemberChangeSchema.ts b/src/util/schemas/MemberChangeSchema.ts
index a75c0ea0..a75c0ea0 100644
--- a/util/src/schemas/MemberChangeSchema.ts
+++ b/src/util/schemas/MemberChangeSchema.ts
diff --git a/util/src/schemas/MemberNickChangeSchema.ts b/src/util/schemas/MemberNickChangeSchema.ts
index e6a6a007..e6a6a007 100644
--- a/util/src/schemas/MemberNickChangeSchema.ts
+++ b/src/util/schemas/MemberNickChangeSchema.ts
diff --git a/util/src/schemas/MessageAcknowledgeSchema.ts b/src/util/schemas/MessageAcknowledgeSchema.ts
index 3f4eb2b6..3f4eb2b6 100644
--- a/util/src/schemas/MessageAcknowledgeSchema.ts
+++ b/src/util/schemas/MessageAcknowledgeSchema.ts
diff --git a/util/src/schemas/MessageCreateSchema.ts b/src/util/schemas/MessageCreateSchema.ts
index 7b1cc7b9..7b1cc7b9 100644
--- a/util/src/schemas/MessageCreateSchema.ts
+++ b/src/util/schemas/MessageCreateSchema.ts
diff --git a/util/src/schemas/MfaCodesSchema.ts b/src/util/schemas/MfaCodesSchema.ts
index 53230841..53230841 100644
--- a/util/src/schemas/MfaCodesSchema.ts
+++ b/src/util/schemas/MfaCodesSchema.ts
diff --git a/util/src/schemas/ModifyGuildStickerSchema.ts b/src/util/schemas/ModifyGuildStickerSchema.ts
index 6f24e4ce..6f24e4ce 100644
--- a/util/src/schemas/ModifyGuildStickerSchema.ts
+++ b/src/util/schemas/ModifyGuildStickerSchema.ts
diff --git a/util/src/schemas/PruneSchema.ts b/src/util/schemas/PruneSchema.ts
index eebac763..eebac763 100644
--- a/util/src/schemas/PruneSchema.ts
+++ b/src/util/schemas/PruneSchema.ts
diff --git a/util/src/schemas/PurgeSchema.ts b/src/util/schemas/PurgeSchema.ts
index 0eeef6f2..0eeef6f2 100644
--- a/util/src/schemas/PurgeSchema.ts
+++ b/src/util/schemas/PurgeSchema.ts
diff --git a/util/src/schemas/RegisterSchema.ts b/src/util/schemas/RegisterSchema.ts
index e53330d2..e53330d2 100644
--- a/util/src/schemas/RegisterSchema.ts
+++ b/src/util/schemas/RegisterSchema.ts
diff --git a/util/src/schemas/RelationshipPostSchema.ts b/src/util/schemas/RelationshipPostSchema.ts
index 40093700..40093700 100644
--- a/util/src/schemas/RelationshipPostSchema.ts
+++ b/src/util/schemas/RelationshipPostSchema.ts
diff --git a/util/src/schemas/RelationshipPutSchema.ts b/src/util/schemas/RelationshipPutSchema.ts
index f46966e0..f46966e0 100644
--- a/util/src/schemas/RelationshipPutSchema.ts
+++ b/src/util/schemas/RelationshipPutSchema.ts
diff --git a/util/src/schemas/RoleModifySchema.ts b/src/util/schemas/RoleModifySchema.ts
index d08a5022..d08a5022 100644
--- a/util/src/schemas/RoleModifySchema.ts
+++ b/src/util/schemas/RoleModifySchema.ts
diff --git a/util/src/schemas/RolePositionUpdateSchema.ts b/src/util/schemas/RolePositionUpdateSchema.ts
index 1019d504..1019d504 100644
--- a/util/src/schemas/RolePositionUpdateSchema.ts
+++ b/src/util/schemas/RolePositionUpdateSchema.ts
diff --git a/util/src/schemas/TemplateCreateSchema.ts b/src/util/schemas/TemplateCreateSchema.ts
index 72c19f68..72c19f68 100644
--- a/util/src/schemas/TemplateCreateSchema.ts
+++ b/src/util/schemas/TemplateCreateSchema.ts
diff --git a/util/src/schemas/TemplateModifySchema.ts b/src/util/schemas/TemplateModifySchema.ts
index 2231a1d2..2231a1d2 100644
--- a/util/src/schemas/TemplateModifySchema.ts
+++ b/src/util/schemas/TemplateModifySchema.ts
diff --git a/util/src/schemas/TotpDisableSchema.ts b/src/util/schemas/TotpDisableSchema.ts
index b73db64e..b73db64e 100644
--- a/util/src/schemas/TotpDisableSchema.ts
+++ b/src/util/schemas/TotpDisableSchema.ts
diff --git a/util/src/schemas/TotpEnableSchema.ts b/src/util/schemas/TotpEnableSchema.ts
index 44d9ebac..44d9ebac 100644
--- a/util/src/schemas/TotpEnableSchema.ts
+++ b/src/util/schemas/TotpEnableSchema.ts
diff --git a/util/src/schemas/TotpSchema.ts b/src/util/schemas/TotpSchema.ts
index fe54735e..fe54735e 100644
--- a/util/src/schemas/TotpSchema.ts
+++ b/src/util/schemas/TotpSchema.ts
diff --git a/util/src/schemas/UserModifySchema.ts b/src/util/schemas/UserModifySchema.ts
index 659f5841..659f5841 100644
--- a/util/src/schemas/UserModifySchema.ts
+++ b/src/util/schemas/UserModifySchema.ts
diff --git a/util/src/schemas/UserSettingsSchema.ts b/src/util/schemas/UserSettingsSchema.ts
index b497dff2..b497dff2 100644
--- a/util/src/schemas/UserSettingsSchema.ts
+++ b/src/util/schemas/UserSettingsSchema.ts
diff --git a/util/src/schemas/VanityUrlSchema.ts b/src/util/schemas/VanityUrlSchema.ts
index de32695a..de32695a 100644
--- a/util/src/schemas/VanityUrlSchema.ts
+++ b/src/util/schemas/VanityUrlSchema.ts
diff --git a/util/src/schemas/VoiceStateUpdateSchema.ts b/src/util/schemas/VoiceStateUpdateSchema.ts
index 02bb141b..02bb141b 100644
--- a/util/src/schemas/VoiceStateUpdateSchema.ts
+++ b/src/util/schemas/VoiceStateUpdateSchema.ts
diff --git a/util/src/schemas/WebhookCreateSchema.ts b/src/util/schemas/WebhookCreateSchema.ts
index 12ab1869..12ab1869 100644
--- a/util/src/schemas/WebhookCreateSchema.ts
+++ b/src/util/schemas/WebhookCreateSchema.ts
diff --git a/util/src/schemas/WidgetModifySchema.ts b/src/util/schemas/WidgetModifySchema.ts
index 390efc30..390efc30 100644
--- a/util/src/schemas/WidgetModifySchema.ts
+++ b/src/util/schemas/WidgetModifySchema.ts
diff --git a/util/src/schemas/index.ts b/src/util/schemas/index.ts
index a15ab4b0..a15ab4b0 100644
--- a/util/src/schemas/index.ts
+++ b/src/util/schemas/index.ts
diff --git a/util/src/util/ApiError.ts b/src/util/util/ApiError.ts
index f1a9b4f6..f1a9b4f6 100644
--- a/util/src/util/ApiError.ts
+++ b/src/util/util/ApiError.ts
diff --git a/util/src/util/Array.ts b/src/util/util/Array.ts
index 5a45d1b5..5a45d1b5 100644
--- a/util/src/util/Array.ts
+++ b/src/util/util/Array.ts
diff --git a/util/src/util/AutoUpdate.ts b/src/util/util/AutoUpdate.ts
index 7d020106..7d020106 100644
--- a/util/src/util/AutoUpdate.ts
+++ b/src/util/util/AutoUpdate.ts
diff --git a/util/src/util/BitField.ts b/src/util/util/BitField.ts
index 9bdbf6d7..9bdbf6d7 100644
--- a/util/src/util/BitField.ts
+++ b/src/util/util/BitField.ts
diff --git a/util/src/util/Categories.ts b/src/util/util/Categories.ts
index a3c69da7..a3c69da7 100644
--- a/util/src/util/Categories.ts
+++ b/src/util/util/Categories.ts
diff --git a/util/src/util/Config.ts b/src/util/util/Config.ts
index e0fb2a81..e0fb2a81 100644
--- a/util/src/util/Config.ts
+++ b/src/util/util/Config.ts
diff --git a/util/src/util/Constants.ts b/src/util/util/Constants.ts
index a5d3fcd2..a5d3fcd2 100644
--- a/util/src/util/Constants.ts
+++ b/src/util/util/Constants.ts
diff --git a/util/src/util/Database.ts b/src/util/util/Database.ts
index 84ce473d..84ce473d 100644
--- a/util/src/util/Database.ts
+++ b/src/util/util/Database.ts
diff --git a/util/src/util/Email.ts b/src/util/util/Email.ts
index 6885da33..6885da33 100644
--- a/util/src/util/Email.ts
+++ b/src/util/util/Email.ts
diff --git a/util/src/util/Event.ts b/src/util/util/Event.ts
index 90c24347..90c24347 100644
--- a/util/src/util/Event.ts
+++ b/src/util/util/Event.ts
diff --git a/util/src/util/FieldError.ts b/src/util/util/FieldError.ts
index 49968e1a..49968e1a 100644
--- a/util/src/util/FieldError.ts
+++ b/src/util/util/FieldError.ts
diff --git a/util/src/util/Intents.ts b/src/util/util/Intents.ts
index 1e840b76..1e840b76 100644
--- a/util/src/util/Intents.ts
+++ b/src/util/util/Intents.ts
diff --git a/util/src/util/InvisibleCharacters.ts b/src/util/util/InvisibleCharacters.ts
index 2b014e14..2b014e14 100644
--- a/util/src/util/InvisibleCharacters.ts
+++ b/src/util/util/InvisibleCharacters.ts
diff --git a/util/src/util/MFA.ts b/src/util/util/MFA.ts
index 2e47b2fc..2e47b2fc 100644
--- a/util/src/util/MFA.ts
+++ b/src/util/util/MFA.ts
diff --git a/util/src/util/MessageFlags.ts b/src/util/util/MessageFlags.ts
index b59295c4..b59295c4 100644
--- a/util/src/util/MessageFlags.ts
+++ b/src/util/util/MessageFlags.ts
diff --git a/util/src/util/Permissions.ts b/src/util/util/Permissions.ts
index c7400303..c7400303 100644
--- a/util/src/util/Permissions.ts
+++ b/src/util/util/Permissions.ts
diff --git a/util/src/util/RabbitMQ.ts b/src/util/util/RabbitMQ.ts
index 0f5eb6aa..0f5eb6aa 100644
--- a/util/src/util/RabbitMQ.ts
+++ b/src/util/util/RabbitMQ.ts
diff --git a/util/src/util/Regex.ts b/src/util/util/Regex.ts
index 83fc9fe8..83fc9fe8 100644
--- a/util/src/util/Regex.ts
+++ b/src/util/util/Regex.ts
diff --git a/util/src/util/Rights.ts b/src/util/util/Rights.ts
index 1c3906fb..1c3906fb 100644
--- a/util/src/util/Rights.ts
+++ b/src/util/util/Rights.ts
diff --git a/util/src/util/Snowflake.ts b/src/util/util/Snowflake.ts
index 0ef178fe..0ef178fe 100644
--- a/util/src/util/Snowflake.ts
+++ b/src/util/util/Snowflake.ts
diff --git a/util/src/util/String.ts b/src/util/util/String.ts
index 55f11e8d..55f11e8d 100644
--- a/util/src/util/String.ts
+++ b/src/util/util/String.ts
diff --git a/util/src/util/Token.ts b/src/util/util/Token.ts
index 5a3922d1..5a3922d1 100644
--- a/util/src/util/Token.ts
+++ b/src/util/util/Token.ts
diff --git a/util/src/util/TraverseDirectory.ts b/src/util/util/TraverseDirectory.ts
index 3d0d6279..3d0d6279 100644
--- a/util/src/util/TraverseDirectory.ts
+++ b/src/util/util/TraverseDirectory.ts
diff --git a/util/src/util/cdn.ts b/src/util/util/cdn.ts
index 9cfe4896..9cfe4896 100644
--- a/util/src/util/cdn.ts
+++ b/src/util/util/cdn.ts
diff --git a/util/src/util/imports/Checks.ts b/src/util/util/imports/Checks.ts
index 19a84171..19a84171 100644
--- a/util/src/util/imports/Checks.ts
+++ b/src/util/util/imports/Checks.ts
diff --git a/util/src/util/imports/HTTPError.ts b/src/util/util/imports/HTTPError.ts
index 56a7dd55..56a7dd55 100644
--- a/util/src/util/imports/HTTPError.ts
+++ b/src/util/util/imports/HTTPError.ts
diff --git a/util/src/util/imports/OrmUtils.ts b/src/util/util/imports/OrmUtils.ts
index 91d88172..91d88172 100644
--- a/util/src/util/imports/OrmUtils.ts
+++ b/src/util/util/imports/OrmUtils.ts
diff --git a/util/src/util/imports/index.ts b/src/util/util/imports/index.ts
index 18c47a3b..18c47a3b 100644
--- a/util/src/util/imports/index.ts
+++ b/src/util/util/imports/index.ts
diff --git a/util/src/util/index.ts b/src/util/util/index.ts
index 9e6059fa..9e6059fa 100644
--- a/util/src/util/index.ts
+++ b/src/util/util/index.ts
|