From 621dd7e9d9b014b6920634803fc3836b0d46e5a1 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Mon, 30 Dec 2024 18:20:22 +0100 Subject: [PATCH] refactor(api): :recycle: Upgrade zod-openapi to 0.18.3 Needed to add "as const" to all middleware handlers :) --- api/api/v1/accounts/:id/block.ts | 2 +- api/api/v1/accounts/:id/follow.ts | 2 +- 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 +- .../v1/accounts/:id/roles/:role_id/index.ts | 4 ++-- 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 | 2 +- api/api/v1/accounts/id/index.ts | 2 +- api/api/v1/accounts/lookup/index.ts | 2 +- api/api/v1/accounts/relationships/index.ts | 2 +- api/api/v1/accounts/search/index.ts | 2 +- .../v1/accounts/update_credentials/index.ts | 2 +- .../v1/accounts/verify_credentials/index.ts | 2 +- api/api/v1/apps/verify_credentials/index.ts | 2 +- api/api/v1/blocks/index.ts | 2 +- api/api/v1/challenges/index.ts | 2 +- api/api/v1/custom_emojis/index.ts | 2 +- api/api/v1/emojis/:id/index.ts | 6 +++--- api/api/v1/emojis/index.ts | 2 +- 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/markers/index.ts | 4 ++-- api/api/v1/media/:id/index.ts | 4 ++-- 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/roles/:id/index.ts | 4 ++-- 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 | 6 +++--- 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.ts | 2 +- api/api/v1/timelines/home.ts | 2 +- api/api/v1/timelines/public.ts | 2 +- api/api/v2/filters/:id/index.ts | 6 +++--- api/api/v2/filters/index.ts | 4 ++-- api/api/v2/media/index.ts | 2 +- api/api/v2/search/index.ts | 2 +- bun.lockb | Bin 398304 -> 398288 bytes package.json | 2 +- packages/plugin-kit/plugin.ts | 2 +- plugins/openid/routes/authorize.ts | 2 +- plugins/openid/routes/jwks.ts | 2 +- plugins/openid/routes/oauth/callback.ts | 2 +- plugins/openid/routes/oauth/sso.ts | 2 +- plugins/openid/routes/sso/:id/index.ts | 4 ++-- plugins/openid/routes/sso/index.ts | 4 ++-- 74 files changed, 86 insertions(+), 86 deletions(-) diff --git a/api/api/v1/accounts/:id/block.ts b/api/api/v1/accounts/:id/block.ts index 66ba4711..6675db68 100644 --- a/api/api/v1/accounts/:id/block.ts +++ b/api/api/v1/accounts/:id/block.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/block", summary: "Block user", description: "Block a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Updated relationship", diff --git a/api/api/v1/accounts/:id/follow.ts b/api/api/v1/accounts/:id/follow.ts index 6164668c..5dfae186 100644 --- a/api/api/v1/accounts/:id/follow.ts +++ b/api/api/v1/accounts/:id/follow.ts @@ -46,7 +46,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/follow", summary: "Follow user", description: "Follow a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Updated relationship", diff --git a/api/api/v1/accounts/:id/followers.ts b/api/api/v1/accounts/:id/followers.ts index 0932c99a..a663647e 100644 --- a/api/api/v1/accounts/:id/followers.ts +++ b/api/api/v1/accounts/:id/followers.ts @@ -43,7 +43,7 @@ const route = createRoute({ summary: "Get account followers", description: "Gets an paginated list of accounts that follow the specified account", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, query: schemas.query, diff --git a/api/api/v1/accounts/:id/following.ts b/api/api/v1/accounts/:id/following.ts index 7d8b5da2..e0160e33 100644 --- a/api/api/v1/accounts/:id/following.ts +++ b/api/api/v1/accounts/:id/following.ts @@ -43,7 +43,7 @@ const route = createRoute({ summary: "Get account following", description: "Gets an paginated list of accounts that the specified account follows", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, query: schemas.query, diff --git a/api/api/v1/accounts/:id/index.ts b/api/api/v1/accounts/:id/index.ts index 360c6c26..ccbc1f4d 100644 --- a/api/api/v1/accounts/:id/index.ts +++ b/api/api/v1/accounts/:id/index.ts @@ -32,7 +32,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}", summary: "Get account data", description: "Gets the specified account data", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/mute.ts b/api/api/v1/accounts/:id/mute.ts index 4cf68d2c..d944a375 100644 --- a/api/api/v1/accounts/:id/mute.ts +++ b/api/api/v1/accounts/:id/mute.ts @@ -44,7 +44,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/mute", summary: "Mute user", description: "Mute a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, body: { diff --git a/api/api/v1/accounts/:id/note.ts b/api/api/v1/accounts/:id/note.ts index b2a7e225..e365ece5 100644 --- a/api/api/v1/accounts/:id/note.ts +++ b/api/api/v1/accounts/:id/note.ts @@ -38,7 +38,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/note", summary: "Set note", description: "Set a note on a user's profile, visible only to you", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, body: { diff --git a/api/api/v1/accounts/:id/pin.ts b/api/api/v1/accounts/:id/pin.ts index 12362e3f..2a5b09e4 100644 --- a/api/api/v1/accounts/:id/pin.ts +++ b/api/api/v1/accounts/:id/pin.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/pin", summary: "Pin user", description: "Pin a user to your profile", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/refetch.ts b/api/api/v1/accounts/:id/refetch.ts index 28220bcf..d99675fa 100644 --- a/api/api/v1/accounts/:id/refetch.ts +++ b/api/api/v1/accounts/:id/refetch.ts @@ -32,7 +32,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/refetch", summary: "Refetch user", description: "Refetch a user's profile from the remote server", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/remove_from_followers.ts b/api/api/v1/accounts/:id/remove_from_followers.ts index f6a774ba..5c00297b 100644 --- a/api/api/v1/accounts/:id/remove_from_followers.ts +++ b/api/api/v1/accounts/:id/remove_from_followers.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/remove_from_followers", summary: "Remove user from followers", description: "Remove a user from your followers", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, 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 824c456a..47287923 100644 --- a/api/api/v1/accounts/:id/roles/:role_id/index.ts +++ b/api/api/v1/accounts/:id/roles/:role_id/index.ts @@ -35,7 +35,7 @@ const routePost = createRoute({ method: "post", path: "/api/v1/accounts/{id}/roles/{role_id}", summary: "Assign role to user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, @@ -74,7 +74,7 @@ const routeDelete = createRoute({ method: "delete", path: "/api/v1/accounts/{id}/roles/{role_id}", summary: "Remove role from user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/roles/index.ts b/api/api/v1/accounts/:id/roles/index.ts index edbfcd5f..5bb84757 100644 --- a/api/api/v1/accounts/:id/roles/index.ts +++ b/api/api/v1/accounts/:id/roles/index.ts @@ -29,7 +29,7 @@ const route = createRoute({ method: "get", path: "/api/v1/accounts/{id}/roles", summary: "List user roles", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/statuses.ts b/api/api/v1/accounts/:id/statuses.ts index 1e489b7e..dba9d0cb 100644 --- a/api/api/v1/accounts/:id/statuses.ts +++ b/api/api/v1/accounts/:id/statuses.ts @@ -59,7 +59,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/statuses", summary: "Get account statuses", description: "Gets an paginated list of statuses by the specified account", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, query: schemas.query, diff --git a/api/api/v1/accounts/:id/unblock.ts b/api/api/v1/accounts/:id/unblock.ts index 252fdc7b..ca66872b 100644 --- a/api/api/v1/accounts/:id/unblock.ts +++ b/api/api/v1/accounts/:id/unblock.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/unblock", summary: "Unblock user", description: "Unblock a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/unfollow.ts b/api/api/v1/accounts/:id/unfollow.ts index 999808ba..67ad6c8d 100644 --- a/api/api/v1/accounts/:id/unfollow.ts +++ b/api/api/v1/accounts/:id/unfollow.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/unfollow", summary: "Unfollow user", description: "Unfollow a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/unmute.ts b/api/api/v1/accounts/:id/unmute.ts index c8f82f94..3790fc3e 100644 --- a/api/api/v1/accounts/:id/unmute.ts +++ b/api/api/v1/accounts/:id/unmute.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/unmute", summary: "Unmute user", description: "Unmute a user", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/:id/unpin.ts b/api/api/v1/accounts/:id/unpin.ts index 2e3b38cc..5ca4585f 100644 --- a/api/api/v1/accounts/:id/unpin.ts +++ b/api/api/v1/accounts/:id/unpin.ts @@ -35,7 +35,7 @@ const route = createRoute({ path: "/api/v1/accounts/{id}/unpin", summary: "Unpin user", description: "Unpin a user from your profile", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/accounts/familiar_followers/index.ts b/api/api/v1/accounts/familiar_followers/index.ts index c77cb782..f162340c 100644 --- a/api/api/v1/accounts/familiar_followers/index.ts +++ b/api/api/v1/accounts/familiar_followers/index.ts @@ -39,7 +39,7 @@ const route = createRoute({ summary: "Get familiar followers", description: "Obtain a list of all accounts that follow a given account, filtered for accounts you follow.", - middleware: [auth(meta.auth, meta.permissions), qsQuery()], + middleware: [auth(meta.auth, meta.permissions), qsQuery()] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/accounts/id/index.ts b/api/api/v1/accounts/id/index.ts index ca58bbb0..cf6ec99f 100644 --- a/api/api/v1/accounts/id/index.ts +++ b/api/api/v1/accounts/id/index.ts @@ -33,7 +33,7 @@ const route = createRoute({ path: "/api/v1/accounts/id", summary: "Get account by username", description: "Get an account by username", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/accounts/lookup/index.ts b/api/api/v1/accounts/lookup/index.ts index 6a5abd73..b3e3d98e 100644 --- a/api/api/v1/accounts/lookup/index.ts +++ b/api/api/v1/accounts/lookup/index.ts @@ -34,7 +34,7 @@ const route = createRoute({ path: "/api/v1/accounts/lookup", summary: "Lookup account", description: "Lookup an account by acct", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/accounts/relationships/index.ts b/api/api/v1/accounts/relationships/index.ts index 5798f602..31a657fd 100644 --- a/api/api/v1/accounts/relationships/index.ts +++ b/api/api/v1/accounts/relationships/index.ts @@ -32,7 +32,7 @@ const route = createRoute({ path: "/api/v1/accounts/relationships", summary: "Get relationships", description: "Get relationships by account ID", - middleware: [auth(meta.auth, meta.permissions), qsQuery()], + middleware: [auth(meta.auth, meta.permissions), qsQuery()] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/accounts/search/index.ts b/api/api/v1/accounts/search/index.ts index 78b213ab..ea69afdd 100644 --- a/api/api/v1/accounts/search/index.ts +++ b/api/api/v1/accounts/search/index.ts @@ -50,7 +50,7 @@ export const route = createRoute({ path: "/api/v1/accounts/search", summary: "Search accounts", description: "Search for accounts", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/accounts/update_credentials/index.ts b/api/api/v1/accounts/update_credentials/index.ts index 06b10cce..ede5a5e5 100644 --- a/api/api/v1/accounts/update_credentials/index.ts +++ b/api/api/v1/accounts/update_credentials/index.ts @@ -151,7 +151,7 @@ const route = createRoute({ path: "/api/v1/accounts/update_credentials", summary: "Update credentials", description: "Update user credentials", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { body: { content: { diff --git a/api/api/v1/accounts/verify_credentials/index.ts b/api/api/v1/accounts/verify_credentials/index.ts index e21e7e15..1baa2660 100644 --- a/api/api/v1/accounts/verify_credentials/index.ts +++ b/api/api/v1/accounts/verify_credentials/index.ts @@ -21,7 +21,7 @@ const route = createRoute({ path: "/api/v1/accounts/verify_credentials", summary: "Verify credentials", description: "Get your own account information", - middleware: [auth(meta.auth)], + middleware: [auth(meta.auth)] as const, responses: { 200: { description: "Account", diff --git a/api/api/v1/apps/verify_credentials/index.ts b/api/api/v1/apps/verify_credentials/index.ts index a7804962..08fd3203 100644 --- a/api/api/v1/apps/verify_credentials/index.ts +++ b/api/api/v1/apps/verify_credentials/index.ts @@ -24,7 +24,7 @@ const route = createRoute({ path: "/api/v1/apps/verify_credentials", summary: "Verify credentials", description: "Get your own application information", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Application", diff --git a/api/api/v1/blocks/index.ts b/api/api/v1/blocks/index.ts index f860b1cc..19bf0d34 100644 --- a/api/api/v1/blocks/index.ts +++ b/api/api/v1/blocks/index.ts @@ -36,7 +36,7 @@ const route = createRoute({ path: "/api/v1/blocks", summary: "Get blocks", description: "Get users you have blocked", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/challenges/index.ts b/api/api/v1/challenges/index.ts index 5e4145de..338232d4 100644 --- a/api/api/v1/challenges/index.ts +++ b/api/api/v1/challenges/index.ts @@ -24,7 +24,7 @@ const route = createRoute({ path: "/api/v1/challenges", summary: "Generate a challenge", description: "Generate a challenge to solve", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Challenge", diff --git a/api/api/v1/custom_emojis/index.ts b/api/api/v1/custom_emojis/index.ts index 6457fec9..f382657c 100644 --- a/api/api/v1/custom_emojis/index.ts +++ b/api/api/v1/custom_emojis/index.ts @@ -23,7 +23,7 @@ const route = createRoute({ path: "/api/v1/custom_emojis", summary: "Get custom emojis", description: "Get custom emojis", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Emojis", diff --git a/api/api/v1/emojis/:id/index.ts b/api/api/v1/emojis/:id/index.ts index 0c2a8ceb..542a1a3c 100644 --- a/api/api/v1/emojis/:id/index.ts +++ b/api/api/v1/emojis/:id/index.ts @@ -71,7 +71,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v1/emojis/{id}", summary: "Get emoji data", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, @@ -115,7 +115,7 @@ const routePatch = createRoute({ method: "patch", path: "/api/v1/emojis/{id}", summary: "Modify emoji", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { params: schemas.param, body: { @@ -180,7 +180,7 @@ const routeDelete = createRoute({ method: "delete", path: "/api/v1/emojis/{id}", summary: "Delete emoji", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/emojis/index.ts b/api/api/v1/emojis/index.ts index d2b7e73a..becafafa 100644 --- a/api/api/v1/emojis/index.ts +++ b/api/api/v1/emojis/index.ts @@ -67,7 +67,7 @@ const route = createRoute({ path: "/api/v1/emojis", summary: "Upload emoji", description: "Upload an emoji", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { body: { content: { diff --git a/api/api/v1/favourites/index.ts b/api/api/v1/favourites/index.ts index fae94f51..34656c69 100644 --- a/api/api/v1/favourites/index.ts +++ b/api/api/v1/favourites/index.ts @@ -34,7 +34,7 @@ const route = createRoute({ method: "get", path: "/api/v1/favourites", summary: "Get favourites", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/follow_requests/:account_id/authorize.ts b/api/api/v1/follow_requests/:account_id/authorize.ts index 54b11342..fb1d0326 100644 --- a/api/api/v1/follow_requests/:account_id/authorize.ts +++ b/api/api/v1/follow_requests/:account_id/authorize.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "post", path: "/api/v1/follow_requests/{account_id}/authorize", summary: "Authorize follow request", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/follow_requests/:account_id/reject.ts b/api/api/v1/follow_requests/:account_id/reject.ts index 326c526c..c27adabf 100644 --- a/api/api/v1/follow_requests/:account_id/reject.ts +++ b/api/api/v1/follow_requests/:account_id/reject.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "post", path: "/api/v1/follow_requests/{account_id}/reject", summary: "Reject follow request", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/follow_requests/index.ts b/api/api/v1/follow_requests/index.ts index 5887a232..58c44067 100644 --- a/api/api/v1/follow_requests/index.ts +++ b/api/api/v1/follow_requests/index.ts @@ -34,7 +34,7 @@ const route = createRoute({ method: "get", path: "/api/v1/follow_requests", summary: "Get follow requests", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/markers/index.ts b/api/api/v1/markers/index.ts index 0549f2d6..f8ec84d3 100644 --- a/api/api/v1/markers/index.ts +++ b/api/api/v1/markers/index.ts @@ -48,7 +48,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v1/markers", summary: "Get markers", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: z.object({ "timeline[]": z @@ -82,7 +82,7 @@ const routePost = createRoute({ method: "post", path: "/api/v1/markers", summary: "Update markers", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: z.object({ "home[last_read_id]": z.string().regex(idValidator).optional(), diff --git a/api/api/v1/media/:id/index.ts b/api/api/v1/media/:id/index.ts index 4d916319..a0a79d1f 100644 --- a/api/api/v1/media/:id/index.ts +++ b/api/api/v1/media/:id/index.ts @@ -41,7 +41,7 @@ const routePut = createRoute({ method: "put", path: "/api/v1/media/{id}", summary: "Update media", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, body: { @@ -84,7 +84,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v1/media/{id}", summary: "Get media", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/media/index.ts b/api/api/v1/media/index.ts index 05634f28..3124e590 100644 --- a/api/api/v1/media/index.ts +++ b/api/api/v1/media/index.ts @@ -40,7 +40,7 @@ const route = createRoute({ method: "post", path: "/api/v1/media", summary: "Upload media", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { body: { content: { diff --git a/api/api/v1/mutes/index.ts b/api/api/v1/mutes/index.ts index 2cbe34e3..d97a9e71 100644 --- a/api/api/v1/mutes/index.ts +++ b/api/api/v1/mutes/index.ts @@ -35,7 +35,7 @@ const route = createRoute({ method: "get", path: "/api/v1/mutes", summary: "Get muted users", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/notifications/:id/dismiss.ts b/api/api/v1/notifications/:id/dismiss.ts index 7f007c07..9a0a0690 100644 --- a/api/api/v1/notifications/:id/dismiss.ts +++ b/api/api/v1/notifications/:id/dismiss.ts @@ -31,7 +31,7 @@ const route = createRoute({ method: "post", path: "/api/v1/notifications/{id}/dismiss", summary: "Dismiss notification", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/notifications/:id/index.ts b/api/api/v1/notifications/:id/index.ts index 37ca28ec..393f5d36 100644 --- a/api/api/v1/notifications/:id/index.ts +++ b/api/api/v1/notifications/:id/index.ts @@ -31,7 +31,7 @@ const route = createRoute({ method: "get", path: "/api/v1/notifications/{id}", summary: "Get notification", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/notifications/clear/index.ts b/api/api/v1/notifications/clear/index.ts index de98ddb5..74859814 100644 --- a/api/api/v1/notifications/clear/index.ts +++ b/api/api/v1/notifications/clear/index.ts @@ -23,7 +23,7 @@ const route = createRoute({ method: "post", path: "/api/v1/notifications/clear", summary: "Clear notifications", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "Notifications cleared", diff --git a/api/api/v1/notifications/destroy_multiple/index.ts b/api/api/v1/notifications/destroy_multiple/index.ts index 5d938a03..23511f0f 100644 --- a/api/api/v1/notifications/destroy_multiple/index.ts +++ b/api/api/v1/notifications/destroy_multiple/index.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "delete", path: "/api/v1/notifications/destroy_multiple", summary: "Dismiss multiple notifications", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/notifications/index.ts b/api/api/v1/notifications/index.ts index 58b8fd69..958e28c2 100644 --- a/api/api/v1/notifications/index.ts +++ b/api/api/v1/notifications/index.ts @@ -94,7 +94,7 @@ const route = createRoute({ method: "get", path: "/api/v1/notifications", summary: "Get notifications", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/profile/avatar.ts b/api/api/v1/profile/avatar.ts index 6b583f8a..01de9932 100644 --- a/api/api/v1/profile/avatar.ts +++ b/api/api/v1/profile/avatar.ts @@ -23,7 +23,7 @@ const route = createRoute({ method: "delete", path: "/api/v1/profile/avatar", summary: "Delete avatar", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "User", diff --git a/api/api/v1/profile/header.ts b/api/api/v1/profile/header.ts index 9ad0c616..b8c7b805 100644 --- a/api/api/v1/profile/header.ts +++ b/api/api/v1/profile/header.ts @@ -23,7 +23,7 @@ const route = createRoute({ method: "delete", path: "/api/v1/profile/header", summary: "Delete header", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, responses: { 200: { description: "User", diff --git a/api/api/v1/roles/:id/index.ts b/api/api/v1/roles/:id/index.ts index 19d741fb..ccf017fb 100644 --- a/api/api/v1/roles/:id/index.ts +++ b/api/api/v1/roles/:id/index.ts @@ -70,7 +70,7 @@ const routePatch = createRoute({ method: "patch", path: "/api/v1/roles/{id}", summary: "Update role data", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, body: { @@ -116,7 +116,7 @@ const routeDelete = createRoute({ method: "delete", path: "/api/v1/roles/{id}", summary: "Delete role", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/roles/index.ts b/api/api/v1/roles/index.ts index 592bce36..d918d8da 100644 --- a/api/api/v1/roles/index.ts +++ b/api/api/v1/roles/index.ts @@ -54,7 +54,7 @@ const routePost = createRoute({ method: "post", path: "/api/v1/roles", summary: "Create a new role", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { body: { content: { diff --git a/api/api/v1/statuses/:id/context.ts b/api/api/v1/statuses/:id/context.ts index ffd064be..0cbf9b5f 100644 --- a/api/api/v1/statuses/:id/context.ts +++ b/api/api/v1/statuses/:id/context.ts @@ -29,7 +29,7 @@ export const schemas = { const route = createRoute({ method: "get", path: "/api/v1/statuses/{id}/context", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, summary: "Get status context", request: { params: schemas.param, diff --git a/api/api/v1/statuses/:id/favourite.ts b/api/api/v1/statuses/:id/favourite.ts index c0fd1f38..0d23d69a 100644 --- a/api/api/v1/statuses/:id/favourite.ts +++ b/api/api/v1/statuses/:id/favourite.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/favourite", summary: "Favourite a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/:id/favourited_by.ts b/api/api/v1/statuses/:id/favourited_by.ts index 70300645..df33ce48 100644 --- a/api/api/v1/statuses/:id/favourited_by.ts +++ b/api/api/v1/statuses/:id/favourited_by.ts @@ -37,7 +37,7 @@ const route = createRoute({ method: "get", path: "/api/v1/statuses/{id}/favourited_by", summary: "Get users who favourited a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, query: schemas.query, diff --git a/api/api/v1/statuses/:id/index.ts b/api/api/v1/statuses/:id/index.ts index 8bd4e4fa..6a8d3850 100644 --- a/api/api/v1/statuses/:id/index.ts +++ b/api/api/v1/statuses/:id/index.ts @@ -92,7 +92,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v1/statuses/{id}", summary: "Get status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, @@ -120,7 +120,7 @@ const routeDelete = createRoute({ method: "delete", path: "/api/v1/statuses/{id}", summary: "Delete a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, @@ -156,7 +156,7 @@ const routePut = createRoute({ method: "put", path: "/api/v1/statuses/{id}", summary: "Update a status", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { params: schemas.param, body: { diff --git a/api/api/v1/statuses/:id/pin.ts b/api/api/v1/statuses/:id/pin.ts index 1c6639ba..c0866978 100644 --- a/api/api/v1/statuses/:id/pin.ts +++ b/api/api/v1/statuses/:id/pin.ts @@ -31,7 +31,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/pin", summary: "Pin a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/:id/reblog.ts b/api/api/v1/statuses/:id/reblog.ts index 7aef7578..9f0c158d 100644 --- a/api/api/v1/statuses/:id/reblog.ts +++ b/api/api/v1/statuses/:id/reblog.ts @@ -34,7 +34,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/reblog", summary: "Reblog a status", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { params: schemas.param, body: { diff --git a/api/api/v1/statuses/:id/reblogged_by.ts b/api/api/v1/statuses/:id/reblogged_by.ts index eb59b13f..a0fe0090 100644 --- a/api/api/v1/statuses/:id/reblogged_by.ts +++ b/api/api/v1/statuses/:id/reblogged_by.ts @@ -37,7 +37,7 @@ const route = createRoute({ method: "get", path: "/api/v1/statuses/{id}/reblogged_by", summary: "Get users who reblogged a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, query: schemas.query, diff --git a/api/api/v1/statuses/:id/source.ts b/api/api/v1/statuses/:id/source.ts index c5959a44..1d895e01 100644 --- a/api/api/v1/statuses/:id/source.ts +++ b/api/api/v1/statuses/:id/source.ts @@ -31,7 +31,7 @@ const route = createRoute({ method: "get", path: "/api/v1/statuses/{id}/source", summary: "Get status source", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/:id/unfavourite.ts b/api/api/v1/statuses/:id/unfavourite.ts index 1b280da4..a345e1be 100644 --- a/api/api/v1/statuses/:id/unfavourite.ts +++ b/api/api/v1/statuses/:id/unfavourite.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/unfavourite", summary: "Unfavourite a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/:id/unpin.ts b/api/api/v1/statuses/:id/unpin.ts index f3065c8d..351a485a 100644 --- a/api/api/v1/statuses/:id/unpin.ts +++ b/api/api/v1/statuses/:id/unpin.ts @@ -30,7 +30,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/unpin", summary: "Unpin a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/:id/unreblog.ts b/api/api/v1/statuses/:id/unreblog.ts index a76ff92f..1f9461d9 100644 --- a/api/api/v1/statuses/:id/unreblog.ts +++ b/api/api/v1/statuses/:id/unreblog.ts @@ -31,7 +31,7 @@ const route = createRoute({ method: "post", path: "/api/v1/statuses/{id}/unreblog", summary: "Unreblog a status", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v1/statuses/index.ts b/api/api/v1/statuses/index.ts index 36230a65..a73c63da 100644 --- a/api/api/v1/statuses/index.ts +++ b/api/api/v1/statuses/index.ts @@ -103,7 +103,7 @@ export const schemas = { const route = createRoute({ method: "post", path: "/api/v1/statuses", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, summary: "Post a new status", request: { body: { diff --git a/api/api/v1/timelines/home.ts b/api/api/v1/timelines/home.ts index bfc145a0..aca5d277 100644 --- a/api/api/v1/timelines/home.ts +++ b/api/api/v1/timelines/home.ts @@ -39,7 +39,7 @@ const route = createRoute({ method: "get", path: "/api/v1/timelines/home", summary: "Get home timeline", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v1/timelines/public.ts b/api/api/v1/timelines/public.ts index acf326e3..cbaad828 100644 --- a/api/api/v1/timelines/public.ts +++ b/api/api/v1/timelines/public.ts @@ -49,7 +49,7 @@ const route = createRoute({ method: "get", path: "/api/v1/timelines/public", summary: "Get public timeline", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/api/api/v2/filters/:id/index.ts b/api/api/v2/filters/:id/index.ts index 84e4d2a7..88bcbe11 100644 --- a/api/api/v2/filters/:id/index.ts +++ b/api/api/v2/filters/:id/index.ts @@ -89,7 +89,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v2/filters/{id}", summary: "Get filter", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, @@ -125,7 +125,7 @@ const routePut = createRoute({ method: "put", path: "/api/v2/filters/{id}", summary: "Update filter", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { params: schemas.param, body: { @@ -168,7 +168,7 @@ const routeDelete = createRoute({ method: "delete", path: "/api/v2/filters/{id}", summary: "Delete filter", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { params: schemas.param, }, diff --git a/api/api/v2/filters/index.ts b/api/api/v2/filters/index.ts index f94a12ea..6c59536b 100644 --- a/api/api/v2/filters/index.ts +++ b/api/api/v2/filters/index.ts @@ -77,7 +77,7 @@ const routeGet = createRoute({ method: "get", path: "/api/v2/filters", summary: "Get filters", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, responses: { 200: { description: "Filters", @@ -102,7 +102,7 @@ const routePost = createRoute({ method: "post", path: "/api/v2/filters", summary: "Create filter", - middleware: [auth(meta.auth, meta.permissions), jsonOrForm()], + middleware: [auth(meta.auth, meta.permissions), jsonOrForm()] as const, request: { body: { content: { diff --git a/api/api/v2/media/index.ts b/api/api/v2/media/index.ts index 54fea3c3..d7251dc6 100644 --- a/api/api/v2/media/index.ts +++ b/api/api/v2/media/index.ts @@ -40,7 +40,7 @@ const route = createRoute({ method: "post", path: "/api/v2/media", summary: "Upload media", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { body: { content: { diff --git a/api/api/v2/search/index.ts b/api/api/v2/search/index.ts index 765b9105..d38f1fcf 100644 --- a/api/api/v2/search/index.ts +++ b/api/api/v2/search/index.ts @@ -52,7 +52,7 @@ const route = createRoute({ method: "get", path: "/api/v2/search", summary: "Instance database search", - middleware: [auth(meta.auth, meta.permissions)], + middleware: [auth(meta.auth, meta.permissions)] as const, request: { query: schemas.query, }, diff --git a/bun.lockb b/bun.lockb index 652e28283f3aaef8d5c106cb801271d6514dca6a..2967698678bee1401e053db7faef8096aa292314 100755 GIT binary patch delta 40304 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

f2C@h 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 { public constructor(private configSchema: ConfigSchema) {} - public get middleware(): MiddlewareHandler { + public get middleware(): MiddlewareHandler> { // Middleware that adds the plugin's configuration to the request object return createMiddleware>( async (context, next) => { diff --git a/plugins/openid/routes/authorize.ts b/plugins/openid/routes/authorize.ts index 6e15419c..ce3006d3 100644 --- a/plugins/openid/routes/authorize.ts +++ b/plugins/openid/routes/authorize.ts @@ -75,7 +75,7 @@ export default (plugin: PluginType): void => }), jsonOrForm(), plugin.middleware, - ], + ] as const, responses: { 302: { description: "Redirect to the application", diff --git a/plugins/openid/routes/jwks.ts b/plugins/openid/routes/jwks.ts index ccec05a6..c136bb68 100644 --- a/plugins/openid/routes/jwks.ts +++ b/plugins/openid/routes/jwks.ts @@ -37,7 +37,7 @@ export default (plugin: PluginType): void => { required: false, }), plugin.middleware, - ], + ] as const, }), async (context) => { const jwk = await exportJWK( diff --git a/plugins/openid/routes/oauth/callback.ts b/plugins/openid/routes/oauth/callback.ts index 26e8c301..e6e34fc1 100644 --- a/plugins/openid/routes/oauth/callback.ts +++ b/plugins/openid/routes/oauth/callback.ts @@ -34,7 +34,7 @@ export default (plugin: PluginType): void => { summary: "SSO callback", description: "After the user has authenticated to an external OpenID provider, they are redirected here to complete the OAuth flow and get a code", - middleware: [plugin.middleware], + middleware: [plugin.middleware] as const, request: { query: schemas.query, params: schemas.param, diff --git a/plugins/openid/routes/oauth/sso.ts b/plugins/openid/routes/oauth/sso.ts index 54180e9c..4bd6912b 100644 --- a/plugins/openid/routes/oauth/sso.ts +++ b/plugins/openid/routes/oauth/sso.ts @@ -30,7 +30,7 @@ export default (plugin: PluginType): void => { request: { query: schemas.query, }, - middleware: [plugin.middleware], + middleware: [plugin.middleware] as const, responses: { 302: { description: diff --git a/plugins/openid/routes/sso/:id/index.ts b/plugins/openid/routes/sso/:id/index.ts index 64c4c395..bdc45f81 100644 --- a/plugins/openid/routes/sso/:id/index.ts +++ b/plugins/openid/routes/sso/:id/index.ts @@ -25,7 +25,7 @@ export default (plugin: PluginType): void => { }, ), plugin.middleware, - ], + ] as const, request: { params: z.object({ id: z.string(), @@ -124,7 +124,7 @@ export default (plugin: PluginType): void => { }, ), plugin.middleware, - ], + ] as const, request: { params: z.object({ id: z.string(), diff --git a/plugins/openid/routes/sso/index.ts b/plugins/openid/routes/sso/index.ts index 6a1a44a8..2206b209 100644 --- a/plugins/openid/routes/sso/index.ts +++ b/plugins/openid/routes/sso/index.ts @@ -28,7 +28,7 @@ export default (plugin: PluginType): void => { }, ), plugin.middleware, - ], + ] as const, responses: { 200: { description: "Linked accounts", @@ -91,7 +91,7 @@ export default (plugin: PluginType): void => { }, ), plugin.middleware, - ], + ] as const, request: { body: { content: {