diff --git a/src/api/routes/-/healthz.ts b/src/api/routes/-/healthz.ts
index b98eb945..17bf2996 100644
--- a/src/api/routes/-/healthz.ts
+++ b/src/api/routes/-/healthz.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getDatabase } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/-/readyz.ts b/src/api/routes/-/readyz.ts
index b98eb945..17bf2996 100644
--- a/src/api/routes/-/readyz.ts
+++ b/src/api/routes/-/readyz.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getDatabase } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/applications/#application_id/bot/index.ts b/src/api/routes/applications/#application_id/bot/index.ts
index 443b5d02..f494c2e3 100644
--- a/src/api/routes/applications/#application_id/bot/index.ts
+++ b/src/api/routes/applications/#application_id/bot/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { verifyToken } from "node-2fa";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, User } from "@spacebar/database";
import { DiscordApiErrors, FieldErrors, createAppBotUser, generateToken, handleFile } from "@spacebar/util";
import { BotModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/#application_id/commands/#command_id/index.ts b/src/api/routes/applications/#application_id/commands/#command_id/index.ts
index 5aec66cd..8672e1c9 100644
--- a/src/api/routes/applications/#application_id/commands/#command_id/index.ts
+++ b/src/api/routes/applications/#application_id/commands/#command_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, ApplicationCommand } from "@spacebar/database";
import { FieldErrors, Snowflake } from "@spacebar/util";
import { ApplicationCommandCreateSchema, ApplicationCommandSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/#application_id/commands/index.ts b/src/api/routes/applications/#application_id/commands/index.ts
index c01a99f4..accd649b 100644
--- a/src/api/routes/applications/#application_id/commands/index.ts
+++ b/src/api/routes/applications/#application_id/commands/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { IsNull } from "typeorm";
import { ApplicationCommandCreateSchema, ApplicationCommandSchema } from "@spacebar/schemas";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, ApplicationCommand } from "@spacebar/database";
import { FieldErrors, Snowflake } from "@spacebar/util";
diff --git a/src/api/routes/applications/#application_id/entitlements.ts b/src/api/routes/applications/#application_id/entitlements.ts
index 4cd13b93..07c89367 100644
--- a/src/api/routes/applications/#application_id/entitlements.ts
+++ b/src/api/routes/applications/#application_id/entitlements.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/applications/#application_id/guilds/#guild_id/commands/#command_id/index.ts b/src/api/routes/applications/#application_id/guilds/#guild_id/commands/#command_id/index.ts
index 847d1824..96843255 100644
--- a/src/api/routes/applications/#application_id/guilds/#guild_id/commands/#command_id/index.ts
+++ b/src/api/routes/applications/#application_id/guilds/#guild_id/commands/#command_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, ApplicationCommand, Guild, Member } from "@spacebar/database";
import { FieldErrors, Snowflake } from "@spacebar/util";
import { ApplicationCommandCreateSchema, ApplicationCommandSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/#application_id/guilds/#guild_id/commands/index.ts b/src/api/routes/applications/#application_id/guilds/#guild_id/commands/index.ts
index 3664aa0c..de160c3f 100644
--- a/src/api/routes/applications/#application_id/guilds/#guild_id/commands/index.ts
+++ b/src/api/routes/applications/#application_id/guilds/#guild_id/commands/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, ApplicationCommand, Guild, Member } from "@spacebar/database";
import { FieldErrors, Snowflake } from "@spacebar/util";
import { ApplicationCommandCreateSchema, ApplicationCommandSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/#application_id/index.ts b/src/api/routes/applications/#application_id/index.ts
index 2a520def..0ada6042 100644
--- a/src/api/routes/applications/#application_id/index.ts
+++ b/src/api/routes/applications/#application_id/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { verifyToken } from "node-2fa";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, Guild, User } from "@spacebar/database";
import { DiscordApiErrors, FieldErrors, handleFile } from "@spacebar/util";
import { ApplicationModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/#application_id/skus.ts b/src/api/routes/applications/#application_id/skus.ts
index cd0eb0f7..6f071469 100644
--- a/src/api/routes/applications/#application_id/skus.ts
+++ b/src/api/routes/applications/#application_id/skus.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/applications/@me.ts b/src/api/routes/applications/@me.ts
index 308bb4ee..65034ebd 100644
--- a/src/api/routes/applications/@me.ts
+++ b/src/api/routes/applications/@me.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, Guild } from "@spacebar/database";
import { handleFile } from "@spacebar/util";
import { ApplicationModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/detectable.ts b/src/api/routes/applications/detectable.ts
index 688a7d12..6c7cc21a 100644
--- a/src/api/routes/applications/detectable.ts
+++ b/src/api/routes/applications/detectable.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { ApplicationDetectableResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/applications/index.ts b/src/api/routes/applications/index.ts
index 894f9331..6eac6243 100644
--- a/src/api/routes/applications/index.ts
+++ b/src/api/routes/applications/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application } from "@spacebar/database";
import { Config, createAppBotUser } from "@spacebar/util";
import { ApplicationCreateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/attachments/refresh-urls.ts b/src/api/routes/attachments/refresh-urls.ts
index 8f43c8ca..b9e90ea2 100644
--- a/src/api/routes/attachments/refresh-urls.ts
+++ b/src/api/routes/attachments/refresh-urls.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getUrlSignature, NewUrlSignatureData } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { RefreshUrlsRequestSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/auth/fingerprint.ts b/src/api/routes/auth/fingerprint.ts
index 2a77d3c7..8e18654c 100644
--- a/src/api/routes/auth/fingerprint.ts
+++ b/src/api/routes/auth/fingerprint.ts
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { createHash } from "node:crypto";
import { Snowflake } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/auth/generate-registration-tokens.ts b/src/api/routes/auth/generate-registration-tokens.ts
index 7b54d9ef..d787e22a 100644
--- a/src/api/routes/auth/generate-registration-tokens.ts
+++ b/src/api/routes/auth/generate-registration-tokens.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ValidRegistrationToken } from "@spacebar/database";
import { Random } from "@spacebar/extensions";
import { Config } from "@spacebar/util";
diff --git a/src/api/routes/auth/location-metadata.ts b/src/api/routes/auth/location-metadata.ts
index 6f2f26af..51f126a3 100644
--- a/src/api/routes/auth/location-metadata.ts
+++ b/src/api/routes/auth/location-metadata.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { IpDataClient } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/auth/logout.ts b/src/api/routes/auth/logout.ts
index 9ad9a873..cea15532 100644
--- a/src/api/routes/auth/logout.ts
+++ b/src/api/routes/auth/logout.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Session } from "@spacebar/database";
import { emitEvent } from "@spacebar/util";
diff --git a/src/api/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts
index 2d0d8fa0..72a79db9 100644
--- a/src/api/routes/auth/mfa/totp.ts
+++ b/src/api/routes/auth/mfa/totp.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { verifyToken } from "node-2fa";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { BackupCode, User } from "@spacebar/database";
import { generateToken } from "@spacebar/util";
import { TotpSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/auth/mfa/webauthn.ts b/src/api/routes/auth/mfa/webauthn.ts
index d948ccac..5d7af959 100644
--- a/src/api/routes/auth/mfa/webauthn.ts
+++ b/src/api/routes/auth/mfa/webauthn.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { ExpectedAssertionResult } from "fido2-lib";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { SecurityKey, User } from "@spacebar/database";
import { generateToken, verifyWebAuthnToken, WebAuthn } from "@spacebar/util";
import { WebAuthnTotpSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/auth/register.ts b/src/api/routes/auth/register.ts
index 379d2775..767d53cc 100644
--- a/src/api/routes/auth/register.ts
+++ b/src/api/routes/auth/register.ts
@@ -24,7 +24,7 @@ import { route, verifyCaptcha } from "@spacebar/api";
import { Invite, User, ValidRegistrationToken } from "@spacebar/database";
import { Config, FieldErrors, generateToken, IpDataClient, AbuseIpDbClient } from "@spacebar/util";
import { RegisterSchema } from "@spacebar/schemas";
-import { BcryptWorkerPool } from "../../../util/util/workers/bcrypt/BcryptWorkerPool";
+import { BcryptWorkerPool } from "@spacebar/util/util/workers/bcrypt/BcryptWorkerPool";
import { Stopwatch, TimeSpan } from "@spacebar/extensions";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/auth/reset.ts b/src/api/routes/auth/reset.ts
index 5460b17d..cbb13a1d 100644
--- a/src/api/routes/auth/reset.ts
+++ b/src/api/routes/auth/reset.ts
@@ -18,7 +18,7 @@
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { checkToken, Email, FieldErrors, generateToken } from "@spacebar/util";
import { PasswordResetSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/auth/sessions.ts b/src/api/routes/auth/sessions.ts
index c83c654c..0ea25a34 100644
--- a/src/api/routes/auth/sessions.ts
+++ b/src/api/routes/auth/sessions.ts
@@ -19,7 +19,7 @@
import { createHash } from "node:crypto";
import { Request, Response, Router } from "express";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { emitEvent } from "@spacebar/util";
import { SessionsLogoutSchema } from "@spacebar/schemas";
import { Session } from "@spacebar/database";
diff --git a/src/api/routes/auth/verify/resend.ts b/src/api/routes/auth/verify/resend.ts
index 98d5d69c..5aa0b6f8 100644
--- a/src/api/routes/auth/verify/resend.ts
+++ b/src/api/routes/auth/verify/resend.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { Email } from "@spacebar/util";
diff --git a/src/api/routes/auth/verify/view-backup-codes-challenge.ts b/src/api/routes/auth/verify/view-backup-codes-challenge.ts
index 4cfd476b..85b57bac 100644
--- a/src/api/routes/auth/verify/view-backup-codes-challenge.ts
+++ b/src/api/routes/auth/verify/view-backup-codes-challenge.ts
@@ -18,7 +18,7 @@
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { FieldErrors } from "@spacebar/util";
import { BackupCodesChallengeSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/auth/whoami.ts b/src/api/routes/auth/whoami.ts
index 0aaad2bb..6dd4c084 100644
--- a/src/api/routes/auth/whoami.ts
+++ b/src/api/routes/auth/whoami.ts
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/beaker.ts b/src/api/routes/beaker.ts
index 22c1904f..7bd1adbe 100644
--- a/src/api/routes/beaker.ts
+++ b/src/api/routes/beaker.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/channels/#channel_id/attachments.ts b/src/api/routes/channels/#channel_id/attachments.ts
index 8a14a135..7cdad8c6 100644
--- a/src/api/routes/channels/#channel_id/attachments.ts
+++ b/src/api/routes/channels/#channel_id/attachments.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, CloudAttachment } from "@spacebar/database";
import { Random } from "@spacebar/extensions";
import { Config, Permissions } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/directory-entries.ts b/src/api/routes/channels/#channel_id/directory-entries.ts
index 98958d56..dc2ad1ba 100644
--- a/src/api/routes/channels/#channel_id/directory-entries.ts
+++ b/src/api/routes/channels/#channel_id/directory-entries.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { HubDirectoryEntriesResponse } from "@spacebar/schemas";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/channels/#channel_id/greet.ts b/src/api/routes/channels/#channel_id/greet.ts
index c1c08781..c9c3c9b0 100644
--- a/src/api/routes/channels/#channel_id/greet.ts
+++ b/src/api/routes/channels/#channel_id/greet.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Message, Sticker } from "@spacebar/database";
import { emitEvent, MessageCreateEvent, Permissions } from "@spacebar/util";
import { GreetRequestSchema, MessageType } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/index.ts b/src/api/routes/channels/#channel_id/index.ts
index 1c857261..e6069b9f 100644
--- a/src/api/routes/channels/#channel_id/index.ts
+++ b/src/api/routes/channels/#channel_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Recipient } from "@spacebar/database";
import { ChannelDeleteEvent, ChannelUpdateEvent, emitEvent, handleFile, Config, FieldError, ErrorList, makeObjectErrorContent } from "@spacebar/util";
import { ChannelModifySchema, ChannelType } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/invites.ts b/src/api/routes/channels/#channel_id/invites.ts
index 6375a239..a6896cb7 100644
--- a/src/api/routes/channels/#channel_id/invites.ts
+++ b/src/api/routes/channels/#channel_id/invites.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild, Invite, PublicInviteRelation, User } from "@spacebar/database";
import { InviteCreateEvent, emitEvent } from "@spacebar/util";
import { InviteCreateSchema, isTextChannel } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts
index ec187d8c..d0e0adbc 100644
--- a/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ReadState } from "@spacebar/database";
import { emitEvent, getPermission, MessageAckEvent } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts
index 2aad157d..0db480a6 100644
--- a/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts
index 709b7c73..6348737a 100644
--- a/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts
+++ b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Emoji, Member, Message, User } from "@spacebar/database";
import { arrayRemove } from "@spacebar/extensions";
import {
diff --git a/src/api/routes/channels/#channel_id/messages/bulk-delete.ts b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
index 70cbb3e4..ba5b54de 100644
--- a/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
+++ b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Message } from "@spacebar/database";
import { Config, emitEvent, getPermission, getRights, MessageDeleteBulkEvent } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/messages/pins/index.ts b/src/api/routes/channels/#channel_id/messages/pins/index.ts
index 766af429..443112b9 100644
--- a/src/api/routes/channels/#channel_id/messages/pins/index.ts
+++ b/src/api/routes/channels/#channel_id/messages/pins/index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { IsNull, Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Message, User } from "@spacebar/database";
import { ChannelPinsUpdateEvent, Config, DiscordApiErrors, emitEvent, MessageCreateEvent, MessageUpdateEvent } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/messages/search.ts b/src/api/routes/channels/#channel_id/messages/search.ts
index ab55f8ca..4cb7b897 100644
--- a/src/api/routes/channels/#channel_id/messages/search.ts
+++ b/src/api/routes/channels/#channel_id/messages/search.ts
@@ -21,7 +21,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { FindManyOptions, Like } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Message } from "@spacebar/database";
import { FieldErrors, getPermission } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/permissions.ts b/src/api/routes/channels/#channel_id/permissions.ts
index b1129d21..2f0a0de3 100644
--- a/src/api/routes/channels/#channel_id/permissions.ts
+++ b/src/api/routes/channels/#channel_id/permissions.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member, Role } from "@spacebar/database";
import { ChannelUpdateEvent, emitEvent } from "@spacebar/util";
import { ChannelPermissionOverwriteSchema, ChannelPermissionOverwrite, ChannelPermissionOverwriteType } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/pins.ts b/src/api/routes/channels/#channel_id/pins.ts
index 27aeaac4..136ac34e 100644
--- a/src/api/routes/channels/#channel_id/pins.ts
+++ b/src/api/routes/channels/#channel_id/pins.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { IsNull, Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ChannelPinsUpdateEvent, Config, DiscordApiErrors, emitEvent, MessageCreateEvent, MessageUpdateEvent } from "@spacebar/util";
import { Message, User } from "@spacebar/database";
diff --git a/src/api/routes/channels/#channel_id/post-data.ts b/src/api/routes/channels/#channel_id/post-data.ts
index f8359f99..8e593d65 100644
--- a/src/api/routes/channels/#channel_id/post-data.ts
+++ b/src/api/routes/channels/#channel_id/post-data.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { messageUpload } from "./messages";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member, Message } from "@spacebar/database";
import { PostDataSchema, PublicMessage } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/purge.ts b/src/api/routes/channels/#channel_id/purge.ts
index 69bdd4e7..d1bef504 100644
--- a/src/api/routes/channels/#channel_id/purge.ts
+++ b/src/api/routes/channels/#channel_id/purge.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { Between, FindManyOptions, FindOperator, Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Message } from "@spacebar/database";
import { MessageDeleteBulkEvent, emitEvent, getPermission, getRights } from "@spacebar/util";
import { isTextChannel, PurgeSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/recipients.ts b/src/api/routes/channels/#channel_id/recipients.ts
index 7e7c5d34..4acc1cb6 100644
--- a/src/api/routes/channels/#channel_id/recipients.ts
+++ b/src/api/routes/channels/#channel_id/recipients.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Recipient, User } from "@spacebar/database";
import { ChannelRecipientAddEvent, DiscordApiErrors, DmChannelDTO, emitEvent } from "@spacebar/util";
import { ChannelType, PublicUserProjection } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/tags.ts b/src/api/routes/channels/#channel_id/tags.ts
index 73ca8a9d..8e9f2043 100644
--- a/src/api/routes/channels/#channel_id/tags.ts
+++ b/src/api/routes/channels/#channel_id/tags.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Tag } from "@spacebar/database";
import { ChannelUpdateEvent, emitEvent } from "@spacebar/util";
import { TagCreateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/thread-members.ts b/src/api/routes/channels/#channel_id/thread-members.ts
index 036bc3dc..837fb6c2 100644
--- a/src/api/routes/channels/#channel_id/thread-members.ts
+++ b/src/api/routes/channels/#channel_id/thread-members.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { MoreThan } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member, ThreadMember, ThreadMemberFlags } from "@spacebar/database";
import { emitEvent, Permissions, ThreadCreateEvent, ThreadDeleteEvent, ThreadMembersUpdateEvent } from "@spacebar/util";
import { ChannelType, Snowflake } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/#channel_id/typing.ts b/src/api/routes/channels/#channel_id/typing.ts
index b8ef6433..930672b0 100644
--- a/src/api/routes/channels/#channel_id/typing.ts
+++ b/src/api/routes/channels/#channel_id/typing.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member } from "@spacebar/database";
import { emitEvent, TypingStartEvent } from "@spacebar/util";
diff --git a/src/api/routes/channels/#channel_id/webhooks.ts b/src/api/routes/channels/#channel_id/webhooks.ts
index 0dac7574..4c8e470d 100644
--- a/src/api/routes/channels/#channel_id/webhooks.ts
+++ b/src/api/routes/channels/#channel_id/webhooks.ts
@@ -19,7 +19,7 @@
import crypto from "node:crypto";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, Channel, User, Webhook } from "@spacebar/database";
import { Config, DiscordApiErrors, handleFile, ValidateName } from "@spacebar/util";
import { isTextChannel, WebhookCreateSchema, WebhookType } from "@spacebar/schemas";
diff --git a/src/api/routes/channels/preload-messages.ts b/src/api/routes/channels/preload-messages.ts
index 39fbd984..80e0ddf7 100644
--- a/src/api/routes/channels/preload-messages.ts
+++ b/src/api/routes/channels/preload-messages.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Message } from "@spacebar/database";
import { Config } from "@spacebar/util";
import { PreloadMessagesRequestSchema, PreloadMessagesResponseSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/collectibles-categories.ts b/src/api/routes/collectibles-categories.ts
index ffeff099..c71fde1c 100644
--- a/src/api/routes/collectibles-categories.ts
+++ b/src/api/routes/collectibles-categories.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { CollectiblesCategoriesResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/collectibles-shop.ts b/src/api/routes/collectibles-shop.ts
index 756c80c5..3d69a974 100644
--- a/src/api/routes/collectibles-shop.ts
+++ b/src/api/routes/collectibles-shop.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { CollectiblesShopResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/connections/#connection_name/#connection_id/refresh.ts b/src/api/routes/connections/#connection_name/#connection_id/refresh.ts
index f575f0a0..4488cc86 100644
--- a/src/api/routes/connections/#connection_name/#connection_id/refresh.ts
+++ b/src/api/routes/connections/#connection_name/#connection_id/refresh.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/connections/#connection_name/authorize.ts b/src/api/routes/connections/#connection_name/authorize.ts
index 7d3d03eb..fadc2a61 100644
--- a/src/api/routes/connections/#connection_name/authorize.ts
+++ b/src/api/routes/connections/#connection_name/authorize.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { ConnectionStore, FieldErrors } from "@spacebar/util";
diff --git a/src/api/routes/connections/#connection_name/callback.ts b/src/api/routes/connections/#connection_name/callback.ts
index 7fc72530..a162b689 100644
--- a/src/api/routes/connections/#connection_name/callback.ts
+++ b/src/api/routes/connections/#connection_name/callback.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ConnectionStore, emitEvent, FieldErrors } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { ConnectionCallbackSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/connections/index.ts b/src/api/routes/connections/index.ts
index f63d1323..cf6fcbd3 100644
--- a/src/api/routes/connections/index.ts
+++ b/src/api/routes/connections/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ConnectionConfig } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/discoverable-guilds.ts b/src/api/routes/discoverable-guilds.ts
index bc850bc3..dc22126a 100644
--- a/src/api/routes/discoverable-guilds.ts
+++ b/src/api/routes/discoverable-guilds.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { ArrayContains, In, Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member } from "@spacebar/database";
import { Config } from "@spacebar/util";
diff --git a/src/api/routes/discovery.ts b/src/api/routes/discovery.ts
index 1afe7b23..48728403 100644
--- a/src/api/routes/discovery.ts
+++ b/src/api/routes/discovery.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Categories } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/download.ts b/src/api/routes/download.ts
index 9af0f47c..3420bc1c 100644
--- a/src/api/routes/download.ts
+++ b/src/api/routes/download.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ClientRelease } from "@spacebar/database";
import { FieldErrors } from "@spacebar/util";
diff --git a/src/api/routes/emojis/#emoji_id/source.ts b/src/api/routes/emojis/#emoji_id/source.ts
index d7556fd2..e9775e01 100644
--- a/src/api/routes/emojis/#emoji_id/source.ts
+++ b/src/api/routes/emojis/#emoji_id/source.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Emoji, Guild, Member } from "@spacebar/database";
import { DiscordApiErrors } from "@spacebar/util";
import { APIErrorResponse, EmojiGuild, EmojiSourceResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/experiments.ts b/src/api/routes/experiments.ts
index 9dd54cc0..eb9d0849 100644
--- a/src/api/routes/experiments.ts
+++ b/src/api/routes/experiments.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/games/detectable.ts b/src/api/routes/games/detectable.ts
index e1415ea3..997bbb95 100644
--- a/src/api/routes/games/detectable.ts
+++ b/src/api/routes/games/detectable.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { ApplicationDetectableResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/gateway/bot.ts b/src/api/routes/gateway/bot.ts
index 34a648cd..e77c1914 100644
--- a/src/api/routes/gateway/bot.ts
+++ b/src/api/routes/gateway/bot.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/gateway/index.ts b/src/api/routes/gateway/index.ts
index b85fcd9f..d0bb8a3f 100644
--- a/src/api/routes/gateway/index.ts
+++ b/src/api/routes/gateway/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/gifs/search.ts b/src/api/routes/gifs/search.ts
index cd20b8d4..13c24659 100644
--- a/src/api/routes/gifs/search.ts
+++ b/src/api/routes/gifs/search.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getGifApiKey, parseGifResult } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { TenorGif, TenorMediaTypes } from "@spacebar/schemas";
diff --git a/src/api/routes/gifs/trending-gifs.ts b/src/api/routes/gifs/trending-gifs.ts
index 99aa528b..14d3d4dc 100644
--- a/src/api/routes/gifs/trending-gifs.ts
+++ b/src/api/routes/gifs/trending-gifs.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getGifApiKey, parseGifResult } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { TenorGif, TenorMediaTypes } from "@spacebar/schemas";
diff --git a/src/api/routes/gifs/trending.ts b/src/api/routes/gifs/trending.ts
index 4a7a3f3c..1393d6b5 100644
--- a/src/api/routes/gifs/trending.ts
+++ b/src/api/routes/gifs/trending.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { getGifApiKey, parseGifResult } from "@spacebar/util";
import { Request, Response, Router } from "express";
import { TenorCategoriesResults, TenorTrendingResults } from "@spacebar/schemas";
diff --git a/src/api/routes/guild-recommendations.ts b/src/api/routes/guild-recommendations.ts
index 0245af83..9587e858 100644
--- a/src/api/routes/guild-recommendations.ts
+++ b/src/api/routes/guild-recommendations.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { ArrayContains } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild } from "@spacebar/database";
import { Config } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/application-command-index.ts b/src/api/routes/guilds/#guild_id/application-command-index.ts
index f2e5cddc..e9342e90 100644
--- a/src/api/routes/guilds/#guild_id/application-command-index.ts
+++ b/src/api/routes/guilds/#guild_id/application-command-index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { IsNull } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, ApplicationCommand, Member } from "@spacebar/database";
import { Snowflake } from "@spacebar/util";
import { ApplicationCommandSchema, ApplicationCommandType } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/audit-logs.ts b/src/api/routes/guilds/#guild_id/audit-logs.ts
index b3bfab3c..ccbe4dc6 100644
--- a/src/api/routes/guilds/#guild_id/audit-logs.ts
+++ b/src/api/routes/guilds/#guild_id/audit-logs.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
//TODO: implement audit logs
diff --git a/src/api/routes/guilds/#guild_id/auto-moderation/rules.ts b/src/api/routes/guilds/#guild_id/auto-moderation/rules.ts
index 6ad57899..dc4328d1 100644
--- a/src/api/routes/guilds/#guild_id/auto-moderation/rules.ts
+++ b/src/api/routes/guilds/#guild_id/auto-moderation/rules.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User, AutomodRule } from "@spacebar/database";
import { AutomodRuleSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/bans.ts b/src/api/routes/guilds/#guild_id/bans.ts
index 6afac611..c844d55b 100644
--- a/src/api/routes/guilds/#guild_id/bans.ts
+++ b/src/api/routes/guilds/#guild_id/bans.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Ban, Member, User } from "@spacebar/database";
import { DiscordApiErrors, GuildBanAddEvent, GuildBanRemoveEvent, emitEvent } from "@spacebar/util";
import { BanCreateSchema, BanRegistrySchema, GuildBanResponse, GuildBansResponse, PublicUser } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/bulk-ban.ts b/src/api/routes/guilds/#guild_id/bulk-ban.ts
index 29d7e3a1..ab1affec 100644
--- a/src/api/routes/guilds/#guild_id/bulk-ban.ts
+++ b/src/api/routes/guilds/#guild_id/bulk-ban.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Ban, Member, User } from "@spacebar/database";
import { Config, DiscordApiErrors, GuildBanAddEvent, emitEvent } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/channels.ts b/src/api/routes/guilds/#guild_id/channels.ts
index 267adc16..09bcaa54 100644
--- a/src/api/routes/guilds/#guild_id/channels.ts
+++ b/src/api/routes/guilds/#guild_id/channels.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild } from "@spacebar/database";
import { ChannelUpdateEvent, emitEvent } from "@spacebar/util";
import { ChannelCreateSchema, ChannelReorderSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/delete.ts b/src/api/routes/guilds/#guild_id/delete.ts
index 88d222c0..c306dd1b 100644
--- a/src/api/routes/guilds/#guild_id/delete.ts
+++ b/src/api/routes/guilds/#guild_id/delete.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild } from "@spacebar/database";
import { GuildDeleteEvent, emitEvent } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/discovery-requirements.ts b/src/api/routes/guilds/#guild_id/discovery-requirements.ts
index d11d9d91..4f6c320d 100644
--- a/src/api/routes/guilds/#guild_id/discovery-requirements.ts
+++ b/src/api/routes/guilds/#guild_id/discovery-requirements.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/guilds/#guild_id/emojis.ts b/src/api/routes/guilds/#guild_id/emojis.ts
index 1d88de5d..6aadc2b1 100644
--- a/src/api/routes/guilds/#guild_id/emojis.ts
+++ b/src/api/routes/guilds/#guild_id/emojis.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Emoji, Member } from "@spacebar/database";
import { Config, DiscordApiErrors, GuildEmojisUpdateEvent, Snowflake, emitEvent, handleFile } from "@spacebar/util";
import { EmojiCreateSchema, EmojiModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/index.ts b/src/api/routes/guilds/#guild_id/index.ts
index 72e59f87..a3767d4c 100644
--- a/src/api/routes/guilds/#guild_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild, Member } from "@spacebar/database";
import { DiscordApiErrors, GuildUpdateEvent, Permissions, SpacebarApiErrors, emitEvent, getPermission, getRights, handleFile } from "@spacebar/util";
import { GuildCreateResponse, GuildUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/integrations.ts b/src/api/routes/guilds/#guild_id/integrations.ts
index 7eb088e1..2b367632 100644
--- a/src/api/routes/guilds/#guild_id/integrations.ts
+++ b/src/api/routes/guilds/#guild_id/integrations.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
//TODO: implement integrations list
diff --git a/src/api/routes/guilds/#guild_id/invites.ts b/src/api/routes/guilds/#guild_id/invites.ts
index aadd040a..697df8db 100644
--- a/src/api/routes/guilds/#guild_id/invites.ts
+++ b/src/api/routes/guilds/#guild_id/invites.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Invite, PublicInviteRelation } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/guilds/#guild_id/member-verification.ts b/src/api/routes/guilds/#guild_id/member-verification.ts
index aaf95a85..88d6c035 100644
--- a/src/api/routes/guilds/#guild_id/member-verification.ts
+++ b/src/api/routes/guilds/#guild_id/member-verification.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
index ef5b3bf5..bfe8bb2e 100644
--- a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Emoji, Guild, Member, Role, Sticker } from "@spacebar/database";
import { Config, DiscordApiErrors, emitEvent, getPermission, getRights, GuildMemberUpdateEvent, handleFile } from "@spacebar/util";
import { MemberChangeSchema, PublicMemberProjection, PublicUserProjection } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts
index 4932bec9..b8b6d364 100644
--- a/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts
+++ b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member } from "@spacebar/database";
import { getPermission, PermissionResolvable } from "@spacebar/util";
diff --git a/src/api/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 6874abbb..f27cf86b 100644
--- a/src/api/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
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member } from "@spacebar/database";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/guilds/#guild_id/members/index.ts b/src/api/routes/guilds/#guild_id/members/index.ts
index 942da645..3c97a289 100644
--- a/src/api/routes/guilds/#guild_id/members/index.ts
+++ b/src/api/routes/guilds/#guild_id/members/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { MoreThan } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member } from "@spacebar/database";
import { PublicMemberProjection } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/messages/search.ts b/src/api/routes/guilds/#guild_id/messages/search.ts
index c3c4b340..ca6d40ed 100644
--- a/src/api/routes/guilds/#guild_id/messages/search.ts
+++ b/src/api/routes/guilds/#guild_id/messages/search.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { Between, FindManyOptions, FindOptionsWhere, In, LessThan, Like, MoreThan } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member, Message } from "@spacebar/database";
import { FieldErrors, Snowflake, getPermission } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/premium.ts b/src/api/routes/guilds/#guild_id/premium.ts
index f73de119..a5b57778 100644
--- a/src/api/routes/guilds/#guild_id/premium.ts
+++ b/src/api/routes/guilds/#guild_id/premium.ts
@@ -17,7 +17,7 @@
*/
import { Router, Request, Response } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
router.get("/subscriptions", route({}), (req: Request, res: Response) => {
diff --git a/src/api/routes/guilds/#guild_id/profile.ts b/src/api/routes/guilds/#guild_id/profile.ts
index 3156629b..07d2a64b 100644
--- a/src/api/routes/guilds/#guild_id/profile.ts
+++ b/src/api/routes/guilds/#guild_id/profile.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild } from "@spacebar/database";
import { Request, Response, Router } from "express";
import { GuildProfileResponse, GuildVisibilityLevel } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/profile/index.ts b/src/api/routes/guilds/#guild_id/profile/index.ts
index 8352a379..08ea7ee5 100644
--- a/src/api/routes/guilds/#guild_id/profile/index.ts
+++ b/src/api/routes/guilds/#guild_id/profile/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member } from "@spacebar/database";
import { emitEvent, getPermission, getRights, GuildMemberUpdateEvent, handleFile, OrmUtils, Permissions } from "@spacebar/util";
import { MemberChangeProfileSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/prune.ts b/src/api/routes/guilds/#guild_id/prune.ts
index 7b19737e..6b8a1f56 100644
--- a/src/api/routes/guilds/#guild_id/prune.ts
+++ b/src/api/routes/guilds/#guild_id/prune.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { IsNull, LessThan } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member } from "@spacebar/database";
import { Snowflake } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts
index b3c276df..823d14bd 100644
--- a/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member, Role } from "@spacebar/database";
import { emitEvent, GuildRoleDeleteEvent, GuildRoleUpdateEvent, handleFile } from "@spacebar/util";
import { RoleModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
index 20ec5dac..7e05902e 100644
--- a/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
@@ -18,7 +18,7 @@
import { Router, Request, Response } from "express";
import { Member } from "@spacebar/database";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
index 349db75d..8bf1fbd0 100644
--- a/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
@@ -17,7 +17,7 @@
*/
import { Router, Request, Response } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member } from "@spacebar/database";
import { arrayPartition } from "@spacebar/extensions";
import { DiscordApiErrors } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/roles/index.ts b/src/api/routes/guilds/#guild_id/roles/index.ts
index 5f792222..403d886b 100644
--- a/src/api/routes/guilds/#guild_id/roles/index.ts
+++ b/src/api/routes/guilds/#guild_id/roles/index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member, Role } from "@spacebar/database";
import { Config, DiscordApiErrors, emitEvent, GuildRoleCreateEvent, GuildRoleUpdateEvent, Snowflake } from "@spacebar/util";
import { RoleModifySchema, RolePositionUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/roles/member-counts.ts b/src/api/routes/guilds/#guild_id/roles/member-counts.ts
index 2aa8aaec..a823a37f 100644
--- a/src/api/routes/guilds/#guild_id/roles/member-counts.ts
+++ b/src/api/routes/guilds/#guild_id/roles/member-counts.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { Role, Member } from "@spacebar/database";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/guilds/#guild_id/shield.svg.ts b/src/api/routes/guilds/#guild_id/shield.svg.ts
index 5ccf082c..18803a9d 100644
--- a/src/api/routes/guilds/#guild_id/shield.svg.ts
+++ b/src/api/routes/guilds/#guild_id/shield.svg.ts
@@ -20,7 +20,7 @@ import fs from "node:fs";
import path from "node:path";
import { makeBadge } from "badge-maker";
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member } from "@spacebar/database";
import { DiscordApiErrors } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/stickers.ts b/src/api/routes/guilds/#guild_id/stickers.ts
index 127d30f3..ee45f01b 100644
--- a/src/api/routes/guilds/#guild_id/stickers.ts
+++ b/src/api/routes/guilds/#guild_id/stickers.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import multer from "multer";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Member, Sticker } from "@spacebar/database";
import { GuildStickersUpdateEvent, Snowflake, emitEvent, uploadFile, Config, DiscordApiErrors } from "@spacebar/util";
import { ModifyGuildStickerSchema, StickerFormatType, StickerType } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/templates.ts b/src/api/routes/guilds/#guild_id/templates.ts
index b6d51373..613ee516 100644
--- a/src/api/routes/guilds/#guild_id/templates.ts
+++ b/src/api/routes/guilds/#guild_id/templates.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Template } from "@spacebar/database";
import { generateCode } from "@spacebar/extensions";
diff --git a/src/api/routes/guilds/#guild_id/vanity-url.ts b/src/api/routes/guilds/#guild_id/vanity-url.ts
index 6a182fb3..8db0ac68 100644
--- a/src/api/routes/guilds/#guild_id/vanity-url.ts
+++ b/src/api/routes/guilds/#guild_id/vanity-url.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild, Invite } from "@spacebar/database";
import { ChannelType, VanityUrlSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts
index 75824e9d..5d0e60ad 100644
--- a/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts
+++ b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member, VoiceState } from "@spacebar/database";
import { DiscordApiErrors, emitEvent, getPermission, VoiceStateUpdateEvent } from "@spacebar/util";
import { ChannelType, VoiceStateUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/webhooks.ts b/src/api/routes/guilds/#guild_id/webhooks.ts
index 4b46af01..506ea518 100644
--- a/src/api/routes/guilds/#guild_id/webhooks.ts
+++ b/src/api/routes/guilds/#guild_id/webhooks.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Webhook } from "@spacebar/database";
import { Config } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/welcome-screen.ts b/src/api/routes/guilds/#guild_id/welcome-screen.ts
index c60cf4f6..878d5c98 100644
--- a/src/api/routes/guilds/#guild_id/welcome-screen.ts
+++ b/src/api/routes/guilds/#guild_id/welcome-screen.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild, Member } from "@spacebar/database";
import { GuildUpdateWelcomeScreenSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/#guild_id/widget.json.ts b/src/api/routes/guilds/#guild_id/widget.json.ts
index 9cb4d928..4f875c05 100644
--- a/src/api/routes/guilds/#guild_id/widget.json.ts
+++ b/src/api/routes/guilds/#guild_id/widget.json.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Guild, Member, Invite } from "@spacebar/database";
import { Random } from "@spacebar/extensions";
import { Config, DiscordApiErrors, Permissions } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/widget.png.ts b/src/api/routes/guilds/#guild_id/widget.png.ts
index aad2da1b..58465d45 100644
--- a/src/api/routes/guilds/#guild_id/widget.png.ts
+++ b/src/api/routes/guilds/#guild_id/widget.png.ts
@@ -22,7 +22,7 @@ import fs from "node:fs";
import path from "node:path";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { storage } from "@spacebar/cdn/util/Storage";
import { Guild } from "@spacebar/database";
import { DiscordApiErrors } from "@spacebar/util";
diff --git a/src/api/routes/guilds/#guild_id/widget.ts b/src/api/routes/guilds/#guild_id/widget.ts
index 2e2b3118..397c6099 100644
--- a/src/api/routes/guilds/#guild_id/widget.ts
+++ b/src/api/routes/guilds/#guild_id/widget.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild } from "@spacebar/database";
import { Request, Response, Router } from "express";
import { WidgetModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/automations/email-domain-lookup.ts b/src/api/routes/guilds/automations/email-domain-lookup.ts
index b1027cae..abf4f89f 100644
--- a/src/api/routes/guilds/automations/email-domain-lookup.ts
+++ b/src/api/routes/guilds/automations/email-domain-lookup.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { FieldErrors } from "@spacebar/util";
import emailProviders from "email-providers/all.json";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/guilds/index.ts b/src/api/routes/guilds/index.ts
index f9370f27..f4561691 100644
--- a/src/api/routes/guilds/index.ts
+++ b/src/api/routes/guilds/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member } from "@spacebar/database";
import { Config, DiscordApiErrors, getRights } from "@spacebar/util";
import { GuildCreateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/guilds/templates/index.ts b/src/api/routes/guilds/templates/index.ts
index d934d299..b203e15d 100644
--- a/src/api/routes/guilds/templates/index.ts
+++ b/src/api/routes/guilds/templates/index.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member, Tag, Template } from "@spacebar/database";
import { Config, DiscordApiErrors } from "@spacebar/util";
import { ChannelType, GuildTemplateCreateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/hub-waitlist.ts b/src/api/routes/hub-waitlist.ts
index bd9a8253..d95a7f9d 100644
--- a/src/api/routes/hub-waitlist.ts
+++ b/src/api/routes/hub-waitlist.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { HubWaitlistSignupResponse, HubWaitlistSignupSchema } from "@spacebar/schemas";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/interactions/index.ts b/src/api/routes/interactions/index.ts
index 47b189fd..a556c380 100644
--- a/src/api/routes/interactions/index.ts
+++ b/src/api/routes/interactions/index.ts
@@ -19,7 +19,7 @@
import { randomBytes } from "node:crypto";
import { Request, Response, Router } from "express";
import { InteractionFailureReason, InteractionSchema, InteractionType } from "@spacebar/schemas";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member, Message } from "@spacebar/database";
import { Config, emitEvent, getPermission, InteractionCreateEvent, InteractionFailureEvent, Snowflake } from "@spacebar/util";
import { pendingInteractions } from "@spacebar/util/imports/Interactions";
diff --git a/src/api/routes/invites/index.ts b/src/api/routes/invites/index.ts
index 323511ce..0728d77e 100644
--- a/src/api/routes/invites/index.ts
+++ b/src/api/routes/invites/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Ban, Guild, Invite, PublicInviteRelation } from "@spacebar/database";
import { Config, DiscordApiErrors, emitEvent, getPermission, InviteDeleteEvent } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/oauth2/applications/@me.ts b/src/api/routes/oauth2/applications/@me.ts
index 4fd68780..1fd4aa84 100644
--- a/src/api/routes/oauth2/applications/@me.ts
+++ b/src/api/routes/oauth2/applications/@me.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application } from "@spacebar/database";
import { DiscordApiErrors } from "@spacebar/util";
import { PublicUserProjection } from "@spacebar/schemas";
diff --git a/src/api/routes/oauth2/authorize.ts b/src/api/routes/oauth2/authorize.ts
index 55ae6a1d..f4c27f99 100644
--- a/src/api/routes/oauth2/authorize.ts
+++ b/src/api/routes/oauth2/authorize.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Application, Member, Role, User } from "@spacebar/database";
import { ApiError, DiscordApiErrors, FieldErrors, Permissions, getPermission } from "@spacebar/util";
import { ApplicationAuthorizeSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/oauth2/tokens.ts b/src/api/routes/oauth2/tokens.ts
index 27aa1e7c..96ba21e7 100644
--- a/src/api/routes/oauth2/tokens.ts
+++ b/src/api/routes/oauth2/tokens.ts
@@ -17,7 +17,7 @@
*/
import { Router, Request, Response } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
router.get("/", route({}), (req: Request, res: Response) => {
diff --git a/src/api/routes/outbound-promotions.ts b/src/api/routes/outbound-promotions.ts
index 6641df6a..18b7fbd9 100644
--- a/src/api/routes/outbound-promotions.ts
+++ b/src/api/routes/outbound-promotions.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/partners/#guild_id/requirements.ts b/src/api/routes/partners/#guild_id/requirements.ts
index 7592d236..e0c0a4ae 100644
--- a/src/api/routes/partners/#guild_id/requirements.ts
+++ b/src/api/routes/partners/#guild_id/requirements.ts
@@ -17,7 +17,7 @@
*/
import { Router, Request, Response } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/ping.ts b/src/api/routes/ping.ts
index 2a5ec6aa..c8118249 100644
--- a/src/api/routes/ping.ts
+++ b/src/api/routes/ping.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/policies/instance/config.ts b/src/api/routes/policies/instance/config.ts
index 686ecd1e..f1fc0d0f 100755
--- a/src/api/routes/policies/instance/config.ts
+++ b/src/api/routes/policies/instance/config.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config, getRights } from "@spacebar/util";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/policies/instance/domains.ts b/src/api/routes/policies/instance/domains.ts
index 3d330370..b263bb23 100644
--- a/src/api/routes/policies/instance/domains.ts
+++ b/src/api/routes/policies/instance/domains.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/policies/instance/index.ts b/src/api/routes/policies/instance/index.ts
index 31e80bdf..da3696c9 100644
--- a/src/api/routes/policies/instance/index.ts
+++ b/src/api/routes/policies/instance/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/policies/instance/limits.ts b/src/api/routes/policies/instance/limits.ts
index 380d9e1a..3005a6cd 100644
--- a/src/api/routes/policies/instance/limits.ts
+++ b/src/api/routes/policies/instance/limits.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Config } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/policies/stats.ts b/src/api/routes/policies/stats.ts
index 043dbb26..89a23878 100644
--- a/src/api/routes/policies/stats.ts
+++ b/src/api/routes/policies/stats.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member, Message, User } from "@spacebar/database";
import { Config, getRights } from "@spacebar/util";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/read-states/ack-bulk.ts b/src/api/routes/read-states/ack-bulk.ts
index c9c903d4..73364efa 100644
--- a/src/api/routes/read-states/ack-bulk.ts
+++ b/src/api/routes/read-states/ack-bulk.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ReadState } from "@spacebar/database";
import { AckBulkSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/reporting/index.ts b/src/api/routes/reporting/index.ts
index 277b4bca..b8c1057d 100644
--- a/src/api/routes/reporting/index.ts
+++ b/src/api/routes/reporting/index.ts
@@ -20,7 +20,7 @@ import fs from "node:fs";
import path from "node:path";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ReportMenuType, ReportMenuTypeNames, CreateReportSchema } from "@spacebar/schemas";
import { FieldErrors } from "@spacebar/util";
diff --git a/src/api/routes/safety-hub/@me/index.ts b/src/api/routes/safety-hub/@me/index.ts
index ee55370b..5e83d129 100644
--- a/src/api/routes/safety-hub/@me/index.ts
+++ b/src/api/routes/safety-hub/@me/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { Request, Response, Router } from "express";
import { AccountStandingResponse, AccountStandingState, AppealEligibility } from "@spacebar/schemas";
diff --git a/src/api/routes/safety-hub/suspended/@me.ts b/src/api/routes/safety-hub/suspended/@me.ts
index 043f7364..0c7684e9 100644
--- a/src/api/routes/safety-hub/suspended/@me.ts
+++ b/src/api/routes/safety-hub/suspended/@me.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { AccountStandingResponse, AccountStandingState, AppealEligibility } from "@spacebar/schemas";
diff --git a/src/api/routes/scheduled-maintenances/upcoming.json.ts b/src/api/routes/scheduled-maintenances/upcoming.json.ts
index bf8fa558..a0d9e5e9 100644
--- a/src/api/routes/scheduled-maintenances/upcoming.json.ts
+++ b/src/api/routes/scheduled-maintenances/upcoming.json.ts
@@ -17,7 +17,7 @@
*/
import { Router, Request, Response } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
router.get(
diff --git a/src/api/routes/science.ts b/src/api/routes/science.ts
index 4a6ddeab..3d609137 100644
--- a/src/api/routes/science.ts
+++ b/src/api/routes/science.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/stage-instances.ts b/src/api/routes/stage-instances.ts
index 6641df6a..18b7fbd9 100644
--- a/src/api/routes/stage-instances.ts
+++ b/src/api/routes/stage-instances.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/sticker-packs/index.ts b/src/api/routes/sticker-packs/index.ts
index 86a18ef6..6b1f9f12 100644
--- a/src/api/routes/sticker-packs/index.ts
+++ b/src/api/routes/sticker-packs/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { StickerPack } from "@spacebar/database";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/stickers/#sticker_id/index.ts b/src/api/routes/stickers/#sticker_id/index.ts
index ac265c64..0deec2f0 100644
--- a/src/api/routes/stickers/#sticker_id/index.ts
+++ b/src/api/routes/stickers/#sticker_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Sticker } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/stop.ts b/src/api/routes/stop.ts
index e04b46ba..836c72cc 100644
--- a/src/api/routes/stop.ts
+++ b/src/api/routes/stop.ts
@@ -18,7 +18,7 @@
import { route, SpacebarServer } from "@spacebar/api";
import { Request, Response, Router } from "express";
-import { ProcessLifecycle } from "../../util/util/ProcessLifecycle";
+import { ProcessLifecycle } from "@spacebar/util/util/ProcessLifecycle";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/store/published-listings/applications/#application_id/index.ts b/src/api/routes/store/published-listings/applications/#application_id/index.ts
index bffb572b..f3f2bc19 100644
--- a/src/api/routes/store/published-listings/applications/#application_id/index.ts
+++ b/src/api/routes/store/published-listings/applications/#application_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts b/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts
index a59eaae5..73b6b43c 100644
--- a/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts
+++ b/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/store/published-listings/skus.ts b/src/api/routes/store/published-listings/skus.ts
index 01bbc8b2..2c354b8b 100644
--- a/src/api/routes/store/published-listings/skus.ts
+++ b/src/api/routes/store/published-listings/skus.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
index 13db49d6..1660c4aa 100644
--- a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
+++ b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/teams.ts b/src/api/routes/teams.ts
index fa3a2413..4a668f52 100644
--- a/src/api/routes/teams.ts
+++ b/src/api/routes/teams.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Team, TeamMember, User } from "@spacebar/database";
import { TeamCreateSchema, TeamMemberRole, TeamMemberState } from "@spacebar/schemas";
diff --git a/src/api/routes/track.ts b/src/api/routes/track.ts
index fe33b502..4306068c 100644
--- a/src/api/routes/track.ts
+++ b/src/api/routes/track.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/updates.ts b/src/api/routes/updates.ts
index ca14507f..79b609df 100644
--- a/src/api/routes/updates.ts
+++ b/src/api/routes/updates.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ClientRelease } from "@spacebar/database";
import { FieldErrors } from "@spacebar/util";
diff --git a/src/api/routes/users/#user_id/delete.ts b/src/api/routes/users/#user_id/delete.ts
index cf3fb254..ceedb3aa 100644
--- a/src/api/routes/users/#user_id/delete.ts
+++ b/src/api/routes/users/#user_id/delete.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { Not } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Emoji, Guild, InstanceBan, Member, Recipient, Sticker, User, UserSettingsProtos } from "@spacebar/database";
import { ChannelDeleteEvent, ChannelRecipientRemoveEvent, emitEvent, UserDeleteEvent } from "@spacebar/util";
import { ChannelType, InstanceUserDeleteSchema, PrivateUserProjection } from "@spacebar/schemas";
diff --git a/src/api/routes/users/#user_id/index.ts b/src/api/routes/users/#user_id/index.ts
index 82a19420..a0d7ba6e 100644
--- a/src/api/routes/users/#user_id/index.ts
+++ b/src/api/routes/users/#user_id/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/users/#user_id/messages.ts b/src/api/routes/users/#user_id/messages.ts
index 1e32ca45..c15801c0 100644
--- a/src/api/routes/users/#user_id/messages.ts
+++ b/src/api/routes/users/#user_id/messages.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Message, User } from "@spacebar/database";
import { Config } from "@spacebar/util";
import { DmMessagesResponseSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/#user_id/profile.ts b/src/api/routes/users/#user_id/profile.ts
index bbe8faed..e2f962d1 100644
--- a/src/api/routes/users/#user_id/profile.ts
+++ b/src/api/routes/users/#user_id/profile.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Badge, Member, Relationship, User } from "@spacebar/database";
import { Config, emitEvent, FieldErrors, handleFile, UserUpdateEvent } from "@spacebar/util";
import { PartialConnectedAccountResponse, PrivateUserProjection, PublicUser, PublicUserProjection, RelationshipType, UserProfileModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/#user_id/relationships.ts b/src/api/routes/users/#user_id/relationships.ts
index 255d12c3..999542f6 100644
--- a/src/api/routes/users/#user_id/relationships.ts
+++ b/src/api/routes/users/#user_id/relationships.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { Request, Response, Router } from "express";
import { UserRelationsResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/activities/statistics/applications.ts b/src/api/routes/users/@me/activities/statistics/applications.ts
index b0119161..5d4c2537 100644
--- a/src/api/routes/users/@me/activities/statistics/applications.ts
+++ b/src/api/routes/users/@me/activities/statistics/applications.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/affinities/guilds.ts b/src/api/routes/users/@me/affinities/guilds.ts
index 8de9aa58..098c78a5 100644
--- a/src/api/routes/users/@me/affinities/guilds.ts
+++ b/src/api/routes/users/@me/affinities/guilds.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/affinities/users.ts b/src/api/routes/users/@me/affinities/users.ts
index 2f666252..ffbdd4fe 100644
--- a/src/api/routes/users/@me/affinities/users.ts
+++ b/src/api/routes/users/@me/affinities/users.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/applications/#application_id/entitlements.ts b/src/api/routes/users/@me/applications/#application_id/entitlements.ts
index 6641df6a..18b7fbd9 100644
--- a/src/api/routes/users/@me/applications/#application_id/entitlements.ts
+++ b/src/api/routes/users/@me/applications/#application_id/entitlements.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts
index b60818d2..c62d545c 100644
--- a/src/api/routes/users/@me/billing/country-code.ts
+++ b/src/api/routes/users/@me/billing/country-code.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { IpDataClient } from "@spacebar/util";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/billing/location-info.ts b/src/api/routes/users/@me/billing/location-info.ts
index c5aa8603..6942aff6 100644
--- a/src/api/routes/users/@me/billing/location-info.ts
+++ b/src/api/routes/users/@me/billing/location-info.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { IpDataClient } from "@spacebar/util";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/billing/payment-sources.ts b/src/api/routes/users/@me/billing/payment-sources.ts
index 1380ed52..b1a55106 100644
--- a/src/api/routes/users/@me/billing/payment-sources.ts
+++ b/src/api/routes/users/@me/billing/payment-sources.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/billing/subscriptions.ts b/src/api/routes/users/@me/billing/subscriptions.ts
index 6641df6a..18b7fbd9 100644
--- a/src/api/routes/users/@me/billing/subscriptions.ts
+++ b/src/api/routes/users/@me/billing/subscriptions.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router: Router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/channels.ts b/src/api/routes/users/@me/channels.ts
index 081aa862..9032103d 100644
--- a/src/api/routes/users/@me/channels.ts
+++ b/src/api/routes/users/@me/channels.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Recipient } from "@spacebar/database";
import { DmChannelDTO } from "@spacebar/util";
import { DmChannelCreateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/collectibles-marketing.ts b/src/api/routes/users/@me/collectibles-marketing.ts
index f7d24623..1260eb82 100644
--- a/src/api/routes/users/@me/collectibles-marketing.ts
+++ b/src/api/routes/users/@me/collectibles-marketing.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
import { CollectiblesMarketingResponse } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/collectibles-purchases.ts b/src/api/routes/users/@me/collectibles-purchases.ts
index 26f23ed6..29c2edcb 100644
--- a/src/api/routes/users/@me/collectibles-purchases.ts
+++ b/src/api/routes/users/@me/collectibles-purchases.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts b/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
index 595f33b5..a826c3f8 100644
--- a/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
+++ b/src/api/routes/users/@me/connections/#connection_name/#connection_id/access-token.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ConnectedAccount } from "@spacebar/database";
import { ApiError, ConnectionStore, DiscordApiErrors, FieldErrors, RefreshableConnection } from "@spacebar/util";
diff --git a/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts b/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
index f633b35e..857cc003 100644
--- a/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
+++ b/src/api/routes/users/@me/connections/#connection_name/#connection_id/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ConnectedAccount } from "@spacebar/database";
import { DiscordApiErrors, emitEvent } from "@spacebar/util";
import { ConnectionUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/connections/index.ts b/src/api/routes/users/@me/connections/index.ts
index 9dffbef3..012a3d6c 100644
--- a/src/api/routes/users/@me/connections/index.ts
+++ b/src/api/routes/users/@me/connections/index.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { ConnectedAccount } from "@spacebar/database";
import { ConnectedAccountDTO } from "@spacebar/util";
diff --git a/src/api/routes/users/@me/delete.ts b/src/api/routes/users/@me/delete.ts
index aa112dca..4007c436 100644
--- a/src/api/routes/users/@me/delete.ts
+++ b/src/api/routes/users/@me/delete.ts
@@ -19,7 +19,7 @@
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member, User, UserSettingsProtos } from "@spacebar/database";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/devices.ts b/src/api/routes/users/@me/devices.ts
index d3206138..c9f24976 100644
--- a/src/api/routes/users/@me/devices.ts
+++ b/src/api/routes/users/@me/devices.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/disable.ts b/src/api/routes/users/@me/disable.ts
index 7ae17b49..83f460c1 100644
--- a/src/api/routes/users/@me/disable.ts
+++ b/src/api/routes/users/@me/disable.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
diff --git a/src/api/routes/users/@me/email-settings.ts b/src/api/routes/users/@me/email-settings.ts
index ede73532..6bab5f90 100644
--- a/src/api/routes/users/@me/email-settings.ts
+++ b/src/api/routes/users/@me/email-settings.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/entitlements.ts b/src/api/routes/users/@me/entitlements.ts
index ac73a12c..1f420534 100644
--- a/src/api/routes/users/@me/entitlements.ts
+++ b/src/api/routes/users/@me/entitlements.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/guilds.ts b/src/api/routes/users/@me/guilds.ts
index 50f5a59c..592bb722 100644
--- a/src/api/routes/users/@me/guilds.ts
+++ b/src/api/routes/users/@me/guilds.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Guild, Member } from "@spacebar/database";
import { Config } from "@spacebar/util";
diff --git a/src/api/routes/users/@me/guilds/#guild_id/settings.ts b/src/api/routes/users/@me/guilds/#guild_id/settings.ts
index 157ad985..04f966ea 100644
--- a/src/api/routes/users/@me/guilds/#guild_id/settings.ts
+++ b/src/api/routes/users/@me/guilds/#guild_id/settings.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Channel, Member } from "@spacebar/database";
import { OrmUtils } from "@spacebar/util";
import { UserGuildSettingsSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/guilds/premium/subscription-slots.ts b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
index b0119161..5d4c2537 100644
--- a/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
+++ b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts
index ecb0b35c..29a05ccb 100644
--- a/src/api/routes/users/@me/index.ts
+++ b/src/api/routes/users/@me/index.ts
@@ -18,7 +18,7 @@
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User } from "@spacebar/database";
import { Config, emitEvent, FieldErrors, generateToken, handleFile, UserUpdateEvent } from "@spacebar/util";
import { DisplayNameStyle, PrivateUserProjection, UserModifySchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/library.ts b/src/api/routes/users/@me/library.ts
index 8d09b38d..9c28cb98 100644
--- a/src/api/routes/users/@me/library.ts
+++ b/src/api/routes/users/@me/library.ts
@@ -17,7 +17,7 @@
*/
import { Router, Response, Request } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/mentions.ts b/src/api/routes/users/@me/mentions.ts
index 88d7ebb0..c372abe8 100644
--- a/src/api/routes/users/@me/mentions.ts
+++ b/src/api/routes/users/@me/mentions.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { In, LessThan, FindOptionsWhere } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Message, Member, Channel, Attachment } from "@spacebar/database";
import { Snowflake, Permissions, NewUrlUserSignatureData } from "@spacebar/util";
import { Stopwatch } from "@spacebar/extensions";
diff --git a/src/api/routes/users/@me/mfa/codes-verification.ts b/src/api/routes/users/@me/mfa/codes-verification.ts
index ca6447f3..2fd1dd32 100644
--- a/src/api/routes/users/@me/mfa/codes-verification.ts
+++ b/src/api/routes/users/@me/mfa/codes-verification.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { BackupCode, generateMfaBackupCodes, User } from "@spacebar/database";
import { DiscordApiErrors } from "@spacebar/util";
import { CodesVerificationSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/mfa/codes.ts b/src/api/routes/users/@me/mfa/codes.ts
index 26f555bd..969ff78f 100644
--- a/src/api/routes/users/@me/mfa/codes.ts
+++ b/src/api/routes/users/@me/mfa/codes.ts
@@ -18,7 +18,7 @@
import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { BackupCode, generateMfaBackupCodes, User } from "@spacebar/database";
import { FieldErrors } from "@spacebar/util";
import { MfaCodesSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/mfa/totp/disable.ts b/src/api/routes/users/@me/mfa/totp/disable.ts
index c75365ac..6fa9f693 100644
--- a/src/api/routes/users/@me/mfa/totp/disable.ts
+++ b/src/api/routes/users/@me/mfa/totp/disable.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { verifyToken } from "node-2fa";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { BackupCode, User } from "@spacebar/database";
import { generateToken } from "@spacebar/util";
import { TotpDisableSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts
index fd098c2d..472360c2 100644
--- a/src/api/routes/users/@me/mfa/totp/enable.ts
+++ b/src/api/routes/users/@me/mfa/totp/enable.ts
@@ -20,7 +20,7 @@ import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { verifyToken } from "node-2fa";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { User, generateMfaBackupCodes } from "@spacebar/database";
import { generateToken } from "@spacebar/util";
import { TotpEnableSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
index c15a0144..32e60af5 100644
--- a/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
+++ b/src/api/routes/users/@me/mfa/webauthn/credentials/#key_id/index.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { SecurityKey, User } from "@spacebar/database";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
index 774c4138..a7f1c20a 100644
--- a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
+++ b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts
@@ -20,7 +20,7 @@ import bcrypt from "bcrypt";
import { Request, Response, Router } from "express";
import { ExpectedAttestationResult } from "fido2-lib";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { SecurityKey, User } from "@spacebar/database";
import { DiscordApiErrors, FieldErrors, generateWebAuthnTicket, verifyWebAuthnToken, WebAuthn } from "@spacebar/util";
import { CreateWebAuthnCredentialSchema, GenerateWebAuthnCredentialsSchema, WebAuthnPostSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/notes.ts b/src/api/routes/users/@me/notes.ts
index b988b2cd..667bf163 100644
--- a/src/api/routes/users/@me/notes.ts
+++ b/src/api/routes/users/@me/notes.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Note, User } from "@spacebar/database";
import { Snowflake, emitEvent } from "@spacebar/util";
diff --git a/src/api/routes/users/@me/relationships.ts b/src/api/routes/users/@me/relationships.ts
index 6a6db5e4..31951418 100644
--- a/src/api/routes/users/@me/relationships.ts
+++ b/src/api/routes/users/@me/relationships.ts
@@ -18,7 +18,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Relationship, User } from "@spacebar/database";
import { Config, DiscordApiErrors, RelationshipAddEvent, RelationshipRemoveEvent, RelationshipUpdateEvent, emitEvent } from "@spacebar/util";
import { PublicUserProjection, RelationshipType, RelationshipPatchSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/settings-proto/1.ts b/src/api/routes/users/@me/settings-proto/1.ts
index 531dcdcb..e4879baa 100644
--- a/src/api/routes/users/@me/settings-proto/1.ts
+++ b/src/api/routes/users/@me/settings-proto/1.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { PreloadedUserSettings } from "discord-protos";
import { JsonValue } from "@protobuf-ts/runtime";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { UserSettingsProtos } from "@spacebar/database";
import { emitEvent, OrmUtils } from "@spacebar/util";
import { SettingsProtoJsonResponse, SettingsProtoResponse, SettingsProtoUpdateJsonSchema, SettingsProtoUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/settings-proto/2.ts b/src/api/routes/users/@me/settings-proto/2.ts
index e4e9ff1d..d242ec35 100644
--- a/src/api/routes/users/@me/settings-proto/2.ts
+++ b/src/api/routes/users/@me/settings-proto/2.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { FrecencyUserSettings } from "discord-protos";
import { JsonValue } from "@protobuf-ts/runtime";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { UserSettingsProtos } from "@spacebar/database";
import { emitEvent, OrmUtils } from "@spacebar/util";
import { SettingsProtoJsonResponse, SettingsProtoResponse, SettingsProtoUpdateJsonSchema, SettingsProtoUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts
index 3bf8b887..6bbc8ea0 100644
--- a/src/api/routes/users/@me/settings.ts
+++ b/src/api/routes/users/@me/settings.ts
@@ -17,7 +17,7 @@
*/
import { Request, Response, Router } from "express";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Session, User, UserSettings } from "@spacebar/database";
import { emitEvent, PresenceUpdateEvent } from "@spacebar/util";
import { UserSettingsUpdateSchema } from "@spacebar/schemas";
diff --git a/src/api/routes/warp/license.ts b/src/api/routes/warp/license.ts
index 7ac8eb5c..0d92ed16 100644
--- a/src/api/routes/warp/license.ts
+++ b/src/api/routes/warp/license.ts
@@ -16,7 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Request, Response, Router } from "express";
const router = Router({ mergeParams: true });
diff --git a/src/api/routes/webhooks/#webhook_id/#token/index.ts b/src/api/routes/webhooks/#webhook_id/#token/index.ts
index a3984a85..e5f52c3d 100644
--- a/src/api/routes/webhooks/#webhook_id/#token/index.ts
+++ b/src/api/routes/webhooks/#webhook_id/#token/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import multer from "multer";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Webhook } from "@spacebar/database";
import { Config, DiscordApiErrors, emitEvent, handleFile, ValidateName, WebhooksUpdateEvent } from "@spacebar/util";
import { executeWebhook } from "@spacebar/api/util/handlers/Webhook";
diff --git a/src/api/routes/webhooks/#webhook_id/index.ts b/src/api/routes/webhooks/#webhook_id/index.ts
index 71a02b22..78eb27e6 100644
--- a/src/api/routes/webhooks/#webhook_id/index.ts
+++ b/src/api/routes/webhooks/#webhook_id/index.ts
@@ -19,7 +19,7 @@
import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server/HTTPError";
import { In } from "typeorm";
-import { route } from "@spacebar/api";
+import { route } from "@spacebar/api/util/handlers/route";
import { Webhook, Channel, Message } from "@spacebar/database";
import { Config, DiscordApiErrors, getPermission, WebhooksUpdateEvent, emitEvent, handleFile, ValidateName, MessageDeleteBulkEvent } from "@spacebar/util";
import { WebhookUpdateSchema } from "@spacebar/schemas";
|