From 2f8b85a299bc6f31e7b086233dc91eb7352b10b8 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Fri, 1 Nov 2024 20:57:16 +0100 Subject: [PATCH] refactor(database): :truck: Only import ORM abstractions from @versia/kit --- api/api/auth/login/index.test.ts | 2 +- api/api/auth/login/index.ts | 3 +- api/api/auth/reset/index.test.ts | 2 +- api/api/auth/reset/index.ts | 2 +- api/api/v1/accounts/:id/block.ts | 3 +- api/api/v1/accounts/:id/follow.ts | 3 +- api/api/v1/accounts/:id/followers.ts | 3 +- api/api/v1/accounts/:id/following.ts | 3 +- api/api/v1/accounts/:id/index.ts | 2 +- api/api/v1/accounts/:id/mute.ts | 3 +- api/api/v1/accounts/:id/note.ts | 3 +- api/api/v1/accounts/:id/pin.ts | 3 +- api/api/v1/accounts/:id/refetch.ts | 2 +- .../v1/accounts/:id/remove_from_followers.ts | 3 +- api/api/v1/accounts/:id/statuses.ts | 4 +- api/api/v1/accounts/:id/unblock.ts | 3 +- api/api/v1/accounts/:id/unfollow.ts | 3 +- api/api/v1/accounts/:id/unmute.ts | 3 +- api/api/v1/accounts/:id/unpin.ts | 3 +- .../v1/accounts/familiar_followers/index.ts | 2 +- api/api/v1/accounts/id/index.ts | 2 +- api/api/v1/accounts/index.ts | 2 +- api/api/v1/accounts/lookup/index.ts | 2 +- api/api/v1/accounts/relationships/index.ts | 2 +- api/api/v1/accounts/search/index.ts | 2 +- .../v1/accounts/update_credentials/index.ts | 4 +- .../v1/accounts/verify_credentials/index.ts | 2 +- api/api/v1/apps/index.ts | 2 +- api/api/v1/apps/verify_credentials/index.ts | 2 +- api/api/v1/blocks/index.ts | 3 +- api/api/v1/custom_emojis/index.ts | 2 +- api/api/v1/emojis/:id/index.ts | 3 +- api/api/v1/emojis/index.ts | 3 +- api/api/v1/favourites/index.ts | 3 +- .../follow_requests/:account_id/authorize.ts | 3 +- .../v1/follow_requests/:account_id/reject.ts | 3 +- api/api/v1/follow_requests/index.ts | 3 +- api/api/v1/instance/index.ts | 4 +- api/api/v1/media/:id/index.ts | 2 +- api/api/v1/media/index.ts | 2 +- api/api/v1/mutes/index.ts | 3 +- api/api/v1/notifications/:id/index.ts | 3 +- api/api/v1/notifications/index.ts | 3 +- api/api/v1/profile/avatar.ts | 2 +- api/api/v1/profile/header.ts | 2 +- api/api/v1/roles/:id/index.test.ts | 2 +- api/api/v1/roles/:id/index.ts | 2 +- api/api/v1/roles/index.test.ts | 2 +- api/api/v1/roles/index.ts | 2 +- api/api/v1/statuses/:id/context.ts | 2 +- api/api/v1/statuses/:id/favourite.ts | 2 +- api/api/v1/statuses/:id/favourited_by.ts | 4 +- api/api/v1/statuses/:id/index.ts | 3 +- api/api/v1/statuses/:id/pin.ts | 2 +- api/api/v1/statuses/:id/reblog.ts | 2 +- api/api/v1/statuses/:id/reblogged_by.ts | 4 +- api/api/v1/statuses/:id/source.ts | 2 +- api/api/v1/statuses/:id/unfavourite.ts | 2 +- api/api/v1/statuses/:id/unpin.ts | 2 +- api/api/v1/statuses/:id/unreblog.ts | 2 +- api/api/v1/statuses/index.ts | 3 +- api/api/v1/timelines/home.ts | 3 +- api/api/v1/timelines/public.ts | 3 +- api/api/v2/instance/index.ts | 2 +- api/api/v2/media/index.ts | 2 +- api/api/v2/search/index.ts | 3 +- api/objects/:id/index.ts | 4 +- api/users/:uuid/inbox/index.ts | 2 +- api/users/:uuid/index.ts | 2 +- api/users/:uuid/outbox/index.ts | 3 +- api/well-known/versia.ts | 2 +- api/well-known/webfinger/index.ts | 2 +- classes/functions/notification.ts | 3 +- classes/functions/status.ts | 2 +- classes/functions/user.ts | 2 +- classes/search/search-manager.ts | 3 +- cli/classes.ts | 3 +- cli/commands/emoji/add.ts | 3 +- cli/commands/emoji/import.ts | 3 +- cli/commands/federation/instance/fetch.ts | 2 +- cli/commands/federation/user/fetch.ts | 3 +- cli/commands/federation/user/finger.ts | 3 +- cli/commands/generate-keys.ts | 2 +- cli/commands/user/create.ts | 2 +- cli/commands/user/list.ts | 2 +- plugins/openid/routes/authorize.test.ts | 2 +- plugins/openid/routes/authorize.ts | 3 +- plugins/openid/routes/jwks.test.ts | 2 +- plugins/openid/routes/oauth/revoke.test.ts | 2 +- plugins/openid/routes/oauth/sso.ts | 2 +- plugins/openid/routes/oauth/token.test.ts | 2 +- plugins/openid/routes/oauth/token.ts | 2 +- setup.ts | 2 +- tests/oauth-scopes.test.ts | 5 +- tests/utils.ts | 3 +- types/api.ts | 3 +- utils/api.ts | 3 +- utils/init.ts | 2 +- utils/oauth.ts | 2 +- worker.ts | 51 +++++++++++++++++++ 100 files changed, 150 insertions(+), 154 deletions(-) create mode 100644 worker.ts diff --git a/api/api/auth/login/index.test.ts b/api/api/auth/login/index.test.ts index c65086c4..6b5ea302 100644 --- a/api/api/auth/login/index.test.ts +++ b/api/api/auth/login/index.test.ts @@ -1,6 +1,6 @@ import { afterAll, describe, expect, test } from "bun:test"; import { randomString } from "@/math"; -import { Application } from "~/classes/database/application.ts"; +import { Application } from "@versia/kit/db"; import { config } from "~/packages/config-manager"; import { fakeRequest, getTestUsers } from "~/tests/utils"; import { meta } from "./index.ts"; diff --git a/api/api/auth/login/index.ts b/api/api/auth/login/index.ts index 0a920af7..6951db26 100644 --- a/api/api/auth/login/index.ts +++ b/api/api/auth/login/index.ts @@ -2,11 +2,10 @@ import { apiRoute, applyConfig } from "@/api"; import type { Context } from "@hono/hono"; import { setCookie } from "@hono/hono/cookie"; import { createRoute } from "@hono/zod-openapi"; +import { Application, User } from "@versia/kit/db"; import { eq, or } from "drizzle-orm"; import { SignJWT } from "jose"; import { z } from "zod"; -import { Application } from "~/classes/database/application"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/api/api/auth/reset/index.test.ts b/api/api/auth/reset/index.test.ts index fbb5dc9c..9b2e6b9f 100644 --- a/api/api/auth/reset/index.test.ts +++ b/api/api/auth/reset/index.test.ts @@ -1,6 +1,6 @@ import { afterAll, describe, expect, test } from "bun:test"; import { randomString } from "@/math"; -import { Application } from "~/classes/database/application.ts"; +import { Application } from "@versia/kit/db"; import { config } from "~/packages/config-manager"; import { fakeRequest, getTestUsers } from "~/tests/utils"; import { meta } from "./index.ts"; diff --git a/api/api/auth/reset/index.ts b/api/api/auth/reset/index.ts index 2b8f1ffd..3882ea9e 100644 --- a/api/api/auth/reset/index.ts +++ b/api/api/auth/reset/index.ts @@ -1,9 +1,9 @@ import { apiRoute, applyConfig } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { eq } from "drizzle-orm"; import type { Context } from "hono"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/api/api/v1/accounts/:id/block.ts b/api/api/v1/accounts/:id/block.ts index b566c00c..7b5fb923 100644 --- a/api/api/v1/accounts/:id/block.ts +++ b/api/api/v1/accounts/:id/block.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/follow.ts b/api/api/v1/accounts/:id/follow.ts index c5983941..72515626 100644 --- a/api/api/v1/accounts/:id/follow.ts +++ b/api/api/v1/accounts/:id/follow.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/followers.ts b/api/api/v1/accounts/:id/followers.ts index f23c4e82..00cf0c64 100644 --- a/api/api/v1/accounts/:id/followers.ts +++ b/api/api/v1/accounts/:id/followers.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/following.ts b/api/api/v1/accounts/:id/following.ts index dea6f24f..b3c859b2 100644 --- a/api/api/v1/accounts/:id/following.ts +++ b/api/api/v1/accounts/:id/following.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/index.ts b/api/api/v1/accounts/:id/index.ts index 33c37ce9..942a2009 100644 --- a/api/api/v1/accounts/:id/index.ts +++ b/api/api/v1/accounts/:id/index.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/mute.ts b/api/api/v1/accounts/:id/mute.ts index e679f27c..49d27d22 100644 --- a/api/api/v1/accounts/:id/mute.ts +++ b/api/api/v1/accounts/:id/mute.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/note.ts b/api/api/v1/accounts/:id/note.ts index de0ad2c0..344c42c2 100644 --- a/api/api/v1/accounts/:id/note.ts +++ b/api/api/v1/accounts/:id/note.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/pin.ts b/api/api/v1/accounts/:id/pin.ts index 168e5286..5a9a6670 100644 --- a/api/api/v1/accounts/:id/pin.ts +++ b/api/api/v1/accounts/:id/pin.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/refetch.ts b/api/api/v1/accounts/:id/refetch.ts index e583b182..ff2b793b 100644 --- a/api/api/v1/accounts/:id/refetch.ts +++ b/api/api/v1/accounts/:id/refetch.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/remove_from_followers.ts b/api/api/v1/accounts/:id/remove_from_followers.ts index 2a8126f4..6249ac46 100644 --- a/api/api/v1/accounts/:id/remove_from_followers.ts +++ b/api/api/v1/accounts/:id/remove_from_followers.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/statuses.ts b/api/api/v1/accounts/:id/statuses.ts index c00cd129..219cfbca 100644 --- a/api/api/v1/accounts/:id/statuses.ts +++ b/api/api/v1/accounts/:id/statuses.ts @@ -1,10 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline, User } from "@versia/kit/db"; import { and, eq, gt, gte, isNull, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/unblock.ts b/api/api/v1/accounts/:id/unblock.ts index 60b4d235..0b36e434 100644 --- a/api/api/v1/accounts/:id/unblock.ts +++ b/api/api/v1/accounts/:id/unblock.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/unfollow.ts b/api/api/v1/accounts/:id/unfollow.ts index 70b95106..374e06c5 100644 --- a/api/api/v1/accounts/:id/unfollow.ts +++ b/api/api/v1/accounts/:id/unfollow.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/unmute.ts b/api/api/v1/accounts/:id/unmute.ts index 89a0444d..7db0da5b 100644 --- a/api/api/v1/accounts/:id/unmute.ts +++ b/api/api/v1/accounts/:id/unmute.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/:id/unpin.ts b/api/api/v1/accounts/:id/unpin.ts index f254fad6..c5911dee 100644 --- a/api/api/v1/accounts/:id/unpin.ts +++ b/api/api/v1/accounts/:id/unpin.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/familiar_followers/index.ts b/api/api/v1/accounts/familiar_followers/index.ts index 0f0b87ec..ce777219 100644 --- a/api/api/v1/accounts/familiar_followers/index.ts +++ b/api/api/v1/accounts/familiar_followers/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth, qsQuery } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { inArray } from "drizzle-orm"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { db } from "~/drizzle/db"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/id/index.ts b/api/api/v1/accounts/id/index.ts index 5998ed2c..0732c8fa 100644 --- a/api/api/v1/accounts/id/index.ts +++ b/api/api/v1/accounts/id/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/index.ts b/api/api/v1/accounts/index.ts index 59bd18af..b496aa38 100644 --- a/api/api/v1/accounts/index.ts +++ b/api/api/v1/accounts/index.ts @@ -1,10 +1,10 @@ import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api"; import { tempmailDomains } from "@/tempmail"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/api/api/v1/accounts/lookup/index.ts b/api/api/v1/accounts/lookup/index.ts index a2fd013f..801067a6 100644 --- a/api/api/v1/accounts/lookup/index.ts +++ b/api/api/v1/accounts/lookup/index.ts @@ -1,5 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { eq } from "drizzle-orm"; import { anyOf, @@ -13,7 +14,6 @@ import { oneOrMore, } from "magic-regexp"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/relationships/index.ts b/api/api/v1/accounts/relationships/index.ts index c8ff7a50..da97d108 100644 --- a/api/api/v1/accounts/relationships/index.ts +++ b/api/api/v1/accounts/relationships/index.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth, qsQuery } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/search/index.ts b/api/api/v1/accounts/search/index.ts index 0aed208b..b63304e1 100644 --- a/api/api/v1/accounts/search/index.ts +++ b/api/api/v1/accounts/search/index.ts @@ -1,5 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { eq, ilike, not, or, sql } from "drizzle-orm"; import { anyOf, @@ -14,7 +15,6 @@ import { } from "magic-regexp"; import stringComparison from "string-comparison"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/accounts/update_credentials/index.ts b/api/api/v1/accounts/update_credentials/index.ts index e34f98af..5ca64a51 100644 --- a/api/api/v1/accounts/update_credentials/index.ts +++ b/api/api/v1/accounts/update_credentials/index.ts @@ -1,12 +1,10 @@ import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api"; import { sanitizedHtmlStrip } from "@/sanitization"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment, Emoji, User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; -import { Emoji } from "~/classes/database/emoji"; -import { User } from "~/classes/database/user"; import { contentToHtml } from "~/classes/functions/status"; import { MediaManager } from "~/classes/media/media-manager"; import { db } from "~/drizzle/db"; diff --git a/api/api/v1/accounts/verify_credentials/index.ts b/api/api/v1/accounts/verify_credentials/index.ts index db41ceb2..07c0b4ee 100644 --- a/api/api/v1/accounts/verify_credentials/index.ts +++ b/api/api/v1/accounts/verify_credentials/index.ts @@ -1,6 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; -import { User } from "~/classes/database/user"; +import { User } from "@versia/kit/db"; import { ErrorSchema } from "~/types/api"; export const meta = applyConfig({ diff --git a/api/api/v1/apps/index.ts b/api/api/v1/apps/index.ts index bf70f613..1cee4907 100644 --- a/api/api/v1/apps/index.ts +++ b/api/api/v1/apps/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, jsonOrForm } from "@/api"; import { randomString } from "@/math"; import { createRoute } from "@hono/zod-openapi"; +import { Application } from "@versia/kit/db"; import { z } from "zod"; -import { Application } from "~/classes/database/application"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/api/api/v1/apps/verify_credentials/index.ts b/api/api/v1/apps/verify_credentials/index.ts index df8006b6..242f07c1 100644 --- a/api/api/v1/apps/verify_credentials/index.ts +++ b/api/api/v1/apps/verify_credentials/index.ts @@ -1,6 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; -import { Application } from "~/classes/database/application"; +import { Application } from "@versia/kit/db"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/blocks/index.ts b/api/api/v1/blocks/index.ts index 95df58ee..bc36884a 100644 --- a/api/api/v1/blocks/index.ts +++ b/api/api/v1/blocks/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/custom_emojis/index.ts b/api/api/v1/custom_emojis/index.ts index de4f0f15..534c38c6 100644 --- a/api/api/v1/custom_emojis/index.ts +++ b/api/api/v1/custom_emojis/index.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute, z } from "@hono/zod-openapi"; +import { Emoji } from "@versia/kit/db"; import { and, eq, isNull, or } from "drizzle-orm"; -import { Emoji } from "~/classes/database/emoji"; import { Emojis, RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/api/api/v1/emojis/:id/index.ts b/api/api/v1/emojis/:id/index.ts index 1969f6c9..879999b0 100644 --- a/api/api/v1/emojis/:id/index.ts +++ b/api/api/v1/emojis/:id/index.ts @@ -1,10 +1,9 @@ import { apiRoute, applyConfig, auth, emojiValidator, jsonOrForm } from "@/api"; import { mimeLookup } from "@/content_types"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment, Emoji } from "@versia/kit/db"; import { eq } from "drizzle-orm"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; -import { Emoji } from "~/classes/database/emoji"; import { MediaManager } from "~/classes/media/media-manager"; import { db } from "~/drizzle/db"; import { Emojis, RolePermissions } from "~/drizzle/schema"; diff --git a/api/api/v1/emojis/index.ts b/api/api/v1/emojis/index.ts index 7a0f2eef..03249f80 100644 --- a/api/api/v1/emojis/index.ts +++ b/api/api/v1/emojis/index.ts @@ -1,10 +1,9 @@ import { apiRoute, applyConfig, auth, emojiValidator, jsonOrForm } from "@/api"; import { mimeLookup } from "@/content_types"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment, Emoji } from "@versia/kit/db"; import { and, eq, isNull, or } from "drizzle-orm"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; -import { Emoji } from "~/classes/database/emoji"; import { MediaManager } from "~/classes/media/media-manager"; import { Emojis, RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/api/api/v1/favourites/index.ts b/api/api/v1/favourites/index.ts index 4ad3b010..ed4d9e39 100644 --- a/api/api/v1/favourites/index.ts +++ b/api/api/v1/favourites/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/follow_requests/:account_id/authorize.ts b/api/api/v1/follow_requests/:account_id/authorize.ts index 2f2c8800..19831c52 100644 --- a/api/api/v1/follow_requests/:account_id/authorize.ts +++ b/api/api/v1/follow_requests/:account_id/authorize.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/follow_requests/:account_id/reject.ts b/api/api/v1/follow_requests/:account_id/reject.ts index 3ff3bef6..c330236a 100644 --- a/api/api/v1/follow_requests/:account_id/reject.ts +++ b/api/api/v1/follow_requests/:account_id/reject.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Relationship, User } from "@versia/kit/db"; import { z } from "zod"; -import { Relationship } from "~/classes/database/relationship"; -import { User } from "~/classes/database/user"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/follow_requests/index.ts b/api/api/v1/follow_requests/index.ts index 9e05945d..ec71c2be 100644 --- a/api/api/v1/follow_requests/index.ts +++ b/api/api/v1/follow_requests/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/instance/index.ts b/api/api/v1/instance/index.ts index aec67280..7a2cf0c2 100644 --- a/api/api/v1/instance/index.ts +++ b/api/api/v1/instance/index.ts @@ -1,10 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { proxyUrl } from "@/response"; import { createRoute, z } from "@hono/zod-openapi"; +import { Instance, Note, User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; -import { Instance } from "~/classes/database/instance"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import manifest from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/api/api/v1/media/:id/index.ts b/api/api/v1/media/:id/index.ts index d220afcf..4bdbda78 100644 --- a/api/api/v1/media/:id/index.ts +++ b/api/api/v1/media/:id/index.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment } from "@versia/kit/db"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; import { MediaManager } from "~/classes/media/media-manager"; import { RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; diff --git a/api/api/v1/media/index.ts b/api/api/v1/media/index.ts index 83f7b517..8ea1f197 100644 --- a/api/api/v1/media/index.ts +++ b/api/api/v1/media/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment } from "@versia/kit/db"; import sharp from "sharp"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; import { MediaManager } from "~/classes/media/media-manager"; import { RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; diff --git a/api/api/v1/mutes/index.ts b/api/api/v1/mutes/index.ts index 2401dd34..196df1cc 100644 --- a/api/api/v1/mutes/index.ts +++ b/api/api/v1/mutes/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/notifications/:id/index.ts b/api/api/v1/notifications/:id/index.ts index 20b6b1e0..7bafe765 100644 --- a/api/api/v1/notifications/:id/index.ts +++ b/api/api/v1/notifications/:id/index.ts @@ -1,8 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, User } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { findManyNotifications, notificationToApi, diff --git a/api/api/v1/notifications/index.ts b/api/api/v1/notifications/index.ts index 2710b676..3cba5845 100644 --- a/api/api/v1/notifications/index.ts +++ b/api/api/v1/notifications/index.ts @@ -1,10 +1,9 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { fetchTimeline } from "@/timelines"; import { createRoute } from "@hono/zod-openapi"; +import { Note, User } from "@versia/kit/db"; import { sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { findManyNotifications, notificationToApi, diff --git a/api/api/v1/profile/avatar.ts b/api/api/v1/profile/avatar.ts index d61dfa94..78bfec49 100644 --- a/api/api/v1/profile/avatar.ts +++ b/api/api/v1/profile/avatar.ts @@ -1,6 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; -import { User } from "~/classes/database/user"; +import { User } from "@versia/kit/db"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/profile/header.ts b/api/api/v1/profile/header.ts index c10c30b1..f417ef5b 100644 --- a/api/api/v1/profile/header.ts +++ b/api/api/v1/profile/header.ts @@ -1,6 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; -import { User } from "~/classes/database/user"; +import { User } from "@versia/kit/db"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/roles/:id/index.test.ts b/api/api/v1/roles/:id/index.test.ts index ec3ec423..7f09da47 100644 --- a/api/api/v1/roles/:id/index.test.ts +++ b/api/api/v1/roles/:id/index.test.ts @@ -1,5 +1,5 @@ import { afterAll, beforeAll, describe, expect, test } from "bun:test"; -import { Role } from "~/classes/database/role.ts"; +import { Role } from "@versia/kit/db"; import { ADMIN_ROLES, DEFAULT_ROLES, RolePermissions } from "~/drizzle/schema"; import { fakeRequest, getTestUsers } from "~/tests/utils"; import { meta } from "./index.ts"; diff --git a/api/api/v1/roles/:id/index.ts b/api/api/v1/roles/:id/index.ts index 727d90a5..bf4a9f1e 100644 --- a/api/api/v1/roles/:id/index.ts +++ b/api/api/v1/roles/:id/index.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Role } from "@versia/kit/db"; import { z } from "zod"; -import { Role } from "~/classes/database/role"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/roles/index.test.ts b/api/api/v1/roles/index.test.ts index c5221f4a..84085df7 100644 --- a/api/api/v1/roles/index.test.ts +++ b/api/api/v1/roles/index.test.ts @@ -1,5 +1,5 @@ import { afterAll, beforeAll, describe, expect, test } from "bun:test"; -import { Role } from "~/classes/database/role.ts"; +import { Role } from "@versia/kit/db"; import { ADMIN_ROLES } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; import { fakeRequest, getTestUsers } from "~/tests/utils"; diff --git a/api/api/v1/roles/index.ts b/api/api/v1/roles/index.ts index 54e05d4f..46cce88a 100644 --- a/api/api/v1/roles/index.ts +++ b/api/api/v1/roles/index.ts @@ -1,6 +1,6 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute, z } from "@hono/zod-openapi"; -import { Role } from "~/classes/database/role"; +import { Role } from "@versia/kit/db"; import { ErrorSchema } from "~/types/api"; export const meta = applyConfig({ diff --git a/api/api/v1/statuses/:id/context.ts b/api/api/v1/statuses/:id/context.ts index 62343cfb..411c7f34 100644 --- a/api/api/v1/statuses/:id/context.ts +++ b/api/api/v1/statuses/:id/context.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/favourite.ts b/api/api/v1/statuses/:id/favourite.ts index 9e0c2be2..5c6fd74b 100644 --- a/api/api/v1/statuses/:id/favourite.ts +++ b/api/api/v1/statuses/:id/favourite.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/favourited_by.ts b/api/api/v1/statuses/:id/favourited_by.ts index 12800b05..15e6d908 100644 --- a/api/api/v1/statuses/:id/favourited_by.ts +++ b/api/api/v1/statuses/:id/favourited_by.ts @@ -1,10 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/index.ts b/api/api/v1/statuses/:id/index.ts index cf3b4522..16f0aa9a 100644 --- a/api/api/v1/statuses/:id/index.ts +++ b/api/api/v1/statuses/:id/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator, jsonOrForm } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment, Note } from "@versia/kit/db"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/pin.ts b/api/api/v1/statuses/:id/pin.ts index 066c1661..4d617749 100644 --- a/api/api/v1/statuses/:id/pin.ts +++ b/api/api/v1/statuses/:id/pin.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { db } from "~/drizzle/db"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/reblog.ts b/api/api/v1/statuses/:id/reblog.ts index 34cffffc..2d092349 100644 --- a/api/api/v1/statuses/:id/reblog.ts +++ b/api/api/v1/statuses/:id/reblog.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { and, eq } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { db } from "~/drizzle/db"; import { Notes, Notifications, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/reblogged_by.ts b/api/api/v1/statuses/:id/reblogged_by.ts index 6983e44f..f65e335b 100644 --- a/api/api/v1/statuses/:id/reblogged_by.ts +++ b/api/api/v1/statuses/:id/reblogged_by.ts @@ -1,10 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline, User } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; -import { User } from "~/classes/database/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/source.ts b/api/api/v1/statuses/:id/source.ts index 706ca35f..0f4ad83c 100644 --- a/api/api/v1/statuses/:id/source.ts +++ b/api/api/v1/statuses/:id/source.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; import type { StatusSource as ApiStatusSource } from "@versia/client/types"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/unfavourite.ts b/api/api/v1/statuses/:id/unfavourite.ts index f1bcd1a7..226a6bee 100644 --- a/api/api/v1/statuses/:id/unfavourite.ts +++ b/api/api/v1/statuses/:id/unfavourite.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/unpin.ts b/api/api/v1/statuses/:id/unpin.ts index 5a5dedc9..5fa45980 100644 --- a/api/api/v1/statuses/:id/unpin.ts +++ b/api/api/v1/statuses/:id/unpin.ts @@ -1,7 +1,7 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/:id/unreblog.ts b/api/api/v1/statuses/:id/unreblog.ts index 0c02e472..71061b53 100644 --- a/api/api/v1/statuses/:id/unreblog.ts +++ b/api/api/v1/statuses/:id/unreblog.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note } from "@versia/kit/db"; import { and, eq } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/statuses/index.ts b/api/api/v1/statuses/index.ts index deb5ced1..d59a6281 100644 --- a/api/api/v1/statuses/index.ts +++ b/api/api/v1/statuses/index.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment, Note } from "@versia/kit/db"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; -import { Note } from "~/classes/database/note"; import { RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/timelines/home.ts b/api/api/v1/timelines/home.ts index ff6b7674..6c4da4b2 100644 --- a/api/api/v1/timelines/home.ts +++ b/api/api/v1/timelines/home.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline } from "@versia/kit/db"; import { and, eq, gt, gte, lt, or, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v1/timelines/public.ts b/api/api/v1/timelines/public.ts index e2890a22..695244b1 100644 --- a/api/api/v1/timelines/public.ts +++ b/api/api/v1/timelines/public.ts @@ -1,9 +1,8 @@ import { apiRoute, applyConfig, auth, idValidator } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, Timeline } from "@versia/kit/db"; import { and, gt, gte, lt, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { Timeline } from "~/classes/database/timeline"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { ErrorSchema } from "~/types/api"; diff --git a/api/api/v2/instance/index.ts b/api/api/v2/instance/index.ts index c9b243c9..576d92d4 100644 --- a/api/api/v2/instance/index.ts +++ b/api/api/v2/instance/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig } from "@/api"; import { proxyUrl } from "@/response"; import { createRoute, z } from "@hono/zod-openapi"; +import { User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import manifest from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/api/api/v2/media/index.ts b/api/api/v2/media/index.ts index 20e5ee54..d0b3748f 100644 --- a/api/api/v2/media/index.ts +++ b/api/api/v2/media/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig, auth } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Attachment } from "@versia/kit/db"; import sharp from "sharp"; import { z } from "zod"; -import { Attachment } from "~/classes/database/attachment"; import { MediaManager } from "~/classes/media/media-manager"; import { RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager/index.ts"; diff --git a/api/api/v2/search/index.ts b/api/api/v2/search/index.ts index fb6bcebb..8ffe1071 100644 --- a/api/api/v2/search/index.ts +++ b/api/api/v2/search/index.ts @@ -6,10 +6,9 @@ import { userAddressValidator, } from "@/api"; import { createRoute } from "@hono/zod-openapi"; +import { Note, User } from "@versia/kit/db"; import { and, eq, inArray, sql } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { searchManager } from "~/classes/search/search-manager"; import { db } from "~/drizzle/db"; import { Instances, Notes, RolePermissions, Users } from "~/drizzle/schema"; diff --git a/api/objects/:id/index.ts b/api/objects/:id/index.ts index a852a758..8fd982a1 100644 --- a/api/objects/:id/index.ts +++ b/api/objects/:id/index.ts @@ -4,11 +4,9 @@ import { LikeExtension as LikeSchema, Note as NoteSchema, } from "@versia/federation/schemas"; +import { Like, Note, User } from "@versia/kit/db"; import { and, eq, inArray, sql } from "drizzle-orm"; import { z } from "zod"; -import { Like } from "~/classes/database/like"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { Likes, Notes } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; import { ErrorSchema, type KnownEntity } from "~/types/api"; diff --git a/api/users/:uuid/inbox/index.ts b/api/users/:uuid/inbox/index.ts index 90f13ba1..fa4232a5 100644 --- a/api/users/:uuid/inbox/index.ts +++ b/api/users/:uuid/inbox/index.ts @@ -2,8 +2,8 @@ import { apiRoute, applyConfig } from "@/api"; import { createRoute } from "@hono/zod-openapi"; import { getLogger } from "@logtape/logtape"; import type { Entity } from "@versia/federation/types"; +import { User } from "@versia/kit/db"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { InboxProcessor } from "~/classes/inbox/processor"; import { ErrorSchema } from "~/types/api"; diff --git a/api/users/:uuid/index.ts b/api/users/:uuid/index.ts index 83ae1713..4a3c1d41 100644 --- a/api/users/:uuid/index.ts +++ b/api/users/:uuid/index.ts @@ -1,8 +1,8 @@ import { apiRoute, applyConfig } from "@/api"; import { createRoute } from "@hono/zod-openapi"; import { User as UserSchema } from "@versia/federation/schemas"; +import { User } from "@versia/kit/db"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { ErrorSchema } from "~/types/api"; export const meta = applyConfig({ diff --git a/api/users/:uuid/outbox/index.ts b/api/users/:uuid/outbox/index.ts index 757fe796..3fc52a55 100644 --- a/api/users/:uuid/outbox/index.ts +++ b/api/users/:uuid/outbox/index.ts @@ -4,10 +4,9 @@ import { Collection as CollectionSchema, Note as NoteSchema, } from "@versia/federation/schemas"; +import { Note, User } from "@versia/kit/db"; import { and, eq, inArray } from "drizzle-orm"; import { z } from "zod"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { db } from "~/drizzle/db"; import { Notes } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/api/well-known/versia.ts b/api/well-known/versia.ts index f9fbf989..37da4eb6 100644 --- a/api/well-known/versia.ts +++ b/api/well-known/versia.ts @@ -2,8 +2,8 @@ import { apiRoute, applyConfig } from "@/api"; import { urlToContentFormat } from "@/content_types"; import { createRoute } from "@hono/zod-openapi"; import { InstanceMetadata as InstanceMetadataSchema } from "@versia/federation/schemas"; +import { User } from "@versia/kit/db"; import { asc } from "drizzle-orm"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import pkg from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/api/well-known/webfinger/index.ts b/api/well-known/webfinger/index.ts index 4afddd4f..e3a75d32 100644 --- a/api/well-known/webfinger/index.ts +++ b/api/well-known/webfinger/index.ts @@ -3,10 +3,10 @@ import { createRoute } from "@hono/zod-openapi"; import { getLogger } from "@logtape/logtape"; import type { ResponseError } from "@versia/federation"; import { WebFinger } from "@versia/federation/schemas"; +import { User } from "@versia/kit/db"; import { and, eq, isNull } from "drizzle-orm"; import { lookup } from "mime-types"; import { z } from "zod"; -import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; import { ErrorSchema } from "~/types/api"; diff --git a/classes/functions/notification.ts b/classes/functions/notification.ts index 13c46071..fa8965f5 100644 --- a/classes/functions/notification.ts +++ b/classes/functions/notification.ts @@ -1,7 +1,6 @@ import type { Notification as ApiNotification } from "@versia/client/types"; +import { Note, User } from "@versia/kit/db"; import type { InferSelectModel } from "drizzle-orm"; -import { Note } from "~/classes/database/note.ts"; -import { User } from "~/classes/database/user.ts"; import { db } from "~/drizzle/db"; import type { Notifications } from "~/drizzle/schema"; import type { StatusWithRelations } from "./status.ts"; diff --git a/classes/functions/status.ts b/classes/functions/status.ts index 51f8df4c..9dc9a2e5 100644 --- a/classes/functions/status.ts +++ b/classes/functions/status.ts @@ -2,6 +2,7 @@ import { mentionValidator } from "@/api"; import { sanitizeHtml, sanitizeHtmlInline } from "@/sanitization"; import markdownItTaskLists from "@hackmd/markdown-it-task-lists"; import type { ContentFormat } from "@versia/federation/types"; +import { User } from "@versia/kit/db"; import { type InferSelectModel, and, @@ -26,7 +27,6 @@ import markdownItContainer from "markdown-it-container"; import markdownItTocDoneRight from "markdown-it-toc-done-right"; import type { ApplicationType } from "~/classes/database/application.ts"; import type { EmojiWithInstance } from "~/classes/database/emoji.ts"; -import { User } from "~/classes/database/user.ts"; import { db } from "~/drizzle/db"; import { type Attachments, diff --git a/classes/functions/user.ts b/classes/functions/user.ts index d5a4cefc..c3a77b81 100644 --- a/classes/functions/user.ts +++ b/classes/functions/user.ts @@ -3,10 +3,10 @@ import type { FollowAccept, FollowReject, } from "@versia/federation/types"; +import { User } from "@versia/kit/db"; import { type InferSelectModel, eq, sql } from "drizzle-orm"; import type { ApplicationType } from "~/classes/database/application.ts"; import type { EmojiWithInstance } from "~/classes/database/emoji.ts"; -import { User } from "~/classes/database/user.ts"; import { db } from "~/drizzle/db"; import { Applications, diff --git a/classes/search/search-manager.ts b/classes/search/search-manager.ts index 0b59931d..9c85af4e 100644 --- a/classes/search/search-manager.ts +++ b/classes/search/search-manager.ts @@ -4,12 +4,11 @@ */ import { getLogger } from "@logtape/logtape"; +import { Note, User } from "@versia/kit/db"; import { Ingest as SonicChannelIngest, Search as SonicChannelSearch, } from "sonic-channel"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import { db } from "~/drizzle/db"; import { type Config, config } from "~/packages/config-manager"; diff --git a/cli/classes.ts b/cli/classes.ts index 8cb3d824..1d3b71b9 100644 --- a/cli/classes.ts +++ b/cli/classes.ts @@ -1,9 +1,8 @@ import { parseUserAddress, userAddressValidator } from "@/api"; import { Args, type Command, Flags, type Interfaces } from "@oclif/core"; +import { Instance, User } from "@versia/kit/db"; import chalk from "chalk"; import { and, eq, getTableColumns, like } from "drizzle-orm"; -import { Instance } from "~/classes/database/instance.ts"; -import { User } from "~/classes/database/user.ts"; import { db } from "~/drizzle/db"; import { Emojis, Instances, Users } from "~/drizzle/schema"; import { BaseCommand } from "./base.ts"; diff --git a/cli/commands/emoji/add.ts b/cli/commands/emoji/add.ts index 663bd195..06b7bc32 100644 --- a/cli/commands/emoji/add.ts +++ b/cli/commands/emoji/add.ts @@ -1,9 +1,8 @@ import { Args } from "@oclif/core"; +import { Attachment, Emoji } from "@versia/kit/db"; import chalk from "chalk"; import { and, eq, isNull } from "drizzle-orm"; import ora from "ora"; -import { Attachment } from "~/classes/database/attachment"; -import { Emoji } from "~/classes/database/emoji"; import { MediaManager } from "~/classes/media/media-manager"; import { BaseCommand } from "~/cli/base"; import { Emojis } from "~/drizzle/schema"; diff --git a/cli/commands/emoji/import.ts b/cli/commands/emoji/import.ts index 2ff2f996..8475e862 100644 --- a/cli/commands/emoji/import.ts +++ b/cli/commands/emoji/import.ts @@ -1,11 +1,10 @@ import { Args, Flags } from "@oclif/core"; +import { Attachment, Emoji } from "@versia/kit/db"; import chalk from "chalk"; import { and, inArray, isNull } from "drizzle-orm"; import { lookup } from "mime-types"; import ora from "ora"; import { unzip } from "unzipit"; -import { Attachment } from "~/classes/database/attachment"; -import { Emoji } from "~/classes/database/emoji"; import { MediaManager } from "~/classes/media/media-manager"; import { BaseCommand } from "~/cli/base"; import { Emojis } from "~/drizzle/schema"; diff --git a/cli/commands/federation/instance/fetch.ts b/cli/commands/federation/instance/fetch.ts index 4ba24908..33d49687 100644 --- a/cli/commands/federation/instance/fetch.ts +++ b/cli/commands/federation/instance/fetch.ts @@ -1,6 +1,6 @@ import { Args } from "@oclif/core"; +import { Instance } from "@versia/kit/db"; import ora from "ora"; -import { Instance } from "~/classes/database/instance"; import { BaseCommand } from "~/cli/base"; import { formatArray } from "~/cli/utils/format"; diff --git a/cli/commands/federation/user/fetch.ts b/cli/commands/federation/user/fetch.ts index 87759c7e..329a45ed 100644 --- a/cli/commands/federation/user/fetch.ts +++ b/cli/commands/federation/user/fetch.ts @@ -1,9 +1,8 @@ import { parseUserAddress, userAddressValidator } from "@/api"; import { Args } from "@oclif/core"; +import { Instance, User } from "@versia/kit/db"; import chalk from "chalk"; import ora from "ora"; -import { Instance } from "~/classes/database/instance"; -import { User } from "~/classes/database/user"; import { BaseCommand } from "~/cli/base"; export default class FederationUserFetch extends BaseCommand< diff --git a/cli/commands/federation/user/finger.ts b/cli/commands/federation/user/finger.ts index 2e1e1212..ab8fe1d4 100644 --- a/cli/commands/federation/user/finger.ts +++ b/cli/commands/federation/user/finger.ts @@ -1,9 +1,8 @@ import { parseUserAddress, userAddressValidator } from "@/api"; import { Args } from "@oclif/core"; +import { Instance, User } from "@versia/kit/db"; import chalk from "chalk"; import ora from "ora"; -import { Instance } from "~/classes/database/instance"; -import { User } from "~/classes/database/user"; import { BaseCommand } from "~/cli/base"; export default class FederationUserFinger extends BaseCommand< diff --git a/cli/commands/generate-keys.ts b/cli/commands/generate-keys.ts index 3ad75c3b..f9ba1126 100644 --- a/cli/commands/generate-keys.ts +++ b/cli/commands/generate-keys.ts @@ -1,5 +1,5 @@ +import { User } from "@versia/kit/db"; import chalk from "chalk"; -import { User } from "~/classes/database/user"; import { BaseCommand } from "~/cli/base"; export default class GenerateKeys extends BaseCommand { diff --git a/cli/commands/user/create.ts b/cli/commands/user/create.ts index dcd09f5a..bbc623f7 100644 --- a/cli/commands/user/create.ts +++ b/cli/commands/user/create.ts @@ -1,9 +1,9 @@ import input from "@inquirer/input"; import { Args, Flags } from "@oclif/core"; +import { User } from "@versia/kit/db"; import chalk from "chalk"; import { eq } from "drizzle-orm"; import { renderUnicodeCompact } from "uqr"; -import { User } from "~/classes/database/user"; import { BaseCommand } from "~/cli/base"; import { formatArray } from "~/cli/utils/format"; import { Users } from "~/drizzle/schema"; diff --git a/cli/commands/user/list.ts b/cli/commands/user/list.ts index 3a27a177..890d638a 100644 --- a/cli/commands/user/list.ts +++ b/cli/commands/user/list.ts @@ -1,6 +1,6 @@ import { Flags } from "@oclif/core"; +import { User } from "@versia/kit/db"; import { and, eq, isNotNull, isNull } from "drizzle-orm"; -import { User } from "~/classes/database/user"; import { BaseCommand } from "~/cli/base"; import { formatArray } from "~/cli/utils/format"; import { Users } from "~/drizzle/schema"; diff --git a/plugins/openid/routes/authorize.test.ts b/plugins/openid/routes/authorize.test.ts index 1cf89459..2371cfca 100644 --- a/plugins/openid/routes/authorize.test.ts +++ b/plugins/openid/routes/authorize.test.ts @@ -1,8 +1,8 @@ import { afterAll, describe, expect, test } from "bun:test"; import { randomString } from "@/math"; +import { Application } from "@versia/kit/db"; import { RolePermissions } from "@versia/kit/tables"; import { SignJWT } from "jose"; -import { Application } from "~/classes/database/application"; import { config } from "~/packages/config-manager"; import { fakeRequest, getTestUsers } from "~/tests/utils"; diff --git a/plugins/openid/routes/authorize.ts b/plugins/openid/routes/authorize.ts index 9833f268..e75cff0a 100644 --- a/plugins/openid/routes/authorize.ts +++ b/plugins/openid/routes/authorize.ts @@ -1,12 +1,11 @@ import { auth, jsonOrForm } from "@/api"; import { randomString } from "@/math"; import { db } from "@versia/kit/db"; +import { Application, User } from "@versia/kit/db"; import { RolePermissions, Tokens } from "@versia/kit/tables"; import { type JWTPayload, SignJWT, jwtVerify } from "jose"; import { JOSEError } from "jose/errors"; import { z } from "zod"; -import { Application } from "~/classes/database/application.ts"; -import { User } from "~/classes/database/user.ts"; import { TokenType } from "~/classes/functions/token"; import type { PluginType } from "../index.ts"; diff --git a/plugins/openid/routes/jwks.test.ts b/plugins/openid/routes/jwks.test.ts index dc4fa6dd..45342c89 100644 --- a/plugins/openid/routes/jwks.test.ts +++ b/plugins/openid/routes/jwks.test.ts @@ -1,5 +1,5 @@ import { afterAll, describe, expect, test } from "bun:test"; -import { Application } from "~/classes/database/application"; +import { Application } from "@versia/kit/db"; import { fakeRequest } from "~/tests/utils"; const application = await Application.insert({ diff --git a/plugins/openid/routes/oauth/revoke.test.ts b/plugins/openid/routes/oauth/revoke.test.ts index 76ae7e01..810b0025 100644 --- a/plugins/openid/routes/oauth/revoke.test.ts +++ b/plugins/openid/routes/oauth/revoke.test.ts @@ -1,8 +1,8 @@ import { afterAll, beforeAll, describe, expect, test } from "bun:test"; import { db } from "@versia/kit/db"; +import { Application } from "@versia/kit/db"; import { eq } from "@versia/kit/drizzle"; import { Tokens } from "@versia/kit/tables"; -import { Application } from "~/classes/database/application"; import { fakeRequest, getTestUsers } from "~/tests/utils"; const { deleteUsers, users } = await getTestUsers(1); diff --git a/plugins/openid/routes/oauth/sso.ts b/plugins/openid/routes/oauth/sso.ts index 49d409f2..14144b3a 100644 --- a/plugins/openid/routes/oauth/sso.ts +++ b/plugins/openid/routes/oauth/sso.ts @@ -1,5 +1,6 @@ import { createRoute, z } from "@hono/zod-openapi"; import { db } from "@versia/kit/db"; +import { Application } from "@versia/kit/db"; import { OpenIdLoginFlows } from "@versia/kit/tables"; import { calculatePKCECodeChallenge, @@ -7,7 +8,6 @@ import { generateRandomCodeVerifier, processDiscoveryResponse, } from "oauth4webapi"; -import { Application } from "~/classes/database/application.ts"; import type { PluginType } from "../../index.ts"; import { oauthRedirectUri } from "../../utils.ts"; diff --git a/plugins/openid/routes/oauth/token.test.ts b/plugins/openid/routes/oauth/token.test.ts index 2bdbbf0a..b1884903 100644 --- a/plugins/openid/routes/oauth/token.test.ts +++ b/plugins/openid/routes/oauth/token.test.ts @@ -1,8 +1,8 @@ import { afterAll, beforeAll, describe, expect, test } from "bun:test"; import { db } from "@versia/kit/db"; +import { Application } from "@versia/kit/db"; import { eq } from "@versia/kit/drizzle"; import { Tokens } from "@versia/kit/tables"; -import { Application } from "~/classes/database/application"; import { fakeRequest, getTestUsers } from "~/tests/utils"; const { deleteUsers, users } = await getTestUsers(1); diff --git a/plugins/openid/routes/oauth/token.ts b/plugins/openid/routes/oauth/token.ts index abdf86ae..b50e7d13 100644 --- a/plugins/openid/routes/oauth/token.ts +++ b/plugins/openid/routes/oauth/token.ts @@ -1,9 +1,9 @@ import { jsonOrForm } from "@/api"; import { createRoute, z } from "@hono/zod-openapi"; import { db } from "@versia/kit/db"; +import { Application } from "@versia/kit/db"; import { eq } from "@versia/kit/drizzle"; import { Tokens } from "@versia/kit/tables"; -import { Application } from "~/classes/database/application.ts"; import type { PluginType } from "../../index.ts"; export const schemas = { diff --git a/setup.ts b/setup.ts index 2764bfa0..415353a6 100644 --- a/setup.ts +++ b/setup.ts @@ -1,7 +1,7 @@ import { checkConfig } from "@/init"; import { configureLoggers } from "@/loggers"; import { getLogger } from "@logtape/logtape"; -import { Note } from "~/classes/database/note.ts"; +import { Note } from "@versia/kit/db"; import { setupDatabase } from "~/drizzle/db"; import { config } from "~/packages/config-manager/index.ts"; import { searchManager } from "./classes/search/search-manager.ts"; diff --git a/tests/oauth-scopes.test.ts b/tests/oauth-scopes.test.ts index 116387d2..8e695b26 100644 --- a/tests/oauth-scopes.test.ts +++ b/tests/oauth-scopes.test.ts @@ -1,9 +1,6 @@ import { describe, expect, it } from "bun:test"; import { checkIfOauthIsValid } from "@/oauth"; -import { - Application, - type ApplicationType, -} from "~/classes/database/application"; +import { Application, type ApplicationType } from "@versia/kit/db"; describe("checkIfOauthIsValid", () => { it("should return true when routeScopes and application.scopes are empty", () => { diff --git a/tests/utils.ts b/tests/utils.ts index 18738aeb..927d4d4f 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -1,10 +1,9 @@ import { generateChallenge } from "@/challenges"; import { randomString } from "@/math"; +import { Note, User } from "@versia/kit/db"; import { solveChallenge } from "altcha-lib"; import { asc, inArray, like } from "drizzle-orm"; import { appFactory } from "~/app"; -import { Note } from "~/classes/database/note"; -import { User } from "~/classes/database/user"; import type { Status } from "~/classes/functions/status"; import { searchManager } from "~/classes/search/search-manager"; import { db } from "~/drizzle/db"; diff --git a/types/api.ts b/types/api.ts index 3d6c98af..9db1ff54 100644 --- a/types/api.ts +++ b/types/api.ts @@ -11,10 +11,9 @@ import type { Unfollow, User, } from "@versia/federation/types"; +import type { Application, User as DatabaseUser } from "@versia/kit/db"; import type { SocketAddress } from "bun"; import { z } from "zod"; -import type { Application } from "~/classes/database/application"; -import type { User as DatabaseUser } from "~/classes/database/user"; import type { RolePermissions } from "~/drizzle/schema"; import type { Config } from "~/packages/config-manager"; diff --git a/utils/api.ts b/utils/api.ts index 374975f5..a66fb4d5 100644 --- a/utils/api.ts +++ b/utils/api.ts @@ -2,6 +2,7 @@ import type { Context } from "@hono/hono"; import { createMiddleware } from "@hono/hono/factory"; import type { OpenAPIHono } from "@hono/zod-openapi"; import { getLogger } from "@logtape/logtape"; +import { Application, type User } from "@versia/kit/db"; import { extractParams, verifySolution } from "altcha-lib"; import chalk from "chalk"; import { eq } from "drizzle-orm"; @@ -22,8 +23,6 @@ import { import { parse } from "qs"; import type { z } from "zod"; import { fromZodError } from "zod-validation-error"; -import { Application } from "~/classes/database/application"; -import type { User } from "~/classes/database/user"; import { type AuthData, getFromHeader } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Challenges } from "~/drizzle/schema"; diff --git a/utils/init.ts b/utils/init.ts index 3a1fa502..64d8291c 100644 --- a/utils/init.ts +++ b/utils/init.ts @@ -1,6 +1,6 @@ import { getLogger } from "@logtape/logtape"; +import { User } from "@versia/kit/db"; import chalk from "chalk"; -import { User } from "~/classes/database/user"; import type { Config } from "~/packages/config-manager"; export const checkConfig = async (config: Config) => { diff --git a/utils/oauth.ts b/utils/oauth.ts index 5a7f839c..d98a03e8 100644 --- a/utils/oauth.ts +++ b/utils/oauth.ts @@ -1,4 +1,4 @@ -import type { Application } from "~/classes/database/application"; +import type { Application } from "@versia/kit/db"; /** * Check if an OAuth application is valid for a route diff --git a/worker.ts b/worker.ts new file mode 100644 index 00000000..fa5adb02 --- /dev/null +++ b/worker.ts @@ -0,0 +1,51 @@ +import type { Entity } from "@versia/federation/types"; +import { Note } from "@versia/kit/db"; +import { Queue, Worker } from "bullmq"; +import IORedis from "ioredis"; +import { config } from "./packages/config-manager/index.ts"; + +const connection = new IORedis({ + host: config.redis.queue.host, + port: config.redis.queue.port, + password: config.redis.queue.password, + db: config.redis.queue.database, +}); + +enum DeliveryJobType { + FederateNote = "federateNote", +} + +enum InboxJobType { + ProcessEntity = "processEntity", +} + +const deliveryQueue = new Queue<{ noteId: string }, void, DeliveryJobType>( + "delivery", + { + connection, + }, +); + +const inboxQueue = new Queue<{ data: Entity }, void, InboxJobType>("inbox", { + connection, +}); + +const worker = new Worker<{ noteId: string }, void, DeliveryJobType>( + deliveryQueue.name, + async (job) => { + switch (job.name) { + case DeliveryJobType.FederateNote: { + const noteId = job.data.noteId; + + const note = await Note.fromId(noteId); + + if (!note) { + throw new Error(`Note with ID ${noteId} not found`); + } + + await note.federateToUsers(); + } + } + }, + { connection }, +);