diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..41583e36 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +@jsr:registry=https://npm.jsr.io diff --git a/app.ts b/app.ts index 3fd5caf7..e2ea11e4 100644 --- a/app.ts +++ b/app.ts @@ -1,7 +1,7 @@ import { errorResponse, response } from "@/response"; +import { Hono } from "@hono/hono"; import { getLogger } from "@logtape/logtape"; import { config } from "config-manager"; -import { Hono } from "hono"; import { agentBans } from "./middlewares/agent-bans"; import { bait } from "./middlewares/bait"; import { boundaryCheck } from "./middlewares/boundary-check"; @@ -95,3 +95,5 @@ export const appFactory = async () => { return app; }; + +export type App = Awaited>; diff --git a/bun.lockb b/bun.lockb index 377893f2..71a35b2e 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/middlewares/agent-bans.ts b/middlewares/agent-bans.ts index 9e5a7a80..7bec2451 100644 --- a/middlewares/agent-bans.ts +++ b/middlewares/agent-bans.ts @@ -1,5 +1,5 @@ import { errorResponse } from "@/response"; -import { createMiddleware } from "hono/factory"; +import { createMiddleware } from "@hono/hono/factory"; import { config } from "~/packages/config-manager"; export const agentBans = createMiddleware(async (context, next) => { diff --git a/middlewares/bait.ts b/middlewares/bait.ts index d09c1db4..08ae8c40 100644 --- a/middlewares/bait.ts +++ b/middlewares/bait.ts @@ -1,7 +1,7 @@ import { response } from "@/response"; +import { createMiddleware } from "@hono/hono/factory"; import { getLogger } from "@logtape/logtape"; import type { SocketAddress } from "bun"; -import { createMiddleware } from "hono/factory"; import { matches } from "ip-matching"; import { config } from "~/packages/config-manager"; diff --git a/middlewares/boundary-check.ts b/middlewares/boundary-check.ts index b8f38fce..bbed965f 100644 --- a/middlewares/boundary-check.ts +++ b/middlewares/boundary-check.ts @@ -1,5 +1,5 @@ import { errorResponse } from "@/response"; -import { createMiddleware } from "hono/factory"; +import { createMiddleware } from "@hono/hono/factory"; export const boundaryCheck = createMiddleware(async (context, next) => { // Checks that FormData boundary is present diff --git a/middlewares/ip-bans.ts b/middlewares/ip-bans.ts index 6540b80e..6042ac42 100644 --- a/middlewares/ip-bans.ts +++ b/middlewares/ip-bans.ts @@ -1,7 +1,7 @@ import { errorResponse } from "@/response"; +import { createMiddleware } from "@hono/hono/factory"; import { getLogger } from "@logtape/logtape"; import type { SocketAddress } from "bun"; -import { createMiddleware } from "hono/factory"; import { matches } from "ip-matching"; import { config } from "~/packages/config-manager"; diff --git a/middlewares/logger.ts b/middlewares/logger.ts index d433e952..188f3d09 100644 --- a/middlewares/logger.ts +++ b/middlewares/logger.ts @@ -1,5 +1,5 @@ import { debugRequest } from "@/api"; -import { createMiddleware } from "hono/factory"; +import { createMiddleware } from "@hono/hono/factory"; import { config } from "~/packages/config-manager"; export const logger = createMiddleware(async (context, next) => { diff --git a/middlewares/url-check.ts b/middlewares/url-check.ts index 387a924f..6cbb77ca 100644 --- a/middlewares/url-check.ts +++ b/middlewares/url-check.ts @@ -1,5 +1,5 @@ import { errorResponse } from "@/response"; -import { createMiddleware } from "hono/factory"; +import { createMiddleware } from "@hono/hono/factory"; import { config } from "~/packages/config-manager"; export const urlCheck = createMiddleware(async (context, next) => { diff --git a/package.json b/package.json index fdf1525b..86d45e63 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "cli": "bun run cli/index.ts", "prune": "ts-prune | grep -v server/ | grep -v dist/ | grep -v '(used in module)'", "check": "bunx tsc -p .", - "postinstall": "bun run patches/patch.ts", "prepare": "bunx husky" }, "trustedDependencies": [ @@ -78,19 +77,19 @@ "devDependencies": { "@biomejs/biome": "^1.8.3", "@types/bun": "^1.1.6", - "@types/cli-progress": "^3.11.5", + "@types/cli-progress": "^3.11.6", "@types/cli-table": "^0.3.4", "@types/html-to-text": "^9.0.4", "@types/ioredis": "^5.0.0", - "@types/jsonld": "^1.5.14", + "@types/jsonld": "^1.5.15", "@types/markdown-it-container": "^2.0.10", "@types/mime-types": "^2.1.4", "@types/pg": "^8.11.6", "@types/qs": "^6.9.15", "drizzle-kit": "^0.22.8", - "oclif": "^4.13.12", + "oclif": "^4.14.0", "ts-prune": "^0.10.3", - "typescript": "^5.5.2" + "typescript": "^5.5.3" }, "peerDependencies": { "typescript": "^5.3.2" @@ -98,30 +97,32 @@ "dependencies": { "@bradenmacdonald/s3-lite-client": "npm:@jsr/bradenmacdonald__s3-lite-client", "@hackmd/markdown-it-task-lists": "^2.1.4", + "@hono/hono": "npm:@jsr/hono__hono", + "hono": "npm:@jsr/hono__hono", "@hono/zod-validator": "^0.2.2", - "@inquirer/confirm": "^3.1.11", - "@inquirer/input": "^2.1.11", + "@inquirer/confirm": "^3.1.14", + "@inquirer/input": "^2.2.1", "@json2csv/plainjs": "^7.0.6", - "@logtape/logtape": "npm:@jsr/logtape__logtape", + "@logtape/logtape": "npm:@jsr/logtape__logtape@0.4.1", "@lysand-org/client": "^0.2.3", "@lysand-org/federation": "^2.1.0", - "@oclif/core": "^4.0.7", + "@oclif/core": "^4.0.11", "@tufjs/canonical-json": "^2.0.0", "altcha-lib": "^0.3.0", "blurhash": "^2.0.5", + "bullmq": "^5.8.6", "chalk": "^5.3.0", "cli-progress": "^3.12.0", "cli-table": "^0.3.11", "config-manager": "workspace:*", - "drizzle-orm": "^0.31.2", + "drizzle-orm": "^0.31.4", "extract-zip": "^2.0.1", - "hono": "^4.4.10", "html-to-text": "^9.0.5", "husky": "^9.0.11", "ioredis": "^5.4.1", "ip-matching": "^2.1.2", "iso-639-1": "^3.1.2", - "jose": "^5.6.2", + "jose": "^5.6.3", "linkify-html": "^4.1.3", "linkify-string": "^4.1.3", "linkifyjs": "^4.1.3", @@ -134,7 +135,7 @@ "oauth4webapi": "^2.11.1", "ora": "^8.0.1", "pg": "^8.12.0", - "qs": "^6.12.1", + "qs": "^6.12.3", "sharp": "^0.33.4", "sonic-channel": "^1.3.1", "string-comparison": "^1.3.0", diff --git a/patches/patch.ts b/patches/patch.ts deleted file mode 100644 index b47a3d3a..00000000 --- a/patches/patch.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { $ } from "bun"; - -// Replace all occurrences of 'Deno' with '{}' in node_modules/@logtape/logtape/logtape/filesink.deno.js -// LogTape assumes a Deno global exists which causes it to break in Bun -await $`sed -i 's/Deno/{}/g' '${import.meta.dir}/../node_modules/@logtape/logtape/logtape/filesink.deno.js'`; diff --git a/server/api/api/auth/login/index.ts b/server/api/api/auth/login/index.ts index fa83a531..ed381690 100644 --- a/server/api/api/auth/login/index.ts +++ b/server/api/api/auth/login/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, redirect } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq, or } from "drizzle-orm"; -import type { Hono } from "hono"; import { SignJWT } from "jose"; import { z } from "zod"; import { db } from "~/drizzle/db"; diff --git a/server/api/api/auth/mastodon-login/index.ts b/server/api/api/auth/mastodon-login/index.ts index 1ab4ddec..85103c93 100644 --- a/server/api/api/auth/mastodon-login/index.ts +++ b/server/api/api/auth/mastodon-login/index.ts @@ -1,9 +1,9 @@ import { applyConfig, handleZodError } from "@/api"; import { randomString } from "@/math"; import { response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { TokenType } from "~/classes/functions/token"; import { db } from "~/drizzle/db"; diff --git a/server/api/api/auth/mastodon-logout/index.ts b/server/api/api/auth/mastodon-logout/index.ts index 50b99c12..ed0d736d 100644 --- a/server/api/api/auth/mastodon-logout/index.ts +++ b/server/api/api/auth/mastodon-logout/index.ts @@ -1,5 +1,5 @@ import { applyConfig } from "@/api"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/auth/redirect/index.ts b/server/api/api/auth/redirect/index.ts index c2fc4b7d..8f782b7f 100644 --- a/server/api/api/auth/redirect/index.ts +++ b/server/api/api/auth/redirect/index.ts @@ -1,7 +1,7 @@ import { applyConfig, handleZodError } from "@/api"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Applications, Tokens } from "~/drizzle/schema"; diff --git a/server/api/api/auth/reset/index.ts b/server/api/api/auth/reset/index.ts index 0c454d9e..e9f5e7ad 100644 --- a/server/api/api/auth/reset/index.ts +++ b/server/api/api/auth/reset/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError } from "@/api"; import { response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/server/api/api/v1/accounts/:id/block.ts b/server/api/api/v1/accounts/:id/block.ts index 0eb6931d..9f461a24 100644 --- a/server/api/api/v1/accounts/:id/block.ts +++ b/server/api/api/v1/accounts/:id/block.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/follow.ts b/server/api/api/v1/accounts/:id/follow.ts index 81863504..6497fafc 100644 --- a/server/api/api/v1/accounts/:id/follow.ts +++ b/server/api/api/v1/accounts/:id/follow.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; diff --git a/server/api/api/v1/accounts/:id/followers.ts b/server/api/api/v1/accounts/:id/followers.ts index 43501b87..61ffd5fa 100644 --- a/server/api/api/v1/accounts/:id/followers.ts +++ b/server/api/api/v1/accounts/:id/followers.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/accounts/:id/following.ts b/server/api/api/v1/accounts/:id/following.ts index 4de7262c..cebc1945 100644 --- a/server/api/api/v1/accounts/:id/following.ts +++ b/server/api/api/v1/accounts/:id/following.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/accounts/:id/index.ts b/server/api/api/v1/accounts/:id/index.ts index 273b6463..b57d0500 100644 --- a/server/api/api/v1/accounts/:id/index.ts +++ b/server/api/api/v1/accounts/:id/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/mute.ts b/server/api/api/v1/accounts/:id/mute.ts index b411cb4b..64baefa4 100644 --- a/server/api/api/v1/accounts/:id/mute.ts +++ b/server/api/api/v1/accounts/:id/mute.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/note.ts b/server/api/api/v1/accounts/:id/note.ts index 09b1165a..2b38fc1e 100644 --- a/server/api/api/v1/accounts/:id/note.ts +++ b/server/api/api/v1/accounts/:id/note.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/pin.ts b/server/api/api/v1/accounts/:id/pin.ts index a70d2d64..a0912bbb 100644 --- a/server/api/api/v1/accounts/:id/pin.ts +++ b/server/api/api/v1/accounts/:id/pin.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/remove_from_followers.ts b/server/api/api/v1/accounts/:id/remove_from_followers.ts index 3f0a6c02..be51431a 100644 --- a/server/api/api/v1/accounts/:id/remove_from_followers.ts +++ b/server/api/api/v1/accounts/:id/remove_from_followers.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/statuses.ts b/server/api/api/v1/accounts/:id/statuses.ts index c42d0b8a..3b244398 100644 --- a/server/api/api/v1/accounts/:id/statuses.ts +++ b/server/api/api/v1/accounts/:id/statuses.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, gt, gte, isNull, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/accounts/:id/unblock.ts b/server/api/api/v1/accounts/:id/unblock.ts index 677e8c13..ea71bc6e 100644 --- a/server/api/api/v1/accounts/:id/unblock.ts +++ b/server/api/api/v1/accounts/:id/unblock.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/unfollow.ts b/server/api/api/v1/accounts/:id/unfollow.ts index 81668479..2b0bea37 100644 --- a/server/api/api/v1/accounts/:id/unfollow.ts +++ b/server/api/api/v1/accounts/:id/unfollow.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/unmute.ts b/server/api/api/v1/accounts/:id/unmute.ts index d3662632..8e5c0c6b 100644 --- a/server/api/api/v1/accounts/:id/unmute.ts +++ b/server/api/api/v1/accounts/:id/unmute.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/:id/unpin.ts b/server/api/api/v1/accounts/:id/unpin.ts index 7a61744e..04a97781 100644 --- a/server/api/api/v1/accounts/:id/unpin.ts +++ b/server/api/api/v1/accounts/:id/unpin.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { relationshipToApi } from "~/classes/functions/relationship"; import { getRelationshipToOtherUser } from "~/classes/functions/user"; diff --git a/server/api/api/v1/accounts/familiar_followers/index.ts b/server/api/api/v1/accounts/familiar_followers/index.ts index cabbd499..b2545cd6 100644 --- a/server/api/api/v1/accounts/familiar_followers/index.ts +++ b/server/api/api/v1/accounts/familiar_followers/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, qsQuery } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { inArray } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { RolePermissions, Users } from "~/drizzle/schema"; diff --git a/server/api/api/v1/accounts/index.ts b/server/api/api/v1/accounts/index.ts index 61df5630..da29d35a 100644 --- a/server/api/api/v1/accounts/index.ts +++ b/server/api/api/v1/accounts/index.ts @@ -1,9 +1,9 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { jsonResponse, response } from "@/response"; import { tempmailDomains } from "@/tempmail"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, isNull } from "drizzle-orm"; -import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; import { Users } from "~/drizzle/schema"; @@ -27,7 +27,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z.object({ + json: z.object({ username: z.string(), email: z.string().toLowerCase(), password: z.string().optional(), @@ -46,11 +46,11 @@ export default (app: Hono) => meta.route, auth(meta.auth, meta.permissions, meta.challenge), jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), async (context) => { - const form = context.req.valid("form"); + const form = context.req.valid("json"); const { username, email, password, agreement, locale } = - context.req.valid("form"); + context.req.valid("json"); if (!config.signups.registration) { return jsonResponse( diff --git a/server/api/api/v1/accounts/lookup/index.ts b/server/api/api/v1/accounts/lookup/index.ts index e3ff6ca5..fc2a2bbb 100644 --- a/server/api/api/v1/accounts/lookup/index.ts +++ b/server/api/api/v1/accounts/lookup/index.ts @@ -1,10 +1,10 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { SignatureConstructor } from "@lysand-org/federation"; import { FederationRequester } from "@lysand-org/federation/requester"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { anyOf, charIn, diff --git a/server/api/api/v1/accounts/relationships/index.ts b/server/api/api/v1/accounts/relationships/index.ts index 62d1ffff..f4dd264f 100644 --- a/server/api/api/v1/accounts/relationships/index.ts +++ b/server/api/api/v1/accounts/relationships/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError, qsQuery } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { createNewRelationship, diff --git a/server/api/api/v1/accounts/search/index.ts b/server/api/api/v1/accounts/search/index.ts index 99250301..4c3350fd 100644 --- a/server/api/api/v1/accounts/search/index.ts +++ b/server/api/api/v1/accounts/search/index.ts @@ -1,10 +1,10 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { SignatureConstructor } from "@lysand-org/federation"; import { FederationRequester } from "@lysand-org/federation/requester"; import { eq, like, not, or, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { anyOf, charIn, diff --git a/server/api/api/v1/accounts/update_credentials/index.ts b/server/api/api/v1/accounts/update_credentials/index.ts index 480c79e5..00410b27 100644 --- a/server/api/api/v1/accounts/update_credentials/index.ts +++ b/server/api/api/v1/accounts/update_credentials/index.ts @@ -1,10 +1,10 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; import { sanitizedHtmlStrip } from "@/sanitization"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; import { and, eq, isNull } from "drizzle-orm"; -import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; import { parseEmojis } from "~/classes/functions/emoji"; @@ -33,7 +33,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z.object({ + json: z.object({ display_name: z .string() .min(3) @@ -133,7 +133,7 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { user } = context.req.valid("header"); @@ -148,7 +148,7 @@ export default (app: Hono) => discoverable, source, fields_attributes, - } = context.req.valid("form"); + } = context.req.valid("json"); if (!user) { return errorResponse("Unauthorized", 401); diff --git a/server/api/api/v1/accounts/verify_credentials/index.ts b/server/api/api/v1/accounts/verify_credentials/index.ts index 1624547c..c490e77f 100644 --- a/server/api/api/v1/accounts/verify_credentials/index.ts +++ b/server/api/api/v1/accounts/verify_credentials/index.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; export const meta = applyConfig({ allowedMethods: ["GET"], diff --git a/server/api/api/v1/apps/index.ts b/server/api/api/v1/apps/index.ts index 3d317a39..7540fe23 100644 --- a/server/api/api/v1/apps/index.ts +++ b/server/api/api/v1/apps/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError, jsonOrForm } from "@/api"; import { randomString } from "@/math"; import { jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Applications, RolePermissions } from "~/drizzle/schema"; @@ -23,7 +23,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z.object({ + json: z.object({ client_name: z.string().trim().min(1).max(100), redirect_uris: z .string() @@ -49,10 +49,10 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), async (context) => { const { client_name, redirect_uris, scopes, website } = - context.req.valid("form"); + context.req.valid("json"); const app = ( await db diff --git a/server/api/api/v1/apps/verify_credentials/index.ts b/server/api/api/v1/apps/verify_credentials/index.ts index 90a88f72..edc4be3e 100644 --- a/server/api/api/v1/apps/verify_credentials/index.ts +++ b/server/api/api/v1/apps/verify_credentials/index.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { getFromToken } from "~/classes/functions/application"; import { RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/blocks/index.ts b/server/api/api/v1/blocks/index.ts index 884b856f..03d822df 100644 --- a/server/api/api/v1/blocks/index.ts +++ b/server/api/api/v1/blocks/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/challenges/index.ts b/server/api/api/v1/challenges/index.ts index 0591393d..f15109e1 100644 --- a/server/api/api/v1/challenges/index.ts +++ b/server/api/api/v1/challenges/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { generateChallenge } from "@/challenges"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/custom_emojis/index.ts b/server/api/api/v1/custom_emojis/index.ts index 1c5c74fb..94522b9f 100644 --- a/server/api/api/v1/custom_emojis/index.ts +++ b/server/api/api/v1/custom_emojis/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { and, eq, isNull, or } from "drizzle-orm"; -import type { Hono } from "hono"; import { Emojis, RolePermissions } from "~/drizzle/schema"; import { Emoji } from "~/packages/database-interface/emoji"; diff --git a/server/api/api/v1/emojis/:id/index.ts b/server/api/api/v1/emojis/:id/index.ts index 69726ca9..1ca914a4 100644 --- a/server/api/api/v1/emojis/:id/index.ts +++ b/server/api/api/v1/emojis/:id/index.ts @@ -7,9 +7,9 @@ import { } from "@/api"; import { mimeLookup } from "@/content_types"; import { errorResponse, jsonResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { MediaManager } from "~/classes/media/media-manager"; import { db } from "~/drizzle/db"; @@ -37,7 +37,7 @@ export const schemas = { param: z.object({ id: z.string().uuid(), }), - form: z + json: z .object({ shortcode: z .string() @@ -73,7 +73,7 @@ export default (app: Hono) => meta.route, jsonOrForm(), zValidator("param", schemas.param, handleZodError), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { id } = context.req.valid("param"); @@ -114,7 +114,7 @@ export default (app: Hono) => } case "PATCH": { - const form = context.req.valid("form"); + const form = context.req.valid("json"); if (!form) { return errorResponse( diff --git a/server/api/api/v1/emojis/index.ts b/server/api/api/v1/emojis/index.ts index 255daf00..1d6129cf 100644 --- a/server/api/api/v1/emojis/index.ts +++ b/server/api/api/v1/emojis/index.ts @@ -7,9 +7,9 @@ import { } from "@/api"; import { mimeLookup } from "@/content_types"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, isNull, or } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { MediaManager } from "~/classes/media/media-manager"; import { Emojis, RolePermissions } from "~/drizzle/schema"; @@ -33,7 +33,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z.object({ + json: z.object({ shortcode: z .string() .trim() @@ -65,11 +65,11 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { shortcode, element, alt, global, category } = - context.req.valid("form"); + context.req.valid("json"); const { user } = context.req.valid("header"); if (!user) { diff --git a/server/api/api/v1/favourites/index.ts b/server/api/api/v1/favourites/index.ts index 50bffd59..f7d860f1 100644 --- a/server/api/api/v1/favourites/index.ts +++ b/server/api/api/v1/favourites/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/follow_requests/:account_id/authorize.ts b/server/api/api/v1/follow_requests/:account_id/authorize.ts index 66c83337..db9a947b 100644 --- a/server/api/api/v1/follow_requests/:account_id/authorize.ts +++ b/server/api/api/v1/follow_requests/:account_id/authorize.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { checkForBidirectionalRelationships, diff --git a/server/api/api/v1/follow_requests/:account_id/reject.ts b/server/api/api/v1/follow_requests/:account_id/reject.ts index 96b593b4..d5c6b660 100644 --- a/server/api/api/v1/follow_requests/:account_id/reject.ts +++ b/server/api/api/v1/follow_requests/:account_id/reject.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { checkForBidirectionalRelationships, diff --git a/server/api/api/v1/follow_requests/index.ts b/server/api/api/v1/follow_requests/index.ts index 539c2ec3..da67baec 100644 --- a/server/api/api/v1/follow_requests/index.ts +++ b/server/api/api/v1/follow_requests/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/frontend/config/index.ts b/server/api/api/v1/frontend/config/index.ts index 2eebc439..1afa9d8b 100644 --- a/server/api/api/v1/frontend/config/index.ts +++ b/server/api/api/v1/frontend/config/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/instance/extended_description.ts b/server/api/api/v1/instance/extended_description.ts index c84c7bef..a7b26ed7 100644 --- a/server/api/api/v1/instance/extended_description.ts +++ b/server/api/api/v1/instance/extended_description.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { renderMarkdownInPath } from "@/markdown"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/instance/index.ts b/server/api/api/v1/instance/index.ts index 5b381383..f218aa4f 100644 --- a/server/api/api/v1/instance/index.ts +++ b/server/api/api/v1/instance/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { jsonResponse, proxyUrl } from "@/response"; +import type { Hono } from "@hono/hono"; import { and, eq, isNull } from "drizzle-orm"; -import type { Hono } from "hono"; import { Users } from "~/drizzle/schema"; import manifest from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/server/api/api/v1/instance/privacy_policy.ts b/server/api/api/v1/instance/privacy_policy.ts index 7ba3f31c..8e99bdb9 100644 --- a/server/api/api/v1/instance/privacy_policy.ts +++ b/server/api/api/v1/instance/privacy_policy.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { renderMarkdownInPath } from "@/markdown"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/instance/rules.ts b/server/api/api/v1/instance/rules.ts index cd14b1da..1f7e3991 100644 --- a/server/api/api/v1/instance/rules.ts +++ b/server/api/api/v1/instance/rules.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/instance/tos.ts b/server/api/api/v1/instance/tos.ts index c5986882..ea3f5f63 100644 --- a/server/api/api/v1/instance/tos.ts +++ b/server/api/api/v1/instance/tos.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { renderMarkdownInPath } from "@/markdown"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/api/v1/markers/index.ts b/server/api/api/v1/markers/index.ts index a8562963..47b55a05 100644 --- a/server/api/api/v1/markers/index.ts +++ b/server/api/api/v1/markers/index.ts @@ -1,9 +1,9 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import type { Marker as ApiMarker } from "@lysand-org/client/types"; import { and, count, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Markers, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/media/:id/index.ts b/server/api/api/v1/media/:id/index.ts index 9f5323c6..c39f5c1c 100644 --- a/server/api/api/v1/media/:id/index.ts +++ b/server/api/api/v1/media/:id/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; -import type { Hono } from "hono"; import { z } from "zod"; import { MediaManager } from "~/classes/media/media-manager"; import { RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/media/index.ts b/server/api/api/v1/media/index.ts index 279c46d2..3b762d99 100644 --- a/server/api/api/v1/media/index.ts +++ b/server/api/api/v1/media/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; -import type { Hono } from "hono"; import sharp from "sharp"; import { z } from "zod"; import { MediaManager } from "~/classes/media/media-manager"; diff --git a/server/api/api/v1/mutes/index.ts b/server/api/api/v1/mutes/index.ts index 7cfc49d5..f0f03172 100644 --- a/server/api/api/v1/mutes/index.ts +++ b/server/api/api/v1/mutes/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/notifications/:id/dismiss.ts b/server/api/api/v1/notifications/:id/dismiss.ts index 7e402f1e..db805500 100644 --- a/server/api/api/v1/notifications/:id/dismiss.ts +++ b/server/api/api/v1/notifications/:id/dismiss.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Notifications, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/notifications/:id/index.ts b/server/api/api/v1/notifications/:id/index.ts index 04daaede..a320a957 100644 --- a/server/api/api/v1/notifications/:id/index.ts +++ b/server/api/api/v1/notifications/:id/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { findManyNotifications } from "~/classes/functions/notification"; import { RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/notifications/clear/index.ts b/server/api/api/v1/notifications/clear/index.ts index c4564e58..8479322e 100644 --- a/server/api/api/v1/notifications/clear/index.ts +++ b/server/api/api/v1/notifications/clear/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { db } from "~/drizzle/db"; import { Notifications, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/notifications/destroy_multiple/index.ts b/server/api/api/v1/notifications/destroy_multiple/index.ts index 23511cc5..a4419b6f 100644 --- a/server/api/api/v1/notifications/destroy_multiple/index.ts +++ b/server/api/api/v1/notifications/destroy_multiple/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, inArray } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Notifications, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/notifications/index.ts b/server/api/api/v1/notifications/index.ts index 8df5391f..58ef7998 100644 --- a/server/api/api/v1/notifications/index.ts +++ b/server/api/api/v1/notifications/index.ts @@ -1,9 +1,9 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; import { fetchTimeline } from "@/timelines"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { findManyNotifications, diff --git a/server/api/api/v1/profile/avatar.ts b/server/api/api/v1/profile/avatar.ts index 0c9c3472..4dc0f3d4 100644 --- a/server/api/api/v1/profile/avatar.ts +++ b/server/api/api/v1/profile/avatar.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/server/api/api/v1/profile/header.ts b/server/api/api/v1/profile/header.ts index 871b4bb5..b68f919b 100644 --- a/server/api/api/v1/profile/header.ts +++ b/server/api/api/v1/profile/header.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/server/api/api/v1/roles/:id/index.ts b/server/api/api/v1/roles/:id/index.ts index 7c3b6329..bd241bc6 100644 --- a/server/api/api/v1/roles/:id/index.ts +++ b/server/api/api/v1/roles/:id/index.ts @@ -1,7 +1,7 @@ -import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; +import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions } from "~/drizzle/schema"; import { Role } from "~/packages/database-interface/role"; @@ -34,7 +34,6 @@ export default (app: Hono) => app.on( meta.allowedMethods, meta.route, - jsonOrForm(), zValidator("param", schemas.param, handleZodError), auth(meta.auth, meta.permissions), async (context) => { diff --git a/server/api/api/v1/roles/index.ts b/server/api/api/v1/roles/index.ts index a251617e..40788a7e 100644 --- a/server/api/api/v1/roles/index.ts +++ b/server/api/api/v1/roles/index.ts @@ -1,6 +1,6 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { Role } from "~/packages/database-interface/role"; export const meta = applyConfig({ diff --git a/server/api/api/v1/sso/:id/index.ts b/server/api/api/v1/sso/:id/index.ts index 7b4b19c8..dcdec255 100644 --- a/server/api/api/v1/sso/:id/index.ts +++ b/server/api/api/v1/sso/:id/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse, proxyUrl, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { OpenIdAccounts, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/sso/index.ts b/server/api/api/v1/sso/index.ts index 6f9769ef..c797f63f 100644 --- a/server/api/api/v1/sso/index.ts +++ b/server/api/api/v1/sso/index.ts @@ -2,8 +2,8 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { oauthRedirectUri } from "@/constants"; import { randomString } from "@/math"; import { errorResponse, jsonResponse, proxyUrl } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { calculatePKCECodeChallenge, discoveryRequest, @@ -35,7 +35,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z + json: z .object({ issuer: z.string(), }) @@ -52,10 +52,10 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { - const form = context.req.valid("form"); + const form = context.req.valid("json"); const { user } = context.req.valid("header"); if (!user) { diff --git a/server/api/api/v1/statuses/:id/context.ts b/server/api/api/v1/statuses/:id/context.ts index 3e7570bd..e1b42951 100644 --- a/server/api/api/v1/statuses/:id/context.ts +++ b/server/api/api/v1/statuses/:id/context.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/favourite.ts b/server/api/api/v1/statuses/:id/favourite.ts index 62853f86..3169ac0a 100644 --- a/server/api/api/v1/statuses/:id/favourite.ts +++ b/server/api/api/v1/statuses/:id/favourite.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { createLike } from "~/classes/functions/like"; import { db } from "~/drizzle/db"; diff --git a/server/api/api/v1/statuses/:id/favourited_by.ts b/server/api/api/v1/statuses/:id/favourited_by.ts index 2924ae4d..79cf041e 100644 --- a/server/api/api/v1/statuses/:id/favourited_by.ts +++ b/server/api/api/v1/statuses/:id/favourited_by.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/index.ts b/server/api/api/v1/statuses/:id/index.ts index 3fa0a331..1be75fe2 100644 --- a/server/api/api/v1/statuses/:id/index.ts +++ b/server/api/api/v1/statuses/:id/index.ts @@ -6,9 +6,9 @@ import { jsonOrForm, } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; -import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; import { undoFederationRequest } from "~/classes/functions/federation"; @@ -43,7 +43,7 @@ export const schemas = { param: z.object({ id: z.string().regex(idValidator), }), - form: z + json: z .object({ status: z .string() @@ -103,7 +103,7 @@ export default (app: Hono) => meta.route, jsonOrForm(), zValidator("param", schemas.param, handleZodError), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { id } = context.req.valid("param"); @@ -116,7 +116,7 @@ export default (app: Hono) => media_ids, spoiler_text, sensitive, - } = context.req.valid("form"); + } = context.req.valid("json"); const note = await Note.fromId(id, user?.id); diff --git a/server/api/api/v1/statuses/:id/pin.ts b/server/api/api/v1/statuses/:id/pin.ts index 0ddc1b5d..d5e2f45a 100644 --- a/server/api/api/v1/statuses/:id/pin.ts +++ b/server/api/api/v1/statuses/:id/pin.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/statuses/:id/reblog.ts b/server/api/api/v1/statuses/:id/reblog.ts index 44d7fb79..6b032cec 100644 --- a/server/api/api/v1/statuses/:id/reblog.ts +++ b/server/api/api/v1/statuses/:id/reblog.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Notes, Notifications, RolePermissions } from "~/drizzle/schema"; @@ -27,7 +27,7 @@ export const schemas = { param: z.object({ id: z.string().uuid(), }), - form: z.object({ + json: z.object({ visibility: z.enum(["public", "unlisted", "private"]).default("public"), }), }; @@ -38,11 +38,11 @@ export default (app: Hono) => meta.route, jsonOrForm(), zValidator("param", schemas.param, handleZodError), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { id } = context.req.valid("param"); - const { visibility } = context.req.valid("form"); + const { visibility } = context.req.valid("json"); const { user } = context.req.valid("header"); if (!user) { diff --git a/server/api/api/v1/statuses/:id/reblogged_by.ts b/server/api/api/v1/statuses/:id/reblogged_by.ts index 1031f0b8..4e2393b6 100644 --- a/server/api/api/v1/statuses/:id/reblogged_by.ts +++ b/server/api/api/v1/statuses/:id/reblogged_by.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions, Users } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/source.ts b/server/api/api/v1/statuses/:id/source.ts index 310c7c11..949544c1 100644 --- a/server/api/api/v1/statuses/:id/source.ts +++ b/server/api/api/v1/statuses/:id/source.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import type { StatusSource as ApiStatusSource } from "@lysand-org/client/types"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/unfavourite.ts b/server/api/api/v1/statuses/:id/unfavourite.ts index d776f68f..9e48dfad 100644 --- a/server/api/api/v1/statuses/:id/unfavourite.ts +++ b/server/api/api/v1/statuses/:id/unfavourite.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { deleteLike } from "~/classes/functions/like"; import { RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/statuses/:id/unpin.ts b/server/api/api/v1/statuses/:id/unpin.ts index ff628a96..8142e2b1 100644 --- a/server/api/api/v1/statuses/:id/unpin.ts +++ b/server/api/api/v1/statuses/:id/unpin.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/unreblog.ts b/server/api/api/v1/statuses/:id/unreblog.ts index 0f36a21a..913ed915 100644 --- a/server/api/api/v1/statuses/:id/unreblog.ts +++ b/server/api/api/v1/statuses/:id/unreblog.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { undoFederationRequest } from "~/classes/functions/federation"; import { Notes, RolePermissions } from "~/drizzle/schema"; diff --git a/server/api/api/v1/statuses/index.ts b/server/api/api/v1/statuses/index.ts index b3ab8f36..fdd3dfc8 100644 --- a/server/api/api/v1/statuses/index.ts +++ b/server/api/api/v1/statuses/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; -import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; import { federateNote } from "~/classes/functions/status"; @@ -26,7 +26,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z + json: z .object({ status: z .string() @@ -108,7 +108,7 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { user, application } = context.req.valid("header"); @@ -127,7 +127,7 @@ export default (app: Hono) => visibility, content_type, local_only, - } = context.req.valid("form"); + } = context.req.valid("json"); // Check if media attachments are all valid if (media_ids.length > 0) { diff --git a/server/api/api/v1/timelines/home.ts b/server/api/api/v1/timelines/home.ts index 13d8ccba..15738c2b 100644 --- a/server/api/api/v1/timelines/home.ts +++ b/server/api/api/v1/timelines/home.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, gt, gte, lt, or, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v1/timelines/public.ts b/server/api/api/v1/timelines/public.ts index 03a3dcf4..cae9f350 100644 --- a/server/api/api/v1/timelines/public.ts +++ b/server/api/api/v1/timelines/public.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, idValidator } from "@/api"; import { jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, gt, gte, lt, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { Timeline } from "~/packages/database-interface/timeline"; diff --git a/server/api/api/v2/filters/:id/index.ts b/server/api/api/v2/filters/:id/index.ts index 7ac8bcf6..08b98596 100644 --- a/server/api/api/v2/filters/:id/index.ts +++ b/server/api/api/v2/filters/:id/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, inArray } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { FilterKeywords, Filters, RolePermissions } from "~/drizzle/schema"; @@ -26,7 +26,7 @@ export const schemas = { param: z.object({ id: z.string().uuid(), }), - form: z.object({ + json: z.object({ title: z.string().trim().min(1).max(100).optional(), context: z .array( @@ -76,7 +76,7 @@ export default (app: Hono) => meta.route, jsonOrForm(), zValidator("param", schemas.param, handleZodError), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { user } = context.req.valid("header"); @@ -123,7 +123,7 @@ export default (app: Hono) => filter_action, expires_in, keywords_attributes, - } = context.req.valid("form"); + } = context.req.valid("json"); await db .update(Filters) diff --git a/server/api/api/v2/filters/index.ts b/server/api/api/v2/filters/index.ts index 338a8d89..718df75c 100644 --- a/server/api/api/v2/filters/index.ts +++ b/server/api/api/v2/filters/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { FilterKeywords, Filters, RolePermissions } from "~/drizzle/schema"; @@ -21,7 +21,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z + json: z .object({ title: z.string().trim().min(1).max(100).optional(), context: z @@ -64,7 +64,7 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), auth(meta.auth, meta.permissions), async (context) => { const { user } = context.req.valid("header"); @@ -102,7 +102,7 @@ export default (app: Hono) => ); } case "POST": { - const form = context.req.valid("form"); + const form = context.req.valid("json"); if (!form) { return errorResponse( "Missing required Form fields", diff --git a/server/api/api/v2/instance/index.ts b/server/api/api/v2/instance/index.ts index 9cdda872..c8f78e39 100644 --- a/server/api/api/v2/instance/index.ts +++ b/server/api/api/v2/instance/index.ts @@ -1,8 +1,8 @@ import { applyConfig } from "@/api"; import { jsonResponse, proxyUrl } from "@/response"; +import type { Hono } from "@hono/hono"; import type { Instance as ApiInstance } from "@lysand-org/client/types"; import { and, eq, isNull } from "drizzle-orm"; -import type { Hono } from "hono"; import { Users } from "~/drizzle/schema"; import manifest from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/server/api/api/v2/media/index.ts b/server/api/api/v2/media/index.ts index e4f2db6f..f8390218 100644 --- a/server/api/api/v2/media/index.ts +++ b/server/api/api/v2/media/index.ts @@ -1,8 +1,8 @@ import { applyConfig, auth, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { config } from "config-manager"; -import type { Hono } from "hono"; import sharp from "sharp"; import { z } from "zod"; import { MediaManager } from "~/classes/media/media-manager"; diff --git a/server/api/api/v2/search/index.ts b/server/api/api/v2/search/index.ts index 4e411c00..05137c51 100644 --- a/server/api/api/v2/search/index.ts +++ b/server/api/api/v2/search/index.ts @@ -1,10 +1,10 @@ import { applyConfig, auth, handleZodError, userAddressValidator } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { SignatureConstructor } from "@lysand-org/federation"; import { FederationRequester } from "@lysand-org/federation/requester"; import { and, eq, inArray, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { searchManager } from "~/classes/search/search-manager"; import { db } from "~/drizzle/db"; diff --git a/server/api/media/:hash/:name/index.ts b/server/api/media/:hash/:name/index.ts index efa36b81..b2e67bd7 100644 --- a/server/api/media/:hash/:name/index.ts +++ b/server/api/media/:hash/:name/index.ts @@ -1,7 +1,7 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; export const meta = applyConfig({ diff --git a/server/api/media/proxy/:id.ts b/server/api/media/proxy/:id.ts index 22edea34..de3341bb 100644 --- a/server/api/media/proxy/:id.ts +++ b/server/api/media/proxy/:id.ts @@ -1,7 +1,7 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { config } from "~/packages/config-manager"; diff --git a/server/api/oauth/authorize/index.ts b/server/api/oauth/authorize/index.ts index 15db19ff..2b0f88a9 100644 --- a/server/api/oauth/authorize/index.ts +++ b/server/api/oauth/authorize/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError, jsonOrForm } from "@/api"; import { randomString } from "@/math"; import { response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { SignJWT, jwtVerify } from "jose"; import { z } from "zod"; import { TokenType } from "~/classes/functions/token"; @@ -35,7 +35,7 @@ export const schemas = { .optional() .default(60 * 60 * 24 * 7), }), - form: z.object({ + json: z.object({ scope: z.string().optional(), redirect_uri: z .string() @@ -83,12 +83,12 @@ export default (app: Hono) => meta.route, jsonOrForm(), zValidator("query", schemas.query, handleZodError), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), async (context) => { const { scope, redirect_uri, response_type, client_id, state } = - context.req.valid("form"); + context.req.valid("json"); - const body = context.req.valid("form"); + const body = context.req.valid("json"); const cookie = context.req.header("Cookie"); diff --git a/server/api/oauth/sso/:issuer/callback/index.ts b/server/api/oauth/sso/:issuer/callback/index.ts index 9741b466..46f5c414 100644 --- a/server/api/oauth/sso/:issuer/callback/index.ts +++ b/server/api/oauth/sso/:issuer/callback/index.ts @@ -1,9 +1,9 @@ import { applyConfig, handleZodError } from "@/api"; import { randomString } from "@/math"; import { errorResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, eq, isNull } from "drizzle-orm"; -import type { Hono } from "hono"; import { SignJWT } from "jose"; import { z } from "zod"; import { TokenType } from "~/classes/functions/token"; diff --git a/server/api/oauth/sso/index.ts b/server/api/oauth/sso/index.ts index 58928d70..0e02b839 100644 --- a/server/api/oauth/sso/index.ts +++ b/server/api/oauth/sso/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError } from "@/api"; import { oauthRedirectUri } from "@/constants"; import { redirect, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { calculatePKCECodeChallenge, discoveryRequest, diff --git a/server/api/oauth/token/index.ts b/server/api/oauth/token/index.ts index 9cc7876a..c0f42a4c 100644 --- a/server/api/oauth/token/index.ts +++ b/server/api/oauth/token/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError, jsonOrForm } from "@/api"; import { jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Tokens } from "~/drizzle/schema"; @@ -20,7 +20,7 @@ export const meta = applyConfig({ }); export const schemas = { - form: z.object({ + json: z.object({ code: z.string().optional(), code_verifier: z.string().optional(), grant_type: z.enum([ @@ -64,10 +64,10 @@ export default (app: Hono) => meta.allowedMethods, meta.route, jsonOrForm(), - zValidator("form", schemas.form, handleZodError), + zValidator("json", schemas.json, handleZodError), async (context) => { const { grant_type, code, redirect_uri, client_id, client_secret } = - context.req.valid("form"); + context.req.valid("json"); switch (grant_type) { case "authorization_code": { diff --git a/server/api/objects/:id/index.ts b/server/api/objects/:id/index.ts index b50fe9f7..aa7bade0 100644 --- a/server/api/objects/:id/index.ts +++ b/server/api/objects/:id/index.ts @@ -1,9 +1,9 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import type { Entity } from "@lysand-org/federation/types"; import { and, eq, inArray, sql } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { type LikeType, likeToLysand } from "~/classes/functions/like"; import { db } from "~/drizzle/db"; diff --git a/server/api/users/:uuid/inbox/index.ts b/server/api/users/:uuid/inbox/index.ts index c3e4c7d6..6b92954d 100644 --- a/server/api/users/:uuid/inbox/index.ts +++ b/server/api/users/:uuid/inbox/index.ts @@ -1,5 +1,6 @@ import { applyConfig, debugRequest, handleZodError } from "@/api"; import { errorResponse, jsonResponse, response } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { getLogger } from "@logtape/logtape"; import { @@ -10,7 +11,6 @@ import { import type { Entity } from "@lysand-org/federation/types"; import type { SocketAddress } from "bun"; import { and, eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { matches } from "ip-matching"; import { z } from "zod"; import { type ValidationError, isValidationError } from "zod-validation-error"; diff --git a/server/api/users/:uuid/index.ts b/server/api/users/:uuid/index.ts index a52c0f46..10027eed 100644 --- a/server/api/users/:uuid/index.ts +++ b/server/api/users/:uuid/index.ts @@ -1,7 +1,7 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; -import type { Hono } from "hono"; import { z } from "zod"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/users/:uuid/outbox/index.ts b/server/api/users/:uuid/outbox/index.ts index e6e3ae99..73715547 100644 --- a/server/api/users/:uuid/outbox/index.ts +++ b/server/api/users/:uuid/outbox/index.ts @@ -1,8 +1,8 @@ import { applyConfig, handleZodError } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { and, count, eq, inArray } from "drizzle-orm"; -import type { Hono } from "hono"; import { z } from "zod"; import { db } from "~/drizzle/db"; import { Notes } from "~/drizzle/schema"; diff --git a/server/api/well-known/host-meta/index.ts b/server/api/well-known/host-meta/index.ts index 4b3c37c2..36754d77 100644 --- a/server/api/well-known/host-meta/index.ts +++ b/server/api/well-known/host-meta/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { xmlResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/well-known/jwks/index.ts b/server/api/well-known/jwks/index.ts index 5a0f0ab7..2b43ae81 100644 --- a/server/api/well-known/jwks/index.ts +++ b/server/api/well-known/jwks/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { exportJWK } from "jose"; import { config } from "~/packages/config-manager"; diff --git a/server/api/well-known/lysand.ts b/server/api/well-known/lysand.ts index f64f1447..cd783620 100644 --- a/server/api/well-known/lysand.ts +++ b/server/api/well-known/lysand.ts @@ -1,8 +1,8 @@ import { applyConfig } from "@/api"; import { urlToContentFormat } from "@/content_types"; import { jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import type { ServerMetadata } from "@lysand-org/federation/types"; -import type { Hono } from "hono"; import pkg from "~/package.json"; import { config } from "~/packages/config-manager"; diff --git a/server/api/well-known/nodeinfo/2.0/index.ts b/server/api/well-known/nodeinfo/2.0/index.ts index 69191b74..b539f79f 100644 --- a/server/api/well-known/nodeinfo/2.0/index.ts +++ b/server/api/well-known/nodeinfo/2.0/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import manifest from "~/package.json"; export const meta = applyConfig({ diff --git a/server/api/well-known/nodeinfo/index.ts b/server/api/well-known/nodeinfo/index.ts index d580f44c..ef6663fd 100644 --- a/server/api/well-known/nodeinfo/index.ts +++ b/server/api/well-known/nodeinfo/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { redirect } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/well-known/openid-configuration/index.ts b/server/api/well-known/openid-configuration/index.ts index 56115e97..33fcc98b 100644 --- a/server/api/well-known/openid-configuration/index.ts +++ b/server/api/well-known/openid-configuration/index.ts @@ -1,6 +1,6 @@ import { applyConfig } from "@/api"; import { jsonResponse } from "@/response"; -import type { Hono } from "hono"; +import type { Hono } from "@hono/hono"; import { config } from "~/packages/config-manager"; export const meta = applyConfig({ diff --git a/server/api/well-known/webfinger/index.ts b/server/api/well-known/webfinger/index.ts index 036c37ee..58022380 100644 --- a/server/api/well-known/webfinger/index.ts +++ b/server/api/well-known/webfinger/index.ts @@ -5,9 +5,9 @@ import { webfingerMention, } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; +import type { Hono } from "@hono/hono"; import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; -import type { Hono } from "hono"; import { lookup } from "mime-types"; import { z } from "zod"; import { Users } from "~/drizzle/schema"; diff --git a/tests/utils.ts b/tests/utils.ts index 31e0e331..3a30cb38 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -17,14 +17,16 @@ if (config.sonic.enabled) { await searchManager.connect(); } +const app = await appFactory(); + /** * This allows us to send a test request to the server even when it isnt running * @param req Request to send * @returns Response from the server */ -export async function sendTestRequest(req: Request): Promise { +export function sendTestRequest(req: Request): Promise { // return fetch(req); - return Promise.resolve((await appFactory()).fetch(req)); + return Promise.resolve(app.fetch(req)); } export function wrapRelativeUrl(url: string, baseUrl: string) { diff --git a/types/api.ts b/types/api.ts index 03f3e35b..5630dfef 100644 --- a/types/api.ts +++ b/types/api.ts @@ -1,5 +1,5 @@ -import type { Hono } from "hono"; -import type { RouterRoute } from "hono/types"; +import type { Hono } from "@hono/hono"; +import type { RouterRoute } from "@hono/hono/types"; import type { z } from "zod"; import type { RolePermissions } from "~/drizzle/schema"; diff --git a/utils/api.ts b/utils/api.ts index 6c339fc9..efc960d0 100644 --- a/utils/api.ts +++ b/utils/api.ts @@ -1,13 +1,13 @@ import { errorResponse } from "@/response"; +import type { Context } from "@hono/hono"; +import { createMiddleware } from "@hono/hono/factory"; +import type { StatusCode } from "@hono/hono/utils/http-status"; +import { validator } from "@hono/hono/validator"; import { getLogger } from "@logtape/logtape"; import { extractParams, verifySolution } from "altcha-lib"; import chalk from "chalk"; import { config } from "config-manager"; import { eq } from "drizzle-orm"; -import type { Context } from "hono"; -import { createMiddleware } from "hono/factory"; -import type { StatusCode } from "hono/utils/http-status"; -import { validator } from "hono/validator"; import { anyOf, caseInsensitive, @@ -110,7 +110,7 @@ export const handleZodError = ( result: | { success: true; data?: object } | { success: false; error: z.ZodError; data?: object }, - _context: Context, + _context: unknown, ) => { if (!result.success) { return errorResponse(fromZodError(result.error).message, 422); @@ -127,7 +127,8 @@ const returnContextError = ( context: Context, error: string, code?: StatusCode, -) => { + // @ts-expect-error The return type is too complex for TypeScript to work with, but it's fine since this isn't a library +): ReturnType => { const templateError = errorResponse(error, code); return context.json( @@ -197,7 +198,7 @@ const checkRouteNeedsAuth = ( export const checkRouteNeedsChallenge = async ( challengeData: ApiRouteMetadata["challenge"], context: Context, -) => { +): Promise> => { if (!challengeData) { return true; } @@ -357,12 +358,9 @@ export const setContextFormDataToObject = ( context: Context, setTo: object, ): Context => { - // @ts-expect-error HACK - context.req.bodyCache.formData = setTo; - context.req.parseBody = async () => - context.req.bodyCache.formData as FormData; - context.req.formData = async () => - context.req.bodyCache.formData as FormData; + context.req.bodyCache.json = setTo; + context.req.parseBody = async () => context.req.bodyCache.json; + context.req.json = async () => context.req.bodyCache.json; return context; }; @@ -382,6 +380,7 @@ export const jsonOrForm = () => { const parsed = await parseUrlEncoded(context); setContextFormDataToObject(context, parsed); + context.req.raw.headers.set("Content-Type", "application/json"); } else if (contentType?.includes("multipart/form-data")) { const { parsed, files } = await parseFormData(context); @@ -389,6 +388,10 @@ export const jsonOrForm = () => { ...parsed, ...Object.fromEntries(files), }); + context.req.raw.headers.set("Content-Type", "application/json"); + } else if (!contentType) { + setContextFormDataToObject(context, {}); + context.req.raw.headers.set("Content-Type", "application/json"); } await next(); diff --git a/utils/server.ts b/utils/server.ts index d32dd826..902f05e0 100644 --- a/utils/server.ts +++ b/utils/server.ts @@ -1,5 +1,5 @@ +import type { Hono } from "@hono/hono"; import type { Config } from "config-manager"; -import type { Hono } from "hono"; export const createServer = (config: Config, app: Hono) => Bun.serve({