From 963173cdae2bf2bd44702d00905cbf6e27dcb138 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Thu, 10 Apr 2025 19:15:31 +0200 Subject: [PATCH] chore: :arrow_up: Upgrade to Biome 2.0 --- api/api/auth/login/index.test.ts | 2 +- api/api/auth/login/index.ts | 4 +- api/api/auth/redirect/index.ts | 2 +- api/api/auth/reset/index.test.ts | 2 +- api/api/auth/reset/index.ts | 3 +- api/api/v1/accounts/[id]/block.ts | 2 +- api/api/v1/accounts/[id]/follow.ts | 4 +- api/api/v1/accounts/[id]/followers.ts | 2 +- api/api/v1/accounts/[id]/following.ts | 2 +- api/api/v1/accounts/[id]/index.ts | 2 +- api/api/v1/accounts/[id]/mute.ts | 2 +- api/api/v1/accounts/[id]/note.ts | 2 +- api/api/v1/accounts/[id]/pin.ts | 2 +- api/api/v1/accounts/[id]/refetch.ts | 2 +- .../v1/accounts/[id]/remove_from_followers.ts | 2 +- .../[id]/roles/[role_id]/index.test.ts | 1 + .../v1/accounts/[id]/roles/[role_id]/index.ts | 2 +- api/api/v1/accounts/[id]/roles/index.ts | 2 +- api/api/v1/accounts/[id]/statuses.ts | 2 +- api/api/v1/accounts/[id]/unblock.ts | 2 +- api/api/v1/accounts/[id]/unfollow.ts | 2 +- api/api/v1/accounts/[id]/unmute.ts | 2 +- api/api/v1/accounts/[id]/unpin.ts | 2 +- .../v1/accounts/familiar_followers/index.ts | 4 +- api/api/v1/accounts/index.test.ts | 2 +- api/api/v1/accounts/index.ts | 4 +- 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 | 6 +- .../v1/accounts/verify_credentials/index.ts | 2 +- api/api/v1/apps/index.ts | 4 +- api/api/v1/apps/verify_credentials/index.ts | 2 +- api/api/v1/blocks/index.ts | 2 +- api/api/v1/challenges/index.ts | 4 +- api/api/v1/custom_emojis/index.ts | 2 +- api/api/v1/emojis/[id]/index.ts | 10 +-- api/api/v1/emojis/index.ts | 4 +- api/api/v1/favourites/index.ts | 2 +- .../follow_requests/[account_id]/authorize.ts | 2 +- .../v1/follow_requests/[account_id]/reject.ts | 2 +- api/api/v1/follow_requests/index.ts | 2 +- api/api/v1/frontend/config/index.ts | 2 +- api/api/v1/instance/extended_description.ts | 2 +- api/api/v1/instance/index.ts | 2 +- api/api/v1/instance/privacy_policy.ts | 2 +- api/api/v1/instance/rules.ts | 2 +- api/api/v1/instance/terms_of_service.ts | 2 +- api/api/v1/markers/index.ts | 4 +- api/api/v1/media/[id]/index.ts | 2 +- api/api/v1/media/index.ts | 2 +- api/api/v1/mutes/index.ts | 2 +- api/api/v1/notifications/[id]/dismiss.ts | 2 +- api/api/v1/notifications/[id]/index.ts | 2 +- api/api/v1/notifications/clear/index.ts | 2 +- .../notifications/destroy_multiple/index.ts | 2 +- api/api/v1/notifications/index.ts | 2 +- api/api/v1/profile/avatar.ts | 2 +- api/api/v1/profile/header.ts | 2 +- api/api/v1/push/subscription/index.delete.ts | 2 +- api/api/v1/push/subscription/index.get.ts | 2 +- api/api/v1/push/subscription/index.post.ts | 4 +- api/api/v1/push/subscription/index.put.ts | 2 +- api/api/v1/roles/[id]/index.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 | 2 +- api/api/v1/statuses/[id]/index.ts | 16 ++-- api/api/v1/statuses/[id]/pin.ts | 2 +- api/api/v1/statuses/[id]/reblog.ts | 2 +- api/api/v1/statuses/[id]/reblogged_by.ts | 2 +- 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.test.ts | 2 +- api/api/v1/statuses/index.ts | 4 +- api/api/v1/timelines/home.ts | 2 +- api/api/v1/timelines/public.ts | 2 +- api/api/v2/filters/[id]/index.ts | 4 +- api/api/v2/filters/index.ts | 2 +- api/api/v2/instance/index.ts | 2 +- api/api/v2/media/index.ts | 2 +- api/api/v2/search/index.ts | 16 ++-- api/inbox/index.ts | 2 +- api/likes/[uuid]/index.ts | 2 +- api/media/[hash]/[name]/index.ts | 2 +- api/media/proxy/[id].ts | 6 +- api/messaging/index.ts | 2 +- api/notes/[uuid]/index.ts | 2 +- api/notes/[uuid]/quotes.ts | 4 +- api/notes/[uuid]/replies.ts | 4 +- api/users/[uuid]/inbox/index.ts | 2 +- api/users/[uuid]/index.ts | 2 +- api/users/[uuid]/outbox/index.ts | 4 +- api/well-known/host-meta/index.ts | 2 +- api/well-known/nodeinfo/2.0/index.ts | 2 +- api/well-known/nodeinfo/index.ts | 2 +- api/well-known/openid-configuration/index.ts | 2 +- api/well-known/versia.ts | 4 +- api/well-known/webfinger/index.ts | 14 ++-- app.ts | 8 +- benchmarks/timeline.ts | 2 +- biome.json | 73 ++++++++++++------- bun.lock | 20 ++--- classes/database/application.ts | 8 +- classes/database/emoji.ts | 10 +-- classes/database/instance.ts | 6 +- classes/database/like.ts | 6 +- classes/database/media.ts | 10 +-- classes/database/note.ts | 16 ++-- classes/database/notification.ts | 8 +- classes/database/pushsubscription.ts | 8 +- classes/database/reaction.ts | 8 +- classes/database/relationship.ts | 6 +- classes/database/role.ts | 9 ++- classes/database/timeline.ts | 2 +- classes/database/token.ts | 8 +- classes/database/user.ts | 20 ++--- classes/errors/api-error.ts | 4 +- classes/functions/status.ts | 6 +- classes/functions/user.ts | 2 +- classes/inbox/processor.ts | 4 +- classes/plugin/loader.ts | 4 +- classes/queues/push.ts | 2 +- classes/search/search-manager.ts | 2 +- cli/index/rebuild.ts | 3 +- cli/instance/refetch.ts | 3 +- cli/user/create.ts | 3 +- cli/user/delete.ts | 3 +- cli/user/refetch.ts | 3 +- cli/user/token.ts | 5 +- cli/utils.ts | 2 +- docs/.vitepress/theme/index.ts | 2 +- drizzle/db.ts | 2 +- entrypoints/api/index.ts | 2 +- entrypoints/api/setup.ts | 4 +- entrypoints/worker/index.ts | 2 +- entrypoints/worker/setup.ts | 4 +- middlewares/ip-bans.ts | 2 +- package.json | 12 ++- packages/client/index.ts | 1 - packages/client/package.json | 12 ++- packages/client/schemas.ts | 17 ++--- packages/client/schemas/account.ts | 2 +- packages/client/schemas/emoji.ts | 2 +- packages/client/schemas/notification.ts | 2 +- packages/client/versia/client.ts | 1 - packages/plugin-kit/exports/db.ts | 21 +++--- packages/plugin-kit/exports/drizzle.ts | 2 - packages/plugin-kit/exports/tables.ts | 2 - packages/plugin-kit/index.ts | 1 - packages/plugin-kit/package.json | 6 +- packages/plugin-kit/plugin.ts | 2 +- packages/sdk/entities/index.ts | 21 +++--- packages/sdk/package.json | 10 ++- packages/sdk/schemas/collection.ts | 2 +- packages/sdk/schemas/extensions/polls.ts | 2 +- packages/sdk/schemas/index.ts | 29 ++++---- plugins/openid/index.ts | 2 +- plugins/openid/routes/authorize.test.ts | 2 +- plugins/openid/routes/authorize.ts | 6 +- plugins/openid/routes/jwks.ts | 2 +- plugins/openid/routes/oauth/callback.ts | 10 +-- plugins/openid/routes/oauth/revoke.ts | 4 +- plugins/openid/routes/oauth/sso.ts | 2 +- plugins/openid/routes/oauth/token.ts | 2 +- plugins/openid/routes/sso/:id/index.ts | 4 +- plugins/openid/routes/sso/index.ts | 2 +- plugins/openid/utils.ts | 8 +- tests/utils.ts | 8 +- utils/api.ts | 6 +- utils/loggers.ts | 4 +- 174 files changed, 412 insertions(+), 379 deletions(-) diff --git a/api/api/auth/login/index.test.ts b/api/api/auth/login/index.test.ts index a2c269c0..69c591bf 100644 --- a/api/api/auth/login/index.test.ts +++ b/api/api/auth/login/index.test.ts @@ -1,7 +1,7 @@ import { afterAll, describe, expect, test } from "bun:test"; -import { randomString } from "@/math"; import { Application } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; +import { randomString } from "@/math"; import { config } from "~/config.ts"; import { fakeRequest, getTestUsers } from "~/tests/utils"; diff --git a/api/api/auth/login/index.ts b/api/api/auth/login/index.ts index 452c5490..3913547a 100644 --- a/api/api/auth/login/index.ts +++ b/api/api/auth/login/index.ts @@ -1,14 +1,14 @@ -import { apiRoute, handleZodError } from "@/api"; import { Application, User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; import { password as bunPassword } from "bun"; import { eq, or } from "drizzle-orm"; import type { Context } from "hono"; +import { setCookie } from "hono/cookie"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; -import { setCookie } from "hono/cookie"; import { SignJWT } from "jose"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/api/api/auth/redirect/index.ts b/api/api/auth/redirect/index.ts index 5d912d2a..7dc95a6f 100644 --- a/api/api/auth/redirect/index.ts +++ b/api/api/auth/redirect/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, handleZodError } from "@/api"; import { db } from "@versia/kit/db"; import { Applications, Tokens } from "@versia/kit/tables"; import { and, eq } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { config } from "~/config.ts"; /** diff --git a/api/api/auth/reset/index.test.ts b/api/api/auth/reset/index.test.ts index a35a1977..d61eeae0 100644 --- a/api/api/auth/reset/index.test.ts +++ b/api/api/auth/reset/index.test.ts @@ -1,7 +1,7 @@ import { afterAll, describe, expect, test } from "bun:test"; -import { randomString } from "@/math"; import { Application } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; +import { randomString } from "@/math"; import { config } from "~/config.ts"; import { fakeRequest, getTestUsers } from "~/tests/utils"; diff --git a/api/api/auth/reset/index.ts b/api/api/auth/reset/index.ts index eac0ee93..86dc15dd 100644 --- a/api/api/auth/reset/index.ts +++ b/api/api/auth/reset/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, handleZodError } from "@/api"; import { User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; import { password as bunPassword } from "bun"; @@ -7,7 +6,9 @@ import type { Context } from "hono"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { config } from "~/config.ts"; + const returnError = ( context: Context, token: string, diff --git a/api/api/v1/accounts/[id]/block.ts b/api/api/v1/accounts/[id]/block.ts index 8432af82..b6a9e926 100644 --- a/api/api/v1/accounts/[id]/block.ts +++ b/api/api/v1/accounts/[id]/block.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/follow.ts b/api/api/v1/accounts/[id]/follow.ts index b0ac881c..d7f162c2 100644 --- a/api/api/v1/accounts/[id]/follow.ts +++ b/api/api/v1/accounts/[id]/follow.ts @@ -1,13 +1,13 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { - Relationship as RelationshipSchema, iso631, + Relationship as RelationshipSchema, } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/followers.ts b/api/api/v1/accounts/[id]/followers.ts index 60450727..dbfb6b40 100644 --- a/api/api/v1/accounts/[id]/followers.ts +++ b/api/api/v1/accounts/[id]/followers.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/following.ts b/api/api/v1/accounts/[id]/following.ts index c9e596f8..5f00e66f 100644 --- a/api/api/v1/accounts/[id]/following.ts +++ b/api/api/v1/accounts/[id]/following.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/index.ts b/api/api/v1/accounts/[id]/index.ts index c4df5968..4944142a 100644 --- a/api/api/v1/accounts/[id]/index.ts +++ b/api/api/v1/accounts/[id]/index.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/mute.ts b/api/api/v1/accounts/[id]/mute.ts index a5d555c0..433ee0f7 100644 --- a/api/api/v1/accounts/[id]/mute.ts +++ b/api/api/v1/accounts/[id]/mute.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { RelationshipJobType } from "~/classes/queues/relationships"; import { relationshipQueue } from "~/classes/queues/relationships"; diff --git a/api/api/v1/accounts/[id]/note.ts b/api/api/v1/accounts/[id]/note.ts index a85b79ef..e98f2d3e 100644 --- a/api/api/v1/accounts/[id]/note.ts +++ b/api/api/v1/accounts/[id]/note.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/pin.ts b/api/api/v1/accounts/[id]/pin.ts index 586cc8f1..be7a346c 100644 --- a/api/api/v1/accounts/[id]/pin.ts +++ b/api/api/v1/accounts/[id]/pin.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; export default apiRoute((app) => app.post( diff --git a/api/api/v1/accounts/[id]/refetch.ts b/api/api/v1/accounts/[id]/refetch.ts index d096d53e..ec3c9a84 100644 --- a/api/api/v1/accounts/[id]/refetch.ts +++ b/api/api/v1/accounts/[id]/refetch.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { User } from "~/classes/database/user"; import { ApiError } from "~/classes/errors/api-error"; diff --git a/api/api/v1/accounts/[id]/remove_from_followers.ts b/api/api/v1/accounts/[id]/remove_from_followers.ts index c5d5a902..9e1d5431 100644 --- a/api/api/v1/accounts/[id]/remove_from_followers.ts +++ b/api/api/v1/accounts/[id]/remove_from_followers.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/roles/[role_id]/index.test.ts b/api/api/v1/accounts/[id]/roles/[role_id]/index.test.ts index 02d10864..c1ed1401 100644 --- a/api/api/v1/accounts/[id]/roles/[role_id]/index.test.ts +++ b/api/api/v1/accounts/[id]/roles/[role_id]/index.test.ts @@ -3,6 +3,7 @@ import { RolePermission } from "@versia/client/schemas"; import { Role } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; import { generateClient, getTestUsers } from "~/tests/utils"; + const { users, deleteUsers } = await getTestUsers(2); let role: Role; let higherPriorityRole: Role; diff --git a/api/api/v1/accounts/[id]/roles/[role_id]/index.ts b/api/api/v1/accounts/[id]/roles/[role_id]/index.ts index b11d5baa..f18e5f83 100644 --- a/api/api/v1/accounts/[id]/roles/[role_id]/index.ts +++ b/api/api/v1/accounts/[id]/roles/[role_id]/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Account as AccountSchema, Role as RoleSchema, @@ -8,6 +7,7 @@ import { Role } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v1/accounts/[id]/roles/index.ts b/api/api/v1/accounts/[id]/roles/index.ts index 1e37066c..3bd8b18a 100644 --- a/api/api/v1/accounts/[id]/roles/index.ts +++ b/api/api/v1/accounts/[id]/roles/index.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Role as RoleSchema } from "@versia/client/schemas"; import { Role } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, withUserParam } from "@/api"; export default apiRoute((app) => { app.get( diff --git a/api/api/v1/accounts/[id]/statuses.ts b/api/api/v1/accounts/[id]/statuses.ts index 0344d3a3..d18c2c4f 100644 --- a/api/api/v1/accounts/[id]/statuses.ts +++ b/api/api/v1/accounts/[id]/statuses.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { Status as StatusSchema, zBoolean } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, eq, gt, gte, inArray, isNull, lt, or, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/unblock.ts b/api/api/v1/accounts/[id]/unblock.ts index 2294a349..d861d45b 100644 --- a/api/api/v1/accounts/[id]/unblock.ts +++ b/api/api/v1/accounts/[id]/unblock.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/unfollow.ts b/api/api/v1/accounts/[id]/unfollow.ts index 8810130a..594bf2c5 100644 --- a/api/api/v1/accounts/[id]/unfollow.ts +++ b/api/api/v1/accounts/[id]/unfollow.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/unmute.ts b/api/api/v1/accounts/[id]/unmute.ts index f92fc039..d8fe8534 100644 --- a/api/api/v1/accounts/[id]/unmute.ts +++ b/api/api/v1/accounts/[id]/unmute.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/[id]/unpin.ts b/api/api/v1/accounts/[id]/unpin.ts index e0bf1fd6..1ceba1fe 100644 --- a/api/api/v1/accounts/[id]/unpin.ts +++ b/api/api/v1/accounts/[id]/unpin.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth, withUserParam } from "@/api"; import { Relationship as RelationshipSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withUserParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/accounts/familiar_followers/index.ts b/api/api/v1/accounts/familiar_followers/index.ts index e1cb1ded..0bc5c92f 100644 --- a/api/api/v1/accounts/familiar_followers/index.ts +++ b/api/api/v1/accounts/familiar_followers/index.ts @@ -1,15 +1,15 @@ -import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { Account as AccountSchema, FamiliarFollowers as FamiliarFollowersSchema, } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; -import { User, db } from "@versia/kit/db"; +import { db, User } from "@versia/kit/db"; import type { Users } from "@versia/kit/tables"; import { type InferSelectModel, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/accounts/index.test.ts b/api/api/v1/accounts/index.test.ts index e4416f1f..1938ca12 100644 --- a/api/api/v1/accounts/index.test.ts +++ b/api/api/v1/accounts/index.test.ts @@ -1,8 +1,8 @@ import { afterEach, describe, expect, test } from "bun:test"; -import { randomString } from "@/math"; import { db } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; import { eq } from "drizzle-orm"; +import { randomString } from "@/math"; import { generateClient, getSolvedChallenge } from "~/tests/utils"; const username = randomString(10, "hex"); diff --git a/api/api/v1/accounts/index.ts b/api/api/v1/accounts/index.ts index 3eac0054..2c891f1d 100644 --- a/api/api/v1/accounts/index.ts +++ b/api/api/v1/accounts/index.ts @@ -1,5 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; -import { tempmailDomains } from "@/tempmail"; import { zBoolean } from "@versia/client/schemas"; import { User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; @@ -8,6 +6,8 @@ import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import ISO6391 from "iso-639-1"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; +import { tempmailDomains } from "@/tempmail"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/accounts/lookup/index.ts b/api/api/v1/accounts/lookup/index.ts index c2d13a39..5e044843 100644 --- a/api/api/v1/accounts/lookup/index.ts +++ b/api/api/v1/accounts/lookup/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, parseUserAddress } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Instance, User } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, eq, isNull } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, parseUserAddress } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/accounts/relationships/index.ts b/api/api/v1/accounts/relationships/index.ts index 22545c64..0476dda1 100644 --- a/api/api/v1/accounts/relationships/index.ts +++ b/api/api/v1/accounts/relationships/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { Account as AccountSchema, Relationship as RelationshipSchema, @@ -9,6 +8,7 @@ import { Relationship } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/accounts/search/index.ts b/api/api/v1/accounts/search/index.ts index dfe3f421..aeecbe65 100644 --- a/api/api/v1/accounts/search/index.ts +++ b/api/api/v1/accounts/search/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, parseUserAddress } from "@/api"; import { Account as AccountSchema, zBoolean } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { User } from "@versia/kit/db"; @@ -8,6 +7,7 @@ import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import stringComparison from "string-comparison"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, parseUserAddress } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/accounts/update_credentials/index.ts b/api/api/v1/accounts/update_credentials/index.ts index 496c0ae9..b9d16a2c 100644 --- a/api/api/v1/accounts/update_credentials/index.ts +++ b/api/api/v1/accounts/update_credentials/index.ts @@ -1,6 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; -import { mergeAndDeduplicate } from "@/lib"; -import { sanitizedHtmlStrip } from "@/sanitization"; import { Account as AccountSchema, zBoolean } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Emoji, Media, User } from "@versia/kit/db"; @@ -9,6 +6,9 @@ import { and, eq, isNull } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; +import { mergeAndDeduplicate } from "@/lib"; +import { sanitizedHtmlStrip } from "@/sanitization"; import { ApiError } from "~/classes/errors/api-error"; import { contentToHtml } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/accounts/verify_credentials/index.ts b/api/api/v1/accounts/verify_credentials/index.ts index e597d03c..d2f016e8 100644 --- a/api/api/v1/accounts/verify_credentials/index.ts +++ b/api/api/v1/accounts/verify_credentials/index.ts @@ -1,7 +1,7 @@ -import { apiRoute, auth } from "@/api"; import { Account } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/apps/index.ts b/api/api/v1/apps/index.ts index bbe31b2b..593f3f2d 100644 --- a/api/api/v1/apps/index.ts +++ b/api/api/v1/apps/index.ts @@ -1,5 +1,3 @@ -import { apiRoute, handleZodError, jsonOrForm } from "@/api"; -import { randomString } from "@/math"; import { Application as ApplicationSchema, CredentialApplication as CredentialApplicationSchema, @@ -9,6 +7,8 @@ import { randomUUIDv7 } from "bun"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError, jsonOrForm } from "@/api"; +import { randomString } from "@/math"; import { ApiError } from "~/classes/errors/api-error"; import { rateLimit } from "~/middlewares/rate-limit"; diff --git a/api/api/v1/apps/verify_credentials/index.ts b/api/api/v1/apps/verify_credentials/index.ts index c531a3fe..89643974 100644 --- a/api/api/v1/apps/verify_credentials/index.ts +++ b/api/api/v1/apps/verify_credentials/index.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth } from "@/api"; import { Application as ApplicationSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Application } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/blocks/index.ts b/api/api/v1/blocks/index.ts index 976646e0..6ea76318 100644 --- a/api/api/v1/blocks/index.ts +++ b/api/api/v1/blocks/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/challenges/index.ts b/api/api/v1/challenges/index.ts index 34bed792..87cf76ac 100644 --- a/api/api/v1/challenges/index.ts +++ b/api/api/v1/challenges/index.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth } from "@/api"; -import { generateChallenge } from "@/challenges"; import { Challenge } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; +import { generateChallenge } from "@/challenges"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/api/api/v1/custom_emojis/index.ts b/api/api/v1/custom_emojis/index.ts index 84d47b4f..4d52acf1 100644 --- a/api/api/v1/custom_emojis/index.ts +++ b/api/api/v1/custom_emojis/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth } from "@/api"; import { CustomEmoji as CustomEmojiSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Emoji } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, eq, isNull, or } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/emojis/[id]/index.ts b/api/api/v1/emojis/[id]/index.ts index ce89d798..64782cff 100644 --- a/api/api/v1/emojis/[id]/index.ts +++ b/api/api/v1/emojis/[id]/index.ts @@ -1,3 +1,8 @@ +import { CustomEmoji as CustomEmojiSchema } from "@versia/client/schemas"; +import { RolePermission } from "@versia/client/schemas"; +import { describeRoute } from "hono-openapi"; +import { resolver, validator } from "hono-openapi/zod"; +import { z } from "zod"; import { apiRoute, auth, @@ -6,11 +11,6 @@ import { withEmojiParam, } from "@/api"; import { mimeLookup } from "@/content_types"; -import { CustomEmoji as CustomEmojiSchema } from "@versia/client/schemas"; -import { RolePermission } from "@versia/client/schemas"; -import { describeRoute } from "hono-openapi"; -import { resolver, validator } from "hono-openapi/zod"; -import { z } from "zod"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/api/api/v1/emojis/index.ts b/api/api/v1/emojis/index.ts index 9f9b74de..14682a83 100644 --- a/api/api/v1/emojis/index.ts +++ b/api/api/v1/emojis/index.ts @@ -1,5 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; -import { mimeLookup } from "@/content_types"; import { CustomEmoji as CustomEmojiSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Emoji, Media } from "@versia/kit/db"; @@ -9,6 +7,8 @@ import { and, eq, isNull, or } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; +import { mimeLookup } from "@/content_types"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/api/api/v1/favourites/index.ts b/api/api/v1/favourites/index.ts index a1ad14e9..534d0897 100644 --- a/api/api/v1/favourites/index.ts +++ b/api/api/v1/favourites/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/follow_requests/[account_id]/authorize.ts b/api/api/v1/follow_requests/[account_id]/authorize.ts index 29abd259..dc53248c 100644 --- a/api/api/v1/follow_requests/[account_id]/authorize.ts +++ b/api/api/v1/follow_requests/[account_id]/authorize.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema, Relationship as RelationshipSchema, @@ -8,6 +7,7 @@ import { Relationship, User } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/follow_requests/[account_id]/reject.ts b/api/api/v1/follow_requests/[account_id]/reject.ts index a7e0bf7d..9924a23d 100644 --- a/api/api/v1/follow_requests/[account_id]/reject.ts +++ b/api/api/v1/follow_requests/[account_id]/reject.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema, Relationship as RelationshipSchema, @@ -8,6 +7,7 @@ import { Relationship, User } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/follow_requests/index.ts b/api/api/v1/follow_requests/index.ts index 963e9295..4007ad4e 100644 --- a/api/api/v1/follow_requests/index.ts +++ b/api/api/v1/follow_requests/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/frontend/config/index.ts b/api/api/v1/frontend/config/index.ts index df9bdc28..2383af47 100644 --- a/api/api/v1/frontend/config/index.ts +++ b/api/api/v1/frontend/config/index.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; export default apiRoute((app) => diff --git a/api/api/v1/instance/extended_description.ts b/api/api/v1/instance/extended_description.ts index 0a98af87..d01985d4 100644 --- a/api/api/v1/instance/extended_description.ts +++ b/api/api/v1/instance/extended_description.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { ExtendedDescription as ExtendedDescriptionSchema } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute } from "@/api"; import { markdownParse } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/instance/index.ts b/api/api/v1/instance/index.ts index afec20ed..e8a855d8 100644 --- a/api/api/v1/instance/index.ts +++ b/api/api/v1/instance/index.ts @@ -1,4 +1,3 @@ -import { apiRoute } from "@/api"; import { InstanceV1 as InstanceV1Schema } from "@versia/client/schemas"; import { Instance, Note, User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; @@ -6,6 +5,7 @@ import { and, eq, isNull } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import type { z } from "zod"; +import { apiRoute } from "@/api"; import { markdownParse } from "~/classes/functions/status"; import type { ProxiableUrl } from "~/classes/media/url"; import { config } from "~/config.ts"; diff --git a/api/api/v1/instance/privacy_policy.ts b/api/api/v1/instance/privacy_policy.ts index 020a1289..6af7596d 100644 --- a/api/api/v1/instance/privacy_policy.ts +++ b/api/api/v1/instance/privacy_policy.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { PrivacyPolicy as PrivacyPolicySchema } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute } from "@/api"; import { markdownParse } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/instance/rules.ts b/api/api/v1/instance/rules.ts index 542775f7..783ec424 100644 --- a/api/api/v1/instance/rules.ts +++ b/api/api/v1/instance/rules.ts @@ -1,8 +1,8 @@ -import { apiRoute } from "@/api"; import { Rule as RuleSchema } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; export default apiRoute((app) => diff --git a/api/api/v1/instance/terms_of_service.ts b/api/api/v1/instance/terms_of_service.ts index 008c7193..91e0a781 100644 --- a/api/api/v1/instance/terms_of_service.ts +++ b/api/api/v1/instance/terms_of_service.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { TermsOfService as TermsOfServiceSchema } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute } from "@/api"; import { markdownParse } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/markers/index.ts b/api/api/v1/markers/index.ts index 4bc1b48e..9c94aad2 100644 --- a/api/api/v1/markers/index.ts +++ b/api/api/v1/markers/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Marker as MarkerSchema, Notification as NotificationSchema, @@ -8,10 +7,11 @@ import { RolePermission } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; import { Markers } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; -import { type SQL, and, eq } from "drizzle-orm"; +import { and, eq, type SQL } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; const MarkerResponseSchema = z.object({ diff --git a/api/api/v1/media/[id]/index.ts b/api/api/v1/media/[id]/index.ts index 7aab19bb..5f19d04d 100644 --- a/api/api/v1/media/[id]/index.ts +++ b/api/api/v1/media/[id]/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Attachment as AttachmentSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Media } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v1/media/index.ts b/api/api/v1/media/index.ts index aebb3ca1..0769001a 100644 --- a/api/api/v1/media/index.ts +++ b/api/api/v1/media/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Attachment as AttachmentSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Media } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/mutes/index.ts b/api/api/v1/mutes/index.ts index 3117beab..72c7482b 100644 --- a/api/api/v1/mutes/index.ts +++ b/api/api/v1/mutes/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/notifications/[id]/dismiss.ts b/api/api/v1/notifications/[id]/dismiss.ts index 3a872364..8aebf9f0 100644 --- a/api/api/v1/notifications/[id]/dismiss.ts +++ b/api/api/v1/notifications/[id]/dismiss.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Notification as NotificationSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Notification } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/notifications/[id]/index.ts b/api/api/v1/notifications/[id]/index.ts index 8bcb2288..464ef4b3 100644 --- a/api/api/v1/notifications/[id]/index.ts +++ b/api/api/v1/notifications/[id]/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Notification as NotificationSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Notification } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/notifications/clear/index.ts b/api/api/v1/notifications/clear/index.ts index 931c0be8..747a03ba 100644 --- a/api/api/v1/notifications/clear/index.ts +++ b/api/api/v1/notifications/clear/index.ts @@ -1,6 +1,6 @@ -import { apiRoute, auth } from "@/api"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/notifications/destroy_multiple/index.ts b/api/api/v1/notifications/destroy_multiple/index.ts index 0dbf9922..9a17213f 100644 --- a/api/api/v1/notifications/destroy_multiple/index.ts +++ b/api/api/v1/notifications/destroy_multiple/index.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, qsQuery } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/notifications/index.ts b/api/api/v1/notifications/index.ts index 9c999c81..2ab4572c 100644 --- a/api/api/v1/notifications/index.ts +++ b/api/api/v1/notifications/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Account as AccountSchema, Notification as NotificationSchema, @@ -11,6 +10,7 @@ import { and, eq, gt, gte, inArray, lt, not, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/profile/avatar.ts b/api/api/v1/profile/avatar.ts index 1ce6bcf9..13f6f95d 100644 --- a/api/api/v1/profile/avatar.ts +++ b/api/api/v1/profile/avatar.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth } from "@/api"; import { Account } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/profile/header.ts b/api/api/v1/profile/header.ts index 98f728ec..7816c1eb 100644 --- a/api/api/v1/profile/header.ts +++ b/api/api/v1/profile/header.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth } from "@/api"; import { Account } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/push/subscription/index.delete.ts b/api/api/v1/push/subscription/index.delete.ts index ecab9452..773274be 100644 --- a/api/api/v1/push/subscription/index.delete.ts +++ b/api/api/v1/push/subscription/index.delete.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth } from "@/api"; import { RolePermission } from "@versia/client/schemas"; import { PushSubscription } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/push/subscription/index.get.ts b/api/api/v1/push/subscription/index.get.ts index 1c945519..f30a7aef 100644 --- a/api/api/v1/push/subscription/index.get.ts +++ b/api/api/v1/push/subscription/index.get.ts @@ -1,9 +1,9 @@ -import { apiRoute, auth } from "@/api"; import { WebPushSubscription as WebPushSubscriptionSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { PushSubscription } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/push/subscription/index.post.ts b/api/api/v1/push/subscription/index.post.ts index 47376416..958e26eb 100644 --- a/api/api/v1/push/subscription/index.post.ts +++ b/api/api/v1/push/subscription/index.post.ts @@ -1,5 +1,3 @@ -import { apiRoute, handleZodError } from "@/api"; -import { auth, jsonOrForm } from "@/api"; import { WebPushSubscriptionInput, WebPushSubscription as WebPushSubscriptionSchema, @@ -9,6 +7,8 @@ import { PushSubscription } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; +import { apiRoute, handleZodError } from "@/api"; +import { auth, jsonOrForm } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/push/subscription/index.put.ts b/api/api/v1/push/subscription/index.put.ts index 31f4dac5..c86dd520 100644 --- a/api/api/v1/push/subscription/index.put.ts +++ b/api/api/v1/push/subscription/index.put.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { WebPushSubscriptionInput, WebPushSubscription as WebPushSubscriptionSchema, @@ -7,6 +6,7 @@ import { RolePermission } from "@versia/client/schemas"; import { PushSubscription } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/roles/[id]/index.ts b/api/api/v1/roles/[id]/index.ts index df443a70..f0d3c025 100644 --- a/api/api/v1/roles/[id]/index.ts +++ b/api/api/v1/roles/[id]/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Role as RoleSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Role } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v1/roles/index.ts b/api/api/v1/roles/index.ts index cccda125..f9e96024 100644 --- a/api/api/v1/roles/index.ts +++ b/api/api/v1/roles/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Role as RoleSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Role } from "@versia/kit/db"; @@ -6,6 +5,7 @@ import { randomUUIDv7 } from "bun"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v1/statuses/[id]/context.ts b/api/api/v1/statuses/[id]/context.ts index 05c82af1..5b006d50 100644 --- a/api/api/v1/statuses/[id]/context.ts +++ b/api/api/v1/statuses/[id]/context.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Context as ContextSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/favourite.ts b/api/api/v1/statuses/[id]/favourite.ts index 4344225f..e4432e06 100644 --- a/api/api/v1/statuses/[id]/favourite.ts +++ b/api/api/v1/statuses/[id]/favourite.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/favourited_by.ts b/api/api/v1/statuses/[id]/favourited_by.ts index c33859aa..2ff46f51 100644 --- a/api/api/v1/statuses/[id]/favourited_by.ts +++ b/api/api/v1/statuses/[id]/favourited_by.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withNoteParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/index.ts b/api/api/v1/statuses/[id]/index.ts index a6fa0873..ceca86f5 100644 --- a/api/api/v1/statuses/[id]/index.ts +++ b/api/api/v1/statuses/[id]/index.ts @@ -1,11 +1,3 @@ -import { - apiRoute, - auth, - handleZodError, - jsonOrForm, - withNoteParam, -} from "@/api"; -import { sanitizedHtmlStrip } from "@/sanitization"; import { Attachment as AttachmentSchema, PollOption, @@ -18,6 +10,14 @@ import { Emoji, Media } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { + apiRoute, + auth, + handleZodError, + jsonOrForm, + withNoteParam, +} from "@/api"; +import { sanitizedHtmlStrip } from "@/sanitization"; import { ApiError } from "~/classes/errors/api-error"; import { contentToHtml, parseTextMentions } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/statuses/[id]/pin.ts b/api/api/v1/statuses/[id]/pin.ts index 8ebddbba..b2f89382 100644 --- a/api/api/v1/statuses/[id]/pin.ts +++ b/api/api/v1/statuses/[id]/pin.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; import type { SQL } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/reblog.ts b/api/api/v1/statuses/[id]/reblog.ts index 45253d0a..131fe263 100644 --- a/api/api/v1/statuses/[id]/reblog.ts +++ b/api/api/v1/statuses/[id]/reblog.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, jsonOrForm, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Note } from "@versia/kit/db"; @@ -8,6 +7,7 @@ import { and, eq } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, jsonOrForm, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/reblogged_by.ts b/api/api/v1/statuses/[id]/reblogged_by.ts index 934d2d6f..db2e585e 100644 --- a/api/api/v1/statuses/[id]/reblogged_by.ts +++ b/api/api/v1/statuses/[id]/reblogged_by.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, withNoteParam } from "@/api"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, gt, gte, lt, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/source.ts b/api/api/v1/statuses/[id]/source.ts index 29e3cf51..4169b68a 100644 --- a/api/api/v1/statuses/[id]/source.ts +++ b/api/api/v1/statuses/[id]/source.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { StatusSource as StatusSourceSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/unfavourite.ts b/api/api/v1/statuses/[id]/unfavourite.ts index befb3fd7..4ae19e39 100644 --- a/api/api/v1/statuses/[id]/unfavourite.ts +++ b/api/api/v1/statuses/[id]/unfavourite.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/unpin.ts b/api/api/v1/statuses/[id]/unpin.ts index 47d08060..df9f8778 100644 --- a/api/api/v1/statuses/[id]/unpin.ts +++ b/api/api/v1/statuses/[id]/unpin.ts @@ -1,8 +1,8 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/[id]/unreblog.ts b/api/api/v1/statuses/[id]/unreblog.ts index bada9b4a..8ed69a92 100644 --- a/api/api/v1/statuses/[id]/unreblog.ts +++ b/api/api/v1/statuses/[id]/unreblog.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, withNoteParam } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Note } from "@versia/kit/db"; @@ -6,6 +5,7 @@ import { Notes } from "@versia/kit/tables"; import { and, eq } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute, auth, withNoteParam } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/statuses/index.test.ts b/api/api/v1/statuses/index.test.ts index d2571b9e..bb1fa6a9 100644 --- a/api/api/v1/statuses/index.test.ts +++ b/api/api/v1/statuses/index.test.ts @@ -1,6 +1,6 @@ import { afterAll, beforeAll, describe, expect, test } from "bun:test"; import type { Status } from "@versia/client/schemas"; -import { Media, db } from "@versia/kit/db"; +import { db, Media } from "@versia/kit/db"; import { Emojis } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { eq } from "drizzle-orm"; diff --git a/api/api/v1/statuses/index.ts b/api/api/v1/statuses/index.ts index a65b893f..a2846842 100644 --- a/api/api/v1/statuses/index.ts +++ b/api/api/v1/statuses/index.ts @@ -1,5 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; -import { sanitizedHtmlStrip } from "@/sanitization"; import { Attachment as AttachmentSchema, PollOption, @@ -13,6 +11,8 @@ import { randomUUIDv7 } from "bun"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; +import { sanitizedHtmlStrip } from "@/sanitization"; import { ApiError } from "~/classes/errors/api-error"; import { contentToHtml, parseTextMentions } from "~/classes/functions/status"; import { config } from "~/config.ts"; diff --git a/api/api/v1/timelines/home.ts b/api/api/v1/timelines/home.ts index 5f8090d9..805b1224 100644 --- a/api/api/v1/timelines/home.ts +++ b/api/api/v1/timelines/home.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, eq, gt, gte, inArray, lt, or, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v1/timelines/public.ts b/api/api/v1/timelines/public.ts index 848b17e7..ddc6e301 100644 --- a/api/api/v1/timelines/public.ts +++ b/api/api/v1/timelines/public.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Status as StatusSchema, zBoolean } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Timeline } from "@versia/kit/db"; @@ -7,6 +6,7 @@ import { and, eq, gt, gte, inArray, lt, or, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v2/filters/[id]/index.ts b/api/api/v2/filters/[id]/index.ts index dd6d08c9..14b4fef6 100644 --- a/api/api/v2/filters/[id]/index.ts +++ b/api/api/v2/filters/[id]/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { FilterKeyword as FilterKeywordSchema, Filter as FilterSchema, @@ -7,10 +6,11 @@ import { import { RolePermission } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; import { FilterKeywords, Filters } from "@versia/kit/tables"; -import { type SQL, and, eq, inArray } from "drizzle-orm"; +import { and, eq, inArray, type SQL } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v2/filters/index.ts b/api/api/v2/filters/index.ts index 8e4e7097..782ad78c 100644 --- a/api/api/v2/filters/index.ts +++ b/api/api/v2/filters/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { FilterKeyword as FilterKeywordSchema, Filter as FilterSchema, @@ -11,6 +10,7 @@ import type { SQL } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError, jsonOrForm } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => { diff --git a/api/api/v2/instance/index.ts b/api/api/v2/instance/index.ts index 88536606..7b53e27c 100644 --- a/api/api/v2/instance/index.ts +++ b/api/api/v2/instance/index.ts @@ -1,10 +1,10 @@ -import { apiRoute } from "@/api"; import { Instance as InstanceSchema } from "@versia/client/schemas"; import { User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; import { and, eq, isNull } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute } from "@/api"; import type { ProxiableUrl } from "~/classes/media/url"; import { config } from "~/config.ts"; import pkg from "~/package.json"; diff --git a/api/api/v2/media/index.ts b/api/api/v2/media/index.ts index b8a7ef3e..0d4d143b 100644 --- a/api/api/v2/media/index.ts +++ b/api/api/v2/media/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, auth, handleZodError } from "@/api"; import { Attachment as AttachmentSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; import { Media } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/api/v2/search/index.ts b/api/api/v2/search/index.ts index 1bc0c01c..28e9a3d7 100644 --- a/api/api/v2/search/index.ts +++ b/api/api/v2/search/index.ts @@ -1,10 +1,3 @@ -import { - apiRoute, - auth, - handleZodError, - parseUserAddress, - userAddressValidator, -} from "@/api"; import { Account as AccountSchema, Id, @@ -12,12 +5,19 @@ import { zBoolean, } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; -import { Note, User, db } from "@versia/kit/db"; +import { db, Note, User } from "@versia/kit/db"; import { Instances, Notes, Users } from "@versia/kit/tables"; import { and, eq, inArray, isNull, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { + apiRoute, + auth, + handleZodError, + parseUserAddress, + userAddressValidator, +} from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { searchManager } from "~/classes/search/search-manager"; import { config } from "~/config.ts"; diff --git a/api/inbox/index.ts b/api/inbox/index.ts index e7f8ad56..270bcc2c 100644 --- a/api/inbox/index.ts +++ b/api/inbox/index.ts @@ -1,7 +1,7 @@ -import { apiRoute, handleZodError } from "@/api"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { InboxJobType, inboxQueue } from "~/classes/queues/inbox"; export default apiRoute((app) => diff --git a/api/likes/[uuid]/index.ts b/api/likes/[uuid]/index.ts index 82871d25..4ecea34e 100644 --- a/api/likes/[uuid]/index.ts +++ b/api/likes/[uuid]/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { Like, User } from "@versia/kit/db"; import { Likes } from "@versia/kit/tables"; @@ -6,6 +5,7 @@ import { and, eq, sql } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import { LikeSchema } from "~/packages/sdk/schemas"; diff --git a/api/media/[hash]/[name]/index.ts b/api/media/[hash]/[name]/index.ts index e39fa1ee..a5e69a9a 100644 --- a/api/media/[hash]/[name]/index.ts +++ b/api/media/[hash]/[name]/index.ts @@ -1,8 +1,8 @@ -import { apiRoute, handleZodError } from "@/api"; import { file as bunFile } from "bun"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; export default apiRoute((app) => diff --git a/api/media/proxy/[id].ts b/api/media/proxy/[id].ts index aa59c7fd..41b2c489 100644 --- a/api/media/proxy/[id].ts +++ b/api/media/proxy/[id].ts @@ -1,9 +1,9 @@ -import { apiRoute, handleZodError } from "@/api"; -import { describeRoute } from "hono-openapi"; -import { resolver, validator } from "hono-openapi/zod"; import { proxy } from "hono/proxy"; import type { ContentfulStatusCode, StatusCode } from "hono/utils/http-status"; +import { describeRoute } from "hono-openapi"; +import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/api/messaging/index.ts b/api/messaging/index.ts index 296e491e..677576c0 100644 --- a/api/messaging/index.ts +++ b/api/messaging/index.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { getLogger } from "@logtape/logtape"; import chalk from "chalk"; import { describeRoute } from "hono-openapi"; +import { apiRoute } from "@/api"; export default apiRoute((app) => app.post( diff --git a/api/notes/[uuid]/index.ts b/api/notes/[uuid]/index.ts index 2057abda..6c6a3781 100644 --- a/api/notes/[uuid]/index.ts +++ b/api/notes/[uuid]/index.ts @@ -1,4 +1,3 @@ -import { apiRoute, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; import { Note } from "@versia/kit/db"; import { Notes } from "@versia/kit/tables"; @@ -6,6 +5,7 @@ import { and, eq, inArray } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import { NoteSchema } from "~/packages/sdk/schemas"; diff --git a/api/notes/[uuid]/quotes.ts b/api/notes/[uuid]/quotes.ts index b9de0f7c..2293f737 100644 --- a/api/notes/[uuid]/quotes.ts +++ b/api/notes/[uuid]/quotes.ts @@ -1,11 +1,11 @@ -import { apiRoute, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; -import { Note, db } from "@versia/kit/db"; +import { db, Note } from "@versia/kit/db"; import { Notes } from "@versia/kit/tables"; import { and, eq, inArray } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities"; diff --git a/api/notes/[uuid]/replies.ts b/api/notes/[uuid]/replies.ts index 2bdd377e..ffddf263 100644 --- a/api/notes/[uuid]/replies.ts +++ b/api/notes/[uuid]/replies.ts @@ -1,11 +1,11 @@ -import { apiRoute, handleZodError } from "@/api"; import { Status as StatusSchema } from "@versia/client/schemas"; -import { Note, db } from "@versia/kit/db"; +import { db, Note } from "@versia/kit/db"; import { Notes } from "@versia/kit/tables"; import { and, eq, inArray } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities"; diff --git a/api/users/[uuid]/inbox/index.ts b/api/users/[uuid]/inbox/index.ts index 4becb342..fe15ea6d 100644 --- a/api/users/[uuid]/inbox/index.ts +++ b/api/users/[uuid]/inbox/index.ts @@ -1,7 +1,7 @@ -import { apiRoute, handleZodError } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { InboxJobType, inboxQueue } from "~/classes/queues/inbox"; import type { JSONObject } from "~/packages/sdk/types"; diff --git a/api/users/[uuid]/index.ts b/api/users/[uuid]/index.ts index c4c2ad22..dc1aea76 100644 --- a/api/users/[uuid]/index.ts +++ b/api/users/[uuid]/index.ts @@ -1,8 +1,8 @@ -import { apiRoute, handleZodError } from "@/api"; import { User } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { UserSchema } from "~/packages/sdk/schemas"; diff --git a/api/users/[uuid]/outbox/index.ts b/api/users/[uuid]/outbox/index.ts index 1eb452dd..67a610e0 100644 --- a/api/users/[uuid]/outbox/index.ts +++ b/api/users/[uuid]/outbox/index.ts @@ -1,10 +1,10 @@ -import { apiRoute, handleZodError } from "@/api"; -import { Note, User, db } from "@versia/kit/db"; +import { db, Note, User } from "@versia/kit/db"; import { Notes } from "@versia/kit/tables"; import { and, eq, inArray } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities"; diff --git a/api/well-known/host-meta/index.ts b/api/well-known/host-meta/index.ts index 1e454436..6531e3d2 100644 --- a/api/well-known/host-meta/index.ts +++ b/api/well-known/host-meta/index.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; export default apiRoute((app) => diff --git a/api/well-known/nodeinfo/2.0/index.ts b/api/well-known/nodeinfo/2.0/index.ts index b64a03f5..21fe0e46 100644 --- a/api/well-known/nodeinfo/2.0/index.ts +++ b/api/well-known/nodeinfo/2.0/index.ts @@ -1,8 +1,8 @@ -import { apiRoute } from "@/api"; import { Note, User } from "@versia/kit/db"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; import manifest from "~/package.json"; diff --git a/api/well-known/nodeinfo/index.ts b/api/well-known/nodeinfo/index.ts index a9b329bf..2ef92880 100644 --- a/api/well-known/nodeinfo/index.ts +++ b/api/well-known/nodeinfo/index.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; export default apiRoute((app) => diff --git a/api/well-known/openid-configuration/index.ts b/api/well-known/openid-configuration/index.ts index cdd78677..225063fe 100644 --- a/api/well-known/openid-configuration/index.ts +++ b/api/well-known/openid-configuration/index.ts @@ -1,7 +1,7 @@ -import { apiRoute } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { z } from "zod"; +import { apiRoute } from "@/api"; import { config } from "~/config.ts"; export default apiRoute((app) => diff --git a/api/well-known/versia.ts b/api/well-known/versia.ts index a36cd128..aa04978a 100644 --- a/api/well-known/versia.ts +++ b/api/well-known/versia.ts @@ -1,10 +1,10 @@ -import { apiRoute } from "@/api"; -import { urlToContentFormat } from "@/content_types"; import { User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; import { asc } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; +import { apiRoute } from "@/api"; +import { urlToContentFormat } from "@/content_types"; import { config } from "~/config.ts"; import pkg from "~/package.json"; import { InstanceMetadataSchema } from "~/packages/sdk/schemas"; diff --git a/api/well-known/webfinger/index.ts b/api/well-known/webfinger/index.ts index 158164b5..03e712d7 100644 --- a/api/well-known/webfinger/index.ts +++ b/api/well-known/webfinger/index.ts @@ -1,10 +1,3 @@ -import { - apiRoute, - handleZodError, - idValidator, - parseUserAddress, - webfingerMention, -} from "@/api"; import { getLogger } from "@logtape/logtape"; import { User } from "@versia/kit/db"; import { Users } from "@versia/kit/tables"; @@ -13,6 +6,13 @@ import { and, eq, isNull } from "drizzle-orm"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { + apiRoute, + handleZodError, + idValidator, + parseUserAddress, + webfingerMention, +} from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; import { WebFingerSchema } from "~/packages/sdk/schemas"; diff --git a/app.ts b/app.ts index 7830a02d..02951561 100644 --- a/app.ts +++ b/app.ts @@ -1,19 +1,19 @@ import { join } from "node:path"; -import { applyToHono } from "@/bull-board.ts"; -import { configureLoggers } from "@/loggers"; -import { sentry } from "@/sentry"; /* import { prometheus } from "@hono/prometheus"; */ import { getLogger } from "@logtape/logtape"; import { apiReference } from "@scalar/hono-api-reference"; import chalk from "chalk"; import { Hono } from "hono"; -import { openAPISpecs } from "hono-openapi"; import { serveStatic } from "hono/bun"; import { cors } from "hono/cors"; import { createMiddleware } from "hono/factory"; import { prettyJSON } from "hono/pretty-json"; import { secureHeaders } from "hono/secure-headers"; +import { openAPISpecs } from "hono-openapi"; import { Youch } from "youch"; +import { applyToHono } from "@/bull-board.ts"; +import { configureLoggers } from "@/loggers"; +import { sentry } from "@/sentry"; import { config } from "~/config.ts"; import pkg from "~/package.json" with { type: "application/json" }; import { ApiError } from "./classes/errors/api-error.ts"; diff --git a/benchmarks/timeline.ts b/benchmarks/timeline.ts index 1e8fbac0..45dcc8c4 100644 --- a/benchmarks/timeline.ts +++ b/benchmarks/timeline.ts @@ -1,7 +1,7 @@ -import { configureLoggers } from "@/loggers"; import type { Status } from "@versia/client/schemas"; import { bench, run } from "mitata"; import type { z } from "zod"; +import { configureLoggers } from "@/loggers"; import { fakeRequest, getTestStatuses, getTestUsers } from "~/tests/utils"; await configureLoggers(true); diff --git a/biome.json b/biome.json index 7e112d2e..52797b74 100644 --- a/biome.json +++ b/biome.json @@ -1,31 +1,16 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "organizeImports": { - "enabled": true + "$schema": "https://biomejs.dev/schemas/2.0.0-beta.1/schema.json", + "assist": { + "actions": { + "source": { + "organizeImports": "on" + } + } }, "linter": { "enabled": true, "rules": { - "all": true, - "correctness": { - "noNodejsModules": "off" - }, - "performance": { - "useTopLevelRegex": "off" - }, - "complexity": { - "noExcessiveCognitiveComplexity": "off" - }, - "suspicious": { - "noMisplacedAssertion": "off", - "noConsole": "off" - }, "style": { - "noDefaultExport": "off", - "noParameterProperties": "off", - "noNamespaceImport": "off", - "useFilenamingConvention": "off", - "useDefaultSwitchClause": "off", "useNamingConvention": { "level": "warn", "options": { @@ -57,7 +42,32 @@ } ] } - } + }, + "useLiteralEnumMembers": "error", + "noCommaOperator": "error", + "useNodejsImportProtocol": "error", + "useAsConstAssertion": "error", + "useNumericLiterals": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useConst": "error", + "useSingleVarDeclarator": "error", + "noUnusedTemplateLiteral": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error", + "useExponentiationOperator": "error", + "useTemplate": "error", + "noParameterAssign": "error", + "noNonNullAssertion": "error", + "useDefaultParameterLast": "error", + "noArguments": "error", + "useImportType": "error", + "useExportType": "error", + "noUselessElse": "error", + "useShorthandFunctionType": "error" + }, + "correctness": { + "useImportExtensions": "error" }, "nursery": { "noDuplicateElseIf": "warn", @@ -79,12 +89,19 @@ "useExplicitType": "warn", "useGuardForIn": "warn", "useTrimStartEnd": "warn" + }, + "complexity": { + "noExcessiveCognitiveComplexity": "off" + }, + "suspicious": { + "noMisplacedAssertion": "off", + "noConsole": "off" } } }, "overrides": [ { - "include": ["packages/client/versia/client.ts"], + "includes": ["**/packages/client/versia/client.ts"], "linter": { "rules": { "style": { @@ -103,6 +120,12 @@ "globals": ["HTMLRewriter", "BufferEncoding"] }, "files": { - "ignore": ["node_modules", "dist", "cache", "build"] + "includes": [ + "**", + "!**/node_modules", + "!**/dist", + "!**/cache", + "!**/build" + ] } } diff --git a/bun.lock b/bun.lock index 386ec451..82aa8dd2 100644 --- a/bun.lock +++ b/bun.lock @@ -65,7 +65,7 @@ "zod-validation-error": "^3.4.0", }, "devDependencies": { - "@biomejs/biome": "^1.9.4", + "@biomejs/biome": "2.0.0-beta.1", "@types/bun": "^1.2.9", "@types/html-to-text": "^9.0.4", "@types/markdown-it-container": "^2.0.10", @@ -170,23 +170,23 @@ "@badgateway/oauth2-client": ["@badgateway/oauth2-client@2.4.2", "", {}, "sha512-70Fmzlmn8EfCjjssls8N6E94quBUWnLhu4inPZU2pkwpc6ZvbErkLRvtkYl81KFCvVcuVC0X10QPZVNwjXo2KA=="], - "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="], + "@biomejs/biome": ["@biomejs/biome@2.0.0-beta.1", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.0.0-beta.1", "@biomejs/cli-darwin-x64": "2.0.0-beta.1", "@biomejs/cli-linux-arm64": "2.0.0-beta.1", "@biomejs/cli-linux-arm64-musl": "2.0.0-beta.1", "@biomejs/cli-linux-x64": "2.0.0-beta.1", "@biomejs/cli-linux-x64-musl": "2.0.0-beta.1", "@biomejs/cli-win32-arm64": "2.0.0-beta.1", "@biomejs/cli-win32-x64": "2.0.0-beta.1" }, "bin": { "biome": "bin/biome" } }, "sha512-MqRoy9CbTkrS45zW+S4u8p4kQUIFx0mGUWi789W1R3b1kXYIudEqsTKgXKtTGsI0kWOlvnjuKqwTrabjaGchhQ=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@1.9.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.0.0-beta.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RaGmpNLl5NFooXaoCwvgvcuU6Am/rMZ3R48pQeCVxjrCcz1BIlKLTai5UosiedazW7JbXAvgXdSNizYG7ITlAQ=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@1.9.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.0.0-beta.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-sTzSshkne7HKZFNfiIhmAji7gjtCBXvkTujZELCZWIZC7oj1Tjw/gvAzbdFj2UyHd5/i90pND4ybFOLQZm9gpg=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.0.0-beta.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-bxce2O4nooBmp20Ey0+IFIZyy/b0RVnciIQk9euCfAi9evq7SvFtMBYo3YUZej0KIvrau5H7tJk5OqmRJk2l+g=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.0.0-beta.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-0MPUKzz9uBBxAYSJ+OlFi4+yGwiRcZeFqq39H0MxXCQ9MMpKJFH2Ek72fw8sXwG7Prn7EsW/3u1b7najyn1XGQ=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.0.0-beta.1", "", { "os": "linux", "cpu": "x64" }, "sha512-6P/AtJv4hOH8mu8ez0c4UInUpiet9NEoF25+O7OPyb4w6ZHJMp2qzvayJS7TKrTQzE5KUvSiNsACGRz34DzUkg=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.0.0-beta.1", "", { "os": "linux", "cpu": "x64" }, "sha512-dFvisnP1hFpVILNw0PZfs8piBwe8+aykO04Tb/4AJDVVzKkGgJfwSefwo4jqzO/Wk/Zruvhcp1nKbjgRXM+vDg=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@1.9.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.0.0-beta.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-0C9YSqWHf2cJGnjKDbLi49xv6H9IfqbDsFav7X557PqwY64O6IKWqcmZzi/PkDFHjQM9opU6uhKapeGKGDxziQ=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@1.9.4", "", { "os": "win32", "cpu": "x64" }, "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.0.0-beta.1", "", { "os": "win32", "cpu": "x64" }, "sha512-o8W6+DX0YRjt1kS8Y3ismq6EkjwiVDv7X0TEpfnFywoVG8HoJ7G7/m9r8LM1yE46WI3maPH2A0MoVpQ1ZNG++A=="], "@bull-board/api": ["@bull-board/api@6.9.0", "", { "dependencies": { "redis-info": "^3.0.8" }, "peerDependencies": { "@bull-board/ui": "6.9.0" } }, "sha512-l7ah5Mt8cJKzCf44mN++4TX+MkS/LwAqZp8+Uxw97rc6NXDWS/8avsVn4Rm0CcxqbKc7dUIrnjIu6eNOejLNyA=="], diff --git a/classes/database/application.ts b/classes/database/application.ts index 1d692eae..27bb0980 100644 --- a/classes/database/application.ts +++ b/classes/database/application.ts @@ -2,15 +2,15 @@ import type { Application as ApplicationSchema, CredentialApplication, } from "@versia/client/schemas"; -import { Token, db } from "@versia/kit/db"; +import { db, Token } from "@versia/kit/db"; import { Applications } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; import { BaseInterface } from "./base.ts"; diff --git a/classes/database/emoji.ts b/classes/database/emoji.ts index b7e2c857..cc1b952a 100644 --- a/classes/database/emoji.ts +++ b/classes/database/emoji.ts @@ -1,19 +1,19 @@ -import { emojiValidatorWithColons, emojiValidatorWithIdentifiers } from "@/api"; import type { CustomEmoji } from "@versia/client/schemas"; -import { type Instance, Media, db } from "@versia/kit/db"; +import { db, type Instance, Media } from "@versia/kit/db"; import { Emojis, type Instances, type Medias } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, isNull, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; +import { emojiValidatorWithColons, emojiValidatorWithIdentifiers } from "@/api"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; import type { ImageContentFormatSchema } from "~/packages/sdk/schemas/index.ts"; import { BaseInterface } from "./base.ts"; diff --git a/classes/database/instance.ts b/classes/database/instance.ts index 1cd26abe..44ff4938 100644 --- a/classes/database/instance.ts +++ b/classes/database/instance.ts @@ -4,12 +4,12 @@ import { Instances } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import chalk from "chalk"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/database/like.ts b/classes/database/like.ts index e681eb61..b4797941 100644 --- a/classes/database/like.ts +++ b/classes/database/like.ts @@ -6,13 +6,13 @@ import { type Users, } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/database/media.ts b/classes/database/media.ts index 9bce13f9..40ca5708 100644 --- a/classes/database/media.ts +++ b/classes/database/media.ts @@ -1,19 +1,19 @@ import { join } from "node:path"; -import { mimeLookup } from "@/content_types.ts"; import type { Attachment as AttachmentSchema } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; import { Medias } from "@versia/kit/tables"; -import { S3Client, SHA256, randomUUIDv7, write } from "bun"; +import { randomUUIDv7, S3Client, SHA256, write } from "bun"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import sharp from "sharp"; import type { z } from "zod"; +import { mimeLookup } from "@/content_types.ts"; import { MediaBackendType } from "~/classes/config/schema.ts"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/database/note.ts b/classes/database/note.ts index 402df3f0..ad6662b2 100644 --- a/classes/database/note.ts +++ b/classes/database/note.ts @@ -1,30 +1,30 @@ -import { idValidator } from "@/api"; -import { mergeAndDeduplicate } from "@/lib.ts"; -import { sanitizedHtmlStrip } from "@/sanitization"; import type { Status } from "@versia/client/schemas"; -import { Instance, db } from "@versia/kit/db"; +import { db, Instance } from "@versia/kit/db"; import { EmojiToNote, MediasToNotes, - NoteToMentions, Notes, + NoteToMentions, Users, } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, isNotNull, + type SQL, sql, } from "drizzle-orm"; import { htmlToText } from "html-to-text"; import { createRegExp, exactly, global } from "magic-regexp"; import type { z } from "zod"; +import { idValidator } from "@/api"; +import { mergeAndDeduplicate } from "@/lib.ts"; +import { sanitizedHtmlStrip } from "@/sanitization"; import { contentToHtml, findManyNotes } from "~/classes/functions/status"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/database/notification.ts b/classes/database/notification.ts index 82359788..403164f0 100644 --- a/classes/database/notification.ts +++ b/classes/database/notification.ts @@ -1,13 +1,13 @@ import type { Notification as NotificationSchema } from "@versia/client/schemas"; -import { Note, User, db } from "@versia/kit/db"; +import { db, Note, User } from "@versia/kit/db"; import { Notifications } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; import { diff --git a/classes/database/pushsubscription.ts b/classes/database/pushsubscription.ts index 9c804144..67460234 100644 --- a/classes/database/pushsubscription.ts +++ b/classes/database/pushsubscription.ts @@ -1,13 +1,13 @@ import type { WebPushSubscription as WebPushSubscriptionSchema } from "@versia/client/schemas"; -import { type Token, type User, db } from "@versia/kit/db"; +import { db, type Token, type User } from "@versia/kit/db"; import { PushSubscriptions, Tokens } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; import { BaseInterface } from "./base.ts"; diff --git a/classes/database/reaction.ts b/classes/database/reaction.ts index 491cc3b7..85092dd9 100644 --- a/classes/database/reaction.ts +++ b/classes/database/reaction.ts @@ -1,13 +1,13 @@ -import { Emoji, Instance, type Note, User, db } from "@versia/kit/db"; +import { db, Emoji, Instance, type Note, User } from "@versia/kit/db"; import { type Notes, Reactions, type Users } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import { config } from "~/config.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/database/relationship.ts b/classes/database/relationship.ts index ac3aec72..6715bc08 100644 --- a/classes/database/relationship.ts +++ b/classes/database/relationship.ts @@ -3,13 +3,13 @@ import { db } from "@versia/kit/db"; import { Relationships } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import { z } from "zod"; import { BaseInterface } from "./base.ts"; diff --git a/classes/database/role.ts b/classes/database/role.ts index 478156bc..8dfb3404 100644 --- a/classes/database/role.ts +++ b/classes/database/role.ts @@ -1,20 +1,21 @@ import type { Role as RoleSchema } from "@versia/client/schemas"; import type { RolePermission } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; -import { RoleToUsers, Roles } from "@versia/kit/tables"; +import { Roles, RoleToUsers } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; import { config } from "~/config.ts"; import { ProxiableUrl } from "../media/url.ts"; import { BaseInterface } from "./base.ts"; + type RoleType = InferSelectModel; export class Role extends BaseInterface { diff --git a/classes/database/timeline.ts b/classes/database/timeline.ts index d382289c..1d885378 100644 --- a/classes/database/timeline.ts +++ b/classes/database/timeline.ts @@ -1,5 +1,5 @@ import { Notes, Notifications, Users } from "@versia/kit/tables"; -import { type SQL, gt } from "drizzle-orm"; +import { gt, type SQL } from "drizzle-orm"; import { config } from "~/config.ts"; import { Note } from "./note.ts"; import { Notification } from "./notification.ts"; diff --git a/classes/database/token.ts b/classes/database/token.ts index 17197723..a2113811 100644 --- a/classes/database/token.ts +++ b/classes/database/token.ts @@ -1,13 +1,13 @@ import type { Token as TokenSchema } from "@versia/client/schemas"; -import { type Application, User, db } from "@versia/kit/db"; +import { type Application, db, User } from "@versia/kit/db"; import { Tokens } from "@versia/kit/tables"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, desc, eq, + type InferInsertModel, + type InferSelectModel, inArray, + type SQL, } from "drizzle-orm"; import type { z } from "zod"; import { BaseInterface } from "./base.ts"; diff --git a/classes/database/user.ts b/classes/database/user.ts index d57f6236..6640da50 100644 --- a/classes/database/user.ts +++ b/classes/database/user.ts @@ -1,7 +1,3 @@ -import { idValidator } from "@/api"; -import { getBestContentType } from "@/content_types"; -import { randomString } from "@/math"; -import { sentry } from "@/sentry"; import { getLogger } from "@logtape/logtape"; import type { Account, @@ -9,35 +5,39 @@ import type { Source, } from "@versia/client/schemas"; import type { RolePermission } from "@versia/client/schemas"; -import { Media, Notification, PushSubscription, db } from "@versia/kit/db"; +import { db, Media, Notification, PushSubscription } from "@versia/kit/db"; import { EmojiToUser, Likes, - NoteToMentions, Notes, + NoteToMentions, Notifications, - UserToPinnedNotes, Users, + UserToPinnedNotes, } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; import { password as bunPassword } from "bun"; import chalk from "chalk"; import { - type InferInsertModel, - type InferSelectModel, - type SQL, and, countDistinct, desc, eq, gte, + type InferInsertModel, + type InferSelectModel, inArray, isNotNull, isNull, + type SQL, sql, } from "drizzle-orm"; import { htmlToText } from "html-to-text"; import type { z } from "zod"; +import { idValidator } from "@/api"; +import { getBestContentType } from "@/content_types"; +import { randomString } from "@/math"; +import { sentry } from "@/sentry"; import { findManyUsers } from "~/classes/functions/user"; import { searchManager } from "~/classes/search/search-manager"; import { config } from "~/config.ts"; diff --git a/classes/errors/api-error.ts b/classes/errors/api-error.ts index 2fe76279..87287582 100644 --- a/classes/errors/api-error.ts +++ b/classes/errors/api-error.ts @@ -1,7 +1,7 @@ -import type { DescribeRouteOptions } from "hono-openapi"; -import { resolver } from "hono-openapi/zod"; import type { ContentfulStatusCode } from "hono/utils/http-status"; import type { JSONObject } from "hono/utils/types"; +import type { DescribeRouteOptions } from "hono-openapi"; +import { resolver } from "hono-openapi/zod"; import { z } from "zod"; /** diff --git a/classes/functions/status.ts b/classes/functions/status.ts index 68827dc5..bc2f289d 100644 --- a/classes/functions/status.ts +++ b/classes/functions/status.ts @@ -1,7 +1,5 @@ -import { mentionValidator } from "@/api"; -import { sanitizeHtml, sanitizeHtmlInline } from "@/sanitization"; import markdownItTaskLists from "@hackmd/markdown-it-task-lists"; -import { type Note, User, db } from "@versia/kit/db"; +import { db, type Note, User } from "@versia/kit/db"; import { Instances, Users } from "@versia/kit/tables"; import { FederationRequester } from "@versia/sdk/http"; import { and, eq, inArray, isNull, or, sql } from "drizzle-orm"; @@ -18,6 +16,8 @@ import { import MarkdownIt from "markdown-it"; import markdownItContainer from "markdown-it-container"; import markdownItTocDoneRight from "markdown-it-toc-done-right"; +import { mentionValidator } from "@/api"; +import { sanitizeHtml, sanitizeHtmlInline } from "@/sanitization"; import { config } from "~/config.ts"; import type * as VersiaEntities from "~/packages/sdk/entities/index.ts"; import { diff --git a/classes/functions/user.ts b/classes/functions/user.ts index 571eff7f..48f43fe0 100644 --- a/classes/functions/user.ts +++ b/classes/functions/user.ts @@ -1,12 +1,12 @@ import { type Application, + db, type Emoji, type Instance, type Media, type Role, type Token, type User, - db, } from "@versia/kit/db"; import type { Users } from "@versia/kit/tables"; import { type InferSelectModel, type SQL, sql } from "drizzle-orm"; diff --git a/classes/inbox/processor.ts b/classes/inbox/processor.ts index 3baaf383..3cbdc899 100644 --- a/classes/inbox/processor.ts +++ b/classes/inbox/processor.ts @@ -1,5 +1,4 @@ -import { sentry } from "@/sentry"; -import { type Logger, getLogger } from "@logtape/logtape"; +import { getLogger, type Logger } from "@logtape/logtape"; import { type Instance, Like, Note, Relationship, User } from "@versia/kit/db"; import { Likes, Notes } from "@versia/kit/tables"; import type { SocketAddress } from "bun"; @@ -8,6 +7,7 @@ import chalk from "chalk"; import { eq } from "drizzle-orm"; import { matches } from "ip-matching"; import { isValidationError } from "zod-validation-error"; +import { sentry } from "@/sentry"; import { config } from "~/config.ts"; import { verify } from "~/packages/sdk/crypto.ts"; import * as VersiaEntities from "~/packages/sdk/entities/index.ts"; diff --git a/classes/plugin/loader.ts b/classes/plugin/loader.ts index bbfd6ccd..49aa37c0 100644 --- a/classes/plugin/loader.ts +++ b/classes/plugin/loader.ts @@ -1,11 +1,11 @@ import { readdir } from "node:fs/promises"; -import { type Logger, getLogger } from "@logtape/logtape"; +import { getLogger, type Logger } from "@logtape/logtape"; import { file, sleep } from "bun"; import chalk from "chalk"; import { parseJSON5, parseJSONC } from "confbox"; import type { Hono } from "hono"; import type { ZodTypeAny } from "zod"; -import { type ValidationError, fromZodError } from "zod-validation-error"; +import { fromZodError, type ValidationError } from "zod-validation-error"; import { config } from "~/config.ts"; import { Plugin } from "~/packages/plugin-kit/plugin"; import { type Manifest, manifestSchema } from "~/packages/plugin-kit/schema"; diff --git a/classes/queues/push.ts b/classes/queues/push.ts index 4c2a75ce..e9e5d9f4 100644 --- a/classes/queues/push.ts +++ b/classes/queues/push.ts @@ -1,8 +1,8 @@ -import { htmlToText } from "@/content_types.ts"; import { Note, PushSubscription, Token, User } from "@versia/kit/db"; import { Queue } from "bullmq"; import { Worker } from "bullmq"; import { sendNotification } from "web-push"; +import { htmlToText } from "@/content_types.ts"; import { config } from "~/config.ts"; import { connection } from "~/utils/redis.ts"; diff --git a/classes/search/search-manager.ts b/classes/search/search-manager.ts index db97f006..21762bae 100644 --- a/classes/search/search-manager.ts +++ b/classes/search/search-manager.ts @@ -4,7 +4,7 @@ */ import { getLogger } from "@logtape/logtape"; -import { Note, User, db } from "@versia/kit/db"; +import { db, Note, User } from "@versia/kit/db"; import type { SQL, ValueOrArray } from "drizzle-orm"; import { Ingest as SonicChannelIngest, diff --git a/cli/index/rebuild.ts b/cli/index/rebuild.ts index 55df8665..6836eaec 100644 --- a/cli/index/rebuild.ts +++ b/cli/index/rebuild.ts @@ -1,6 +1,5 @@ // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; import ora from "ora"; import { SonicIndexType, diff --git a/cli/instance/refetch.ts b/cli/instance/refetch.ts index 60fecc06..52bf5a9e 100644 --- a/cli/instance/refetch.ts +++ b/cli/instance/refetch.ts @@ -1,7 +1,6 @@ import chalk from "chalk"; // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; import { eq } from "drizzle-orm"; import { Instance } from "~/classes/database/instance.ts"; import { FetchJobType, fetchQueue } from "~/classes/queues/fetch.ts"; diff --git a/cli/user/create.ts b/cli/user/create.ts index 6a5fd696..cd8cfe94 100644 --- a/cli/user/create.ts +++ b/cli/user/create.ts @@ -1,7 +1,6 @@ import chalk from "chalk"; // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; import { and, eq, isNull } from "drizzle-orm"; import { renderUnicodeCompact } from "uqr"; import { User } from "~/classes/database/user"; diff --git a/cli/user/delete.ts b/cli/user/delete.ts index 62e53b9a..9c8d460b 100644 --- a/cli/user/delete.ts +++ b/cli/user/delete.ts @@ -1,8 +1,7 @@ import confirm from "@inquirer/confirm"; import chalk from "chalk"; // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; import { retrieveUser } from "../utils.ts"; export const deleteUserCommand = defineCommand( diff --git a/cli/user/refetch.ts b/cli/user/refetch.ts index 1eef6b61..482f8a43 100644 --- a/cli/user/refetch.ts +++ b/cli/user/refetch.ts @@ -1,7 +1,6 @@ import chalk from "chalk"; // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; import ora from "ora"; import { User } from "~/classes/database/user.ts"; import { retrieveUser } from "../utils.ts"; diff --git a/cli/user/token.ts b/cli/user/token.ts index 20b35155..97f00b55 100644 --- a/cli/user/token.ts +++ b/cli/user/token.ts @@ -1,9 +1,8 @@ -import { randomString } from "@/math.ts"; import { randomUUIDv7 } from "bun"; import chalk from "chalk"; // @ts-expect-error - Root import is required or the Clec type definitions won't work -// biome-ignore lint/correctness/noUnusedImports: Root import is required or the Clec type definitions won't work -import { type Root, defineCommand } from "clerc"; +import { defineCommand, type Root } from "clerc"; +import { randomString } from "@/math.ts"; import { Token } from "~/classes/database/token.ts"; import { retrieveUser } from "../utils.ts"; diff --git a/cli/utils.ts b/cli/utils.ts index a2c16f53..1c7c3688 100644 --- a/cli/utils.ts +++ b/cli/utils.ts @@ -1,5 +1,5 @@ -import { parseUserAddress } from "@/api"; import { and, eq, isNull } from "drizzle-orm"; +import { parseUserAddress } from "@/api"; import { Instance } from "~/classes/database/instance"; import { User } from "~/classes/database/user"; import { Users } from "~/drizzle/schema"; diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 297bd0cd..059ae847 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,7 +1,7 @@ import type { Theme } from "vitepress"; import DefaultTheme from "vitepress/theme"; // https://vitepress.dev/guide/custom-theme -import { type VNode, h } from "vue"; +import { h, type VNode } from "vue"; import "./style.css"; export default { diff --git a/drizzle/db.ts b/drizzle/db.ts index 35671eb0..f1d67b9c 100644 --- a/drizzle/db.ts +++ b/drizzle/db.ts @@ -1,6 +1,6 @@ import { getLogger } from "@logtape/logtape"; import chalk from "chalk"; -import { type NodePgDatabase, drizzle } from "drizzle-orm/node-postgres"; +import { drizzle, type NodePgDatabase } from "drizzle-orm/node-postgres"; import { withReplicas } from "drizzle-orm/pg-core"; import { migrate } from "drizzle-orm/postgres-js/migrator"; import { Pool } from "pg"; diff --git a/entrypoints/api/index.ts b/entrypoints/api/index.ts index 766fe9fb..9c764481 100644 --- a/entrypoints/api/index.ts +++ b/entrypoints/api/index.ts @@ -1,7 +1,7 @@ import cluster from "node:cluster"; +import { Youch } from "youch"; import { sentry } from "@/sentry"; import { createServer } from "@/server"; -import { Youch } from "youch"; import { appFactory } from "~/app"; import { config } from "~/config.ts"; diff --git a/entrypoints/api/setup.ts b/entrypoints/api/setup.ts index ae0219f0..f2daf095 100644 --- a/entrypoints/api/setup.ts +++ b/entrypoints/api/setup.ts @@ -1,7 +1,7 @@ -import { configureLoggers } from "@/loggers"; -import { connection } from "@/redis.ts"; import { getLogger } from "@logtape/logtape"; import { Note } from "@versia/kit/db"; +import { configureLoggers } from "@/loggers"; +import { connection } from "@/redis.ts"; import { config } from "~/config.ts"; import { setupDatabase } from "~/drizzle/db"; import { searchManager } from "../../classes/search/search-manager.ts"; diff --git a/entrypoints/worker/index.ts b/entrypoints/worker/index.ts index 9f12c701..14f77197 100644 --- a/entrypoints/worker/index.ts +++ b/entrypoints/worker/index.ts @@ -1,6 +1,6 @@ -import { sentry } from "@/sentry"; import { getLogger } from "@logtape/logtape"; import chalk from "chalk"; +import { sentry } from "@/sentry"; import { getDeliveryWorker } from "~/classes/queues/delivery"; import { getFetchWorker } from "~/classes/queues/fetch"; import { getInboxWorker } from "~/classes/queues/inbox"; diff --git a/entrypoints/worker/setup.ts b/entrypoints/worker/setup.ts index 42b200ff..f51c2e70 100644 --- a/entrypoints/worker/setup.ts +++ b/entrypoints/worker/setup.ts @@ -1,8 +1,8 @@ -import { configureLoggers } from "@/loggers"; -import { connection } from "@/redis.ts"; import { getLogger } from "@logtape/logtape"; import { Note } from "@versia/kit/db"; import chalk from "chalk"; +import { configureLoggers } from "@/loggers"; +import { connection } from "@/redis.ts"; import { config } from "~/config.ts"; import { setupDatabase } from "~/drizzle/db"; import { searchManager } from "../../classes/search/search-manager.ts"; diff --git a/middlewares/ip-bans.ts b/middlewares/ip-bans.ts index 2aafa233..6293d831 100644 --- a/middlewares/ip-bans.ts +++ b/middlewares/ip-bans.ts @@ -1,8 +1,8 @@ -import { sentry } from "@/sentry"; import { getLogger } from "@logtape/logtape"; import type { SocketAddress } from "bun"; import { createMiddleware } from "hono/factory"; import { matches } from "ip-matching"; +import { sentry } from "@/sentry"; import { ApiError } from "~/classes/errors/api-error"; import { config } from "~/config.ts"; diff --git a/package.json b/package.json index b3fb55de..0d62b3cd 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,14 @@ }, "icon": "https://cdn.versia.pub/branding/icon.svg", "license": "AGPL-3.0-or-later", - "keywords": ["federated", "activitypub", "bun"], - "workspaces": ["packages/*"], + "keywords": [ + "federated", + "activitypub", + "bun" + ], + "workspaces": [ + "packages/*" + ], "maintainers": [ { "email": "contact@cpluspatch.com", @@ -53,7 +59,7 @@ "sharp" ], "devDependencies": { - "@biomejs/biome": "^1.9.4", + "@biomejs/biome": "2.0.0-beta.1", "@types/bun": "^1.2.9", "@types/html-to-text": "^9.0.4", "@types/markdown-it-container": "^2.0.10", diff --git a/packages/client/index.ts b/packages/client/index.ts index 3547eef2..47757782 100644 --- a/packages/client/index.ts +++ b/packages/client/index.ts @@ -1,3 +1,2 @@ -// biome-ignore lint/performance/noBarrelFile: export { type Output, ResponseError } from "./versia/base.ts"; export { Client } from "./versia/client.ts"; diff --git a/packages/client/package.json b/packages/client/package.json index 966b02d8..b1104dfe 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -32,7 +32,9 @@ } ], "description": "Client for Mastodon and Versia API", - "categories": ["Other"], + "categories": [ + "Other" + ], "type": "module", "engines": { "bun": ">=1.2.5" @@ -52,7 +54,13 @@ "url": "https://opencollective.com/lysand" }, "homepage": "https://versia.pub", - "keywords": ["versia", "mastodon", "api", "typescript", "rest"], + "keywords": [ + "versia", + "mastodon", + "api", + "typescript", + "rest" + ], "packageManager": "bun@1.2.5", "dependencies": { "@badgateway/oauth2-client": "^2.4.2" diff --git a/packages/client/schemas.ts b/packages/client/schemas.ts index dc7b3729..9472ef02 100644 --- a/packages/client/schemas.ts +++ b/packages/client/schemas.ts @@ -1,10 +1,10 @@ -// biome-ignore lint/performance/noBarrelFile: +export { Account, Field, Source } from "./schemas/account.ts"; export { AccountWarning } from "./schemas/account-warning.ts"; -export { Account, Source, Field } from "./schemas/account.ts"; export { Appeal } from "./schemas/appeal.ts"; export { Application, CredentialApplication } from "./schemas/application.ts"; export { Attachment } from "./schemas/attachment.ts"; export { PreviewCard, PreviewCardAuthor } from "./schemas/card.ts"; +export { Id, iso631, zBoolean } from "./schemas/common.ts"; export { Context } from "./schemas/context.ts"; export { CustomEmoji } from "./schemas/emoji.ts"; export { ExtendedDescription } from "./schemas/extended-description.ts"; @@ -15,10 +15,11 @@ export { FilterResult, FilterStatus, } from "./schemas/filters.ts"; -export { InstanceV1 } from "./schemas/instance-v1.ts"; export { Instance } from "./schemas/instance.ts"; +export { InstanceV1 } from "./schemas/instance-v1.ts"; export { Marker } from "./schemas/marker.ts"; export { Notification } from "./schemas/notification.ts"; +export { RolePermission } from "./schemas/permissions.ts"; export { Poll, PollOption } from "./schemas/poll.ts"; export { Preferences } from "./schemas/preferences.ts"; export { PrivacyPolicy } from "./schemas/privacy-policy.ts"; @@ -30,15 +31,13 @@ export { Relationship } from "./schemas/relationship.ts"; export { Report } from "./schemas/report.ts"; export { Rule } from "./schemas/rule.ts"; export { Search } from "./schemas/search.ts"; -export { Status, Mention, StatusSource } from "./schemas/status.ts"; +export { Mention, Status, StatusSource } from "./schemas/status.ts"; export { Tag } from "./schemas/tag.ts"; export { Token } from "./schemas/token.ts"; export { TermsOfService } from "./schemas/tos.ts"; export { - Role, - NoteReaction, - SSOConfig, Challenge, + NoteReaction, + Role, + SSOConfig, } from "./schemas/versia.ts"; -export { RolePermission } from "./schemas/permissions.ts"; -export { Id, iso631, zBoolean } from "./schemas/common.ts"; diff --git a/packages/client/schemas/account.ts b/packages/client/schemas/account.ts index 890dc6e9..5d746df3 100644 --- a/packages/client/schemas/account.ts +++ b/packages/client/schemas/account.ts @@ -1,5 +1,5 @@ -import { userAddressValidator } from "@/api.ts"; import { z } from "zod"; +import { userAddressValidator } from "@/api.ts"; import { config } from "~/config.ts"; import { iso631, zBoolean } from "./common.ts"; import { CustomEmoji } from "./emoji.ts"; diff --git a/packages/client/schemas/emoji.ts b/packages/client/schemas/emoji.ts index af93f73e..333e4a05 100644 --- a/packages/client/schemas/emoji.ts +++ b/packages/client/schemas/emoji.ts @@ -1,5 +1,5 @@ -import { emojiValidator } from "@/api.ts"; import { z } from "zod"; +import { emojiValidator } from "@/api.ts"; import { config } from "~/config.ts"; import { Id, zBoolean } from "./common.ts"; diff --git a/packages/client/schemas/notification.ts b/packages/client/schemas/notification.ts index 592e16c5..57541b46 100644 --- a/packages/client/schemas/notification.ts +++ b/packages/client/schemas/notification.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { AccountWarning } from "./account-warning.ts"; import { Account } from "./account.ts"; +import { AccountWarning } from "./account-warning.ts"; import { Id } from "./common.ts"; import { Report } from "./report.ts"; import { Status } from "./status.ts"; diff --git a/packages/client/versia/client.ts b/packages/client/versia/client.ts index d5835d11..a1881c84 100644 --- a/packages/client/versia/client.ts +++ b/packages/client/versia/client.ts @@ -1,4 +1,3 @@ -// biome-ignore lint/correctness/noUndeclaredDependencies: biome is looking at the wrong package.json import { OAuth2Client } from "@badgateway/oauth2-client"; import type { z } from "zod"; import type { Account } from "../schemas/account.ts"; diff --git a/packages/plugin-kit/exports/db.ts b/packages/plugin-kit/exports/db.ts index 5f3ad757..7754d60a 100644 --- a/packages/plugin-kit/exports/db.ts +++ b/packages/plugin-kit/exports/db.ts @@ -1,16 +1,15 @@ -// biome-ignore lint/performance/noBarrelFile: -export { User } from "~/classes/database/user.ts"; -export { Role } from "~/classes/database/role.ts"; -export { Media } from "~/classes/database/media"; +export { Application } from "~/classes/database/application.ts"; export { Emoji } from "~/classes/database/emoji.ts"; export { Instance } from "~/classes/database/instance.ts"; -export { Note } from "~/classes/database/note.ts"; -export { Timeline } from "~/classes/database/timeline.ts"; -export { Application } from "~/classes/database/application.ts"; -export { db } from "~/drizzle/db.ts"; -export { Relationship } from "~/classes/database/relationship.ts"; export { Like } from "~/classes/database/like.ts"; -export { Token } from "~/classes/database/token.ts"; +export { Media } from "~/classes/database/media"; +export { Note } from "~/classes/database/note.ts"; export { Notification } from "~/classes/database/notification.ts"; -export { Reaction } from "~/classes/database/reaction.ts"; export { PushSubscription } from "~/classes/database/pushsubscription.ts"; +export { Reaction } from "~/classes/database/reaction.ts"; +export { Relationship } from "~/classes/database/relationship.ts"; +export { Role } from "~/classes/database/role.ts"; +export { Timeline } from "~/classes/database/timeline.ts"; +export { Token } from "~/classes/database/token.ts"; +export { User } from "~/classes/database/user.ts"; +export { db } from "~/drizzle/db.ts"; diff --git a/packages/plugin-kit/exports/drizzle.ts b/packages/plugin-kit/exports/drizzle.ts index 682cee64..5ac1e878 100644 --- a/packages/plugin-kit/exports/drizzle.ts +++ b/packages/plugin-kit/exports/drizzle.ts @@ -1,3 +1 @@ -// biome-ignore lint/performance/noReExportAll: -// biome-ignore lint/performance/noBarrelFile: export * from "drizzle-orm"; diff --git a/packages/plugin-kit/exports/tables.ts b/packages/plugin-kit/exports/tables.ts index 1fe0b977..8d1685fe 100644 --- a/packages/plugin-kit/exports/tables.ts +++ b/packages/plugin-kit/exports/tables.ts @@ -1,3 +1 @@ -// biome-ignore lint/performance/noReExportAll: -// biome-ignore lint/performance/noBarrelFile: export * from "~/drizzle/schema"; diff --git a/packages/plugin-kit/index.ts b/packages/plugin-kit/index.ts index a545aae5..b992d990 100644 --- a/packages/plugin-kit/index.ts +++ b/packages/plugin-kit/index.ts @@ -1,4 +1,3 @@ -// biome-ignore lint/performance/noBarrelFile: export { Hooks } from "./hooks.ts"; export { Plugin } from "./plugin.ts"; export type { Manifest } from "./schema.ts"; diff --git a/packages/plugin-kit/package.json b/packages/plugin-kit/package.json index a015b2ea..1d7e0f5b 100644 --- a/packages/plugin-kit/package.json +++ b/packages/plugin-kit/package.json @@ -14,7 +14,11 @@ }, "icon": "https://github.com/versia-pub/server", "license": "AGPL-3.0-or-later", - "keywords": ["federated", "activitypub", "bun"], + "keywords": [ + "federated", + "activitypub", + "bun" + ], "maintainers": [ { "email": "contact@cpluspatch.com", diff --git a/packages/plugin-kit/plugin.ts b/packages/plugin-kit/plugin.ts index 7b4cf035..bd408022 100644 --- a/packages/plugin-kit/plugin.ts +++ b/packages/plugin-kit/plugin.ts @@ -1,7 +1,7 @@ import type { Hono, MiddlewareHandler } from "hono"; import { createMiddleware } from "hono/factory"; import type { z } from "zod"; -import { type ZodError, fromZodError } from "zod-validation-error"; +import { fromZodError, type ZodError } from "zod-validation-error"; import type { HonoEnv } from "~/types/api"; import type { ServerHooks } from "./hooks.ts"; diff --git a/packages/sdk/entities/index.ts b/packages/sdk/entities/index.ts index a994334a..2b80228f 100644 --- a/packages/sdk/entities/index.ts +++ b/packages/sdk/entities/index.ts @@ -1,21 +1,20 @@ -// biome-ignore lint/performance/noBarrelFile: -export { User } from "./user.ts"; -export { Note } from "./note.ts"; -export { Entity } from "./entity.ts"; -export { Delete } from "./delete.ts"; -export { InstanceMetadata } from "./instancemetadata.ts"; +export { Collection, URICollection } from "./collection.ts"; export { - ImageContentFormat, AudioContentFormat, + ContentFormat, + ImageContentFormat, NonTextContentFormat, TextContentFormat, - ContentFormat, VideoContentFormat, } from "./contentformat.ts"; -export { Follow, FollowAccept, FollowReject, Unfollow } from "./follow.ts"; -export { Collection, URICollection } from "./collection.ts"; -export { Like, Dislike } from "./extensions/likes.ts"; +export { Delete } from "./delete.ts"; +export { Entity } from "./entity.ts"; +export { Dislike, Like } from "./extensions/likes.ts"; export { Vote } from "./extensions/polls.ts"; export { Reaction } from "./extensions/reactions.ts"; export { Report } from "./extensions/reports.ts"; export { Share } from "./extensions/share.ts"; +export { Follow, FollowAccept, FollowReject, Unfollow } from "./follow.ts"; +export { InstanceMetadata } from "./instancemetadata.ts"; +export { Note } from "./note.ts"; +export { User } from "./user.ts"; diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 38ecfb2d..2220b9de 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -32,7 +32,9 @@ } ], "description": "Versia Federation SDK", - "categories": ["Other"], + "categories": [ + "Other" + ], "type": "module", "engines": { "bun": ">=1.2.5" @@ -64,6 +66,10 @@ "url": "https://opencollective.com/lysand" }, "homepage": "https://versia.pub", - "keywords": ["versia", "typescript", "sdk"], + "keywords": [ + "versia", + "typescript", + "sdk" + ], "packageManager": "bun@1.2.5" } diff --git a/packages/sdk/schemas/collection.ts b/packages/sdk/schemas/collection.ts index fa46c2ea..92accefb 100644 --- a/packages/sdk/schemas/collection.ts +++ b/packages/sdk/schemas/collection.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { url, u64 } from "./common.ts"; +import { u64, url } from "./common.ts"; export const CollectionSchema = z.strictObject({ author: url.nullable(), diff --git a/packages/sdk/schemas/extensions/polls.ts b/packages/sdk/schemas/extensions/polls.ts index ba553a36..09741b8c 100644 --- a/packages/sdk/schemas/extensions/polls.ts +++ b/packages/sdk/schemas/extensions/polls.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { isISOString } from "../../regex.ts"; -import { url, u64 } from "../common.ts"; +import { u64, url } from "../common.ts"; import { TextContentFormatSchema } from "../contentformat.ts"; import { EntitySchema } from "../entity.ts"; diff --git a/packages/sdk/schemas/index.ts b/packages/sdk/schemas/index.ts index a7faa8dc..aa061705 100644 --- a/packages/sdk/schemas/index.ts +++ b/packages/sdk/schemas/index.ts @@ -1,27 +1,26 @@ -// biome-ignore lint/performance/noBarrelFile: -export { UserSchema } from "./user.ts"; -export { NoteSchema } from "./note.ts"; -export { EntitySchema } from "./entity.ts"; -export { DeleteSchema } from "./delete.ts"; -export { InstanceMetadataSchema } from "./instance.ts"; +export { CollectionSchema, URICollectionSchema } from "./collection.ts"; export { + AudioContentFormatSchema, ContentFormatSchema, ImageContentFormatSchema, - AudioContentFormatSchema, NonTextContentFormatSchema, TextContentFormatSchema, VideoContentFormatSchema, } from "./contentformat.ts"; -export { - FollowSchema, - FollowAcceptSchema, - FollowRejectSchema, - UnfollowSchema, -} from "./follow.ts"; -export { CollectionSchema, URICollectionSchema } from "./collection.ts"; -export { LikeSchema, DislikeSchema } from "./extensions/likes.ts"; +export { DeleteSchema } from "./delete.ts"; +export { EntitySchema } from "./entity.ts"; +export { DislikeSchema, LikeSchema } from "./extensions/likes.ts"; export { VoteSchema } from "./extensions/polls.ts"; export { ReactionSchema } from "./extensions/reactions.ts"; export { ReportSchema } from "./extensions/reports.ts"; export { ShareSchema } from "./extensions/share.ts"; +export { + FollowAcceptSchema, + FollowRejectSchema, + FollowSchema, + UnfollowSchema, +} from "./follow.ts"; +export { InstanceMetadataSchema } from "./instance.ts"; +export { NoteSchema } from "./note.ts"; +export { UserSchema } from "./user.ts"; export { WebFingerSchema } from "./webfinger.ts"; diff --git a/plugins/openid/index.ts b/plugins/openid/index.ts index 011216cf..6853cf46 100644 --- a/plugins/openid/index.ts +++ b/plugins/openid/index.ts @@ -5,7 +5,7 @@ import { getCookie } from "hono/cookie"; import { jwtVerify } from "jose"; import { JOSEError, JWTExpired } from "jose/errors"; import { z } from "zod"; -import { url, keyPair, sensitiveString } from "~/classes/config/schema.ts"; +import { keyPair, sensitiveString, url } from "~/classes/config/schema.ts"; import { ApiError } from "~/classes/errors/api-error.ts"; import authorizeRoute from "./routes/authorize.ts"; import jwksRoute from "./routes/jwks.ts"; diff --git a/plugins/openid/routes/authorize.test.ts b/plugins/openid/routes/authorize.test.ts index 9bafe6b2..22a62ccd 100644 --- a/plugins/openid/routes/authorize.test.ts +++ b/plugins/openid/routes/authorize.test.ts @@ -1,9 +1,9 @@ import { afterAll, describe, expect, test } from "bun:test"; -import { randomString } from "@/math"; import { RolePermission } from "@versia/client/schemas"; import { Application } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; import { SignJWT } from "jose"; +import { randomString } from "@/math"; import { config } from "~/config.ts"; import { fakeRequest, getTestUsers } from "~/tests/utils"; diff --git a/plugins/openid/routes/authorize.ts b/plugins/openid/routes/authorize.ts index f3365fe9..f75f5999 100644 --- a/plugins/openid/routes/authorize.ts +++ b/plugins/openid/routes/authorize.ts @@ -1,13 +1,13 @@ -import { auth, handleZodError, jsonOrForm } from "@/api"; -import { randomString } from "@/math"; import { RolePermission } from "@versia/client/schemas"; import { Application, Token, User } from "@versia/kit/db"; import { randomUUIDv7 } from "bun"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; -import { type JWTPayload, SignJWT, jwtVerify } from "jose"; +import { type JWTPayload, jwtVerify, SignJWT } from "jose"; import { JOSEError } from "jose/errors"; import { z } from "zod"; +import { auth, handleZodError, jsonOrForm } from "@/api"; +import { randomString } from "@/math"; import { errorRedirect, errors } from "../errors.ts"; import type { PluginType } from "../index.ts"; diff --git a/plugins/openid/routes/jwks.ts b/plugins/openid/routes/jwks.ts index 38fdb02e..02751413 100644 --- a/plugins/openid/routes/jwks.ts +++ b/plugins/openid/routes/jwks.ts @@ -1,8 +1,8 @@ -import { auth } from "@/api"; import { describeRoute } from "hono-openapi"; import { resolver } from "hono-openapi/zod"; import { exportJWK } from "jose"; import { z } from "zod"; +import { auth } from "@/api"; import type { PluginType } from "../index.ts"; export default (plugin: PluginType): void => { diff --git a/plugins/openid/routes/oauth/callback.ts b/plugins/openid/routes/oauth/callback.ts index 23207ca0..ba65e08d 100644 --- a/plugins/openid/routes/oauth/callback.ts +++ b/plugins/openid/routes/oauth/callback.ts @@ -1,16 +1,16 @@ -import { handleZodError } from "@/api"; -import { randomString } from "@/math.ts"; import { Account as AccountSchema } from "@versia/client/schemas"; import { RolePermission } from "@versia/client/schemas"; -import { Media, Token, User, db } from "@versia/kit/db"; -import { type SQL, and, eq, isNull } from "@versia/kit/drizzle"; +import { db, Media, Token, User } from "@versia/kit/db"; +import { and, eq, isNull, type SQL } from "@versia/kit/drizzle"; import { OpenIdAccounts, Users } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; +import { setCookie } from "hono/cookie"; import { describeRoute } from "hono-openapi"; import { validator } from "hono-openapi/zod"; -import { setCookie } from "hono/cookie"; import { SignJWT } from "jose"; import { z } from "zod"; +import { handleZodError } from "@/api"; +import { randomString } from "@/math.ts"; import { ApiError } from "~/classes/errors/api-error.ts"; import type { PluginType } from "../../index.ts"; import { automaticOidcFlow } from "../../utils.ts"; diff --git a/plugins/openid/routes/oauth/revoke.ts b/plugins/openid/routes/oauth/revoke.ts index 96dd99fb..d9480e7c 100644 --- a/plugins/openid/routes/oauth/revoke.ts +++ b/plugins/openid/routes/oauth/revoke.ts @@ -1,10 +1,10 @@ -import { handleZodError, jsonOrForm } from "@/api"; -import { Token, db } from "@versia/kit/db"; +import { db, Token } from "@versia/kit/db"; import { and, eq } from "@versia/kit/drizzle"; import { Tokens } from "@versia/kit/tables"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { handleZodError, jsonOrForm } from "@/api"; import type { PluginType } from "../../index.ts"; export default (plugin: PluginType): void => { diff --git a/plugins/openid/routes/oauth/sso.ts b/plugins/openid/routes/oauth/sso.ts index f3c98cf4..9918998f 100644 --- a/plugins/openid/routes/oauth/sso.ts +++ b/plugins/openid/routes/oauth/sso.ts @@ -1,4 +1,3 @@ -import { handleZodError } from "@/api.ts"; import { Application, db } from "@versia/kit/db"; import { OpenIdLoginFlows } from "@versia/kit/tables"; import { randomUUIDv7 } from "bun"; @@ -11,6 +10,7 @@ import { processDiscoveryResponse, } from "oauth4webapi"; import { z } from "zod"; +import { handleZodError } from "@/api.ts"; import type { PluginType } from "../../index.ts"; import { oauthRedirectUri } from "../../utils.ts"; diff --git a/plugins/openid/routes/oauth/token.ts b/plugins/openid/routes/oauth/token.ts index aaaaea18..636832ee 100644 --- a/plugins/openid/routes/oauth/token.ts +++ b/plugins/openid/routes/oauth/token.ts @@ -1,10 +1,10 @@ -import { handleZodError, jsonOrForm } from "@/api"; import { Application, Token } from "@versia/kit/db"; import { and, eq } from "@versia/kit/drizzle"; import { Tokens } from "@versia/kit/tables"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { handleZodError, jsonOrForm } from "@/api"; import type { PluginType } from "../../index.ts"; export default (plugin: PluginType): void => { diff --git a/plugins/openid/routes/sso/:id/index.ts b/plugins/openid/routes/sso/:id/index.ts index e611f43c..da64e512 100644 --- a/plugins/openid/routes/sso/:id/index.ts +++ b/plugins/openid/routes/sso/:id/index.ts @@ -1,11 +1,11 @@ -import { auth, handleZodError } from "@/api"; import { RolePermission } from "@versia/client/schemas"; import { db } from "@versia/kit/db"; -import { type SQL, eq } from "@versia/kit/drizzle"; +import { eq, type SQL } from "@versia/kit/drizzle"; import { OpenIdAccounts } from "@versia/kit/tables"; import { describeRoute } from "hono-openapi"; import { resolver, validator } from "hono-openapi/zod"; import { z } from "zod"; +import { auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error"; import type { PluginType } from "~/plugins/openid"; diff --git a/plugins/openid/routes/sso/index.ts b/plugins/openid/routes/sso/index.ts index 7a48d126..00d3942c 100644 --- a/plugins/openid/routes/sso/index.ts +++ b/plugins/openid/routes/sso/index.ts @@ -1,4 +1,3 @@ -import { auth, handleZodError } from "@/api"; import { RolePermission } from "@versia/client/schemas"; import { Application, db } from "@versia/kit/db"; import { OpenIdLoginFlows } from "@versia/kit/tables"; @@ -10,6 +9,7 @@ import { generateRandomCodeVerifier, } from "oauth4webapi"; import { z } from "zod"; +import { auth, handleZodError } from "@/api"; import { ApiError } from "~/classes/errors/api-error.ts"; import type { PluginType } from "../../index.ts"; import { oauthDiscoveryRequest, oauthRedirectUri } from "../../utils.ts"; diff --git a/plugins/openid/utils.ts b/plugins/openid/utils.ts index 62c3255a..b11cbeb6 100644 --- a/plugins/openid/utils.ts +++ b/plugins/openid/utils.ts @@ -4,17 +4,17 @@ import type { OpenIdLoginFlows } from "@versia/kit/tables"; import { type AuthorizationResponseError, type AuthorizationServer, - ClientSecretPost, - type ResponseBodyError, - type TokenEndpointResponse, - type UserInfoResponse, authorizationCodeGrantRequest, + ClientSecretPost, discoveryRequest, expectNoState, getValidatedIdTokenClaims, processAuthorizationCodeResponse, processDiscoveryResponse, processUserInfoResponse, + type ResponseBodyError, + type TokenEndpointResponse, + type UserInfoResponse, userInfoRequest, validateAuthResponse, } from "oauth4webapi"; diff --git a/tests/utils.ts b/tests/utils.ts index 3058d501..aac3d05a 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -1,12 +1,12 @@ import { mock } from "bun:test"; -import { generateChallenge } from "@/challenges"; -import { randomString } from "@/math"; import { Client as VersiaClient } from "@versia/client"; -import { Note, Token, User, db } from "@versia/kit/db"; +import { db, Note, Token, User } from "@versia/kit/db"; import { Notes, Users } from "@versia/kit/tables"; import { solveChallenge } from "altcha-lib"; import { env, randomUUIDv7 } from "bun"; -import { type InferSelectModel, asc, inArray, like } from "drizzle-orm"; +import { asc, type InferSelectModel, inArray, like } from "drizzle-orm"; +import { generateChallenge } from "@/challenges"; +import { randomString } from "@/math"; import { appFactory } from "~/app"; import { searchManager } from "~/classes/search/search-manager"; import { config } from "~/config.ts"; diff --git a/utils/api.ts b/utils/api.ts index 9c1ef2f4..0a2ea024 100644 --- a/utils/api.ts +++ b/utils/api.ts @@ -1,15 +1,15 @@ import { getLogger } from "@logtape/logtape"; import type { RolePermission } from "@versia/client/schemas"; -import { Application, Emoji, Note, Token, User, db } from "@versia/kit/db"; +import { Application, db, Emoji, Note, Token, User } from "@versia/kit/db"; import { Challenges } from "@versia/kit/tables"; import { extractParams, verifySolution } from "altcha-lib"; import { SHA256 } from "bun"; import chalk from "chalk"; -import { type SQL, eq } from "drizzle-orm"; +import { eq, type SQL } from "drizzle-orm"; import type { Context, Hono, MiddlewareHandler } from "hono"; -import { validator } from "hono-openapi/zod"; import { every } from "hono/combine"; import { createMiddleware } from "hono/factory"; +import { validator } from "hono-openapi/zod"; import { anyOf, caseInsensitive, diff --git a/utils/loggers.ts b/utils/loggers.ts index 0274b052..091b9f9b 100644 --- a/utils/loggers.ts +++ b/utils/loggers.ts @@ -2,11 +2,11 @@ import { mkdir } from "node:fs/promises"; import { dirname } from "node:path"; import { getRotatingFileSink } from "@logtape/file"; import { - type LogLevel, - type LogRecord, configure, getConsoleSink, getLevelFilter, + type LogLevel, + type LogRecord, } from "@logtape/logtape"; import chalk from "chalk"; import { config } from "~/config.ts";