From 05f9d5d446e8c6c0841a64f65bb3167e063af430 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Thu, 19 Jun 2025 13:51:32 -0400 Subject: [PATCH] await more promises to improve stack traces --- .../backend/src/core/AnnouncementService.ts | 4 +-- packages/backend/src/core/AntennaService.ts | 2 +- .../src/core/AvatarDecorationService.ts | 2 +- packages/backend/src/core/ChatService.ts | 4 +-- .../src/core/ImageProcessingService.ts | 6 ++--- .../backend/src/core/NotificationService.ts | 4 +-- packages/backend/src/core/RoleService.ts | 2 +- packages/backend/src/core/S3Service.ts | 2 +- packages/backend/src/core/SearchService.ts | 4 +-- packages/backend/src/core/SponsorsService.ts | 4 +-- .../backend/src/core/UserSearchService.ts | 2 +- packages/backend/src/core/UserService.ts | 2 +- .../backend/src/core/UserWebhookService.ts | 2 +- .../src/core/activitypub/JsonLdService.ts | 4 +-- .../activitypub/models/ApPersonService.ts | 5 ++-- .../core/entities/BlockingEntityService.ts | 3 ++- .../src/core/entities/ChatEntityService.ts | 12 ++++----- .../src/core/entities/ClipEntityService.ts | 3 ++- .../core/entities/DriveFileEntityService.ts | 2 ++ .../src/core/entities/EmojiEntityService.ts | 2 +- .../src/core/entities/FlashEntityService.ts | 2 +- .../entities/FollowRequestEntityService.ts | 2 +- .../core/entities/FollowingEntityService.ts | 3 ++- .../core/entities/GalleryPostEntityService.ts | 3 ++- .../core/entities/InviteCodeEntityService.ts | 2 +- .../entities/ModerationLogEntityService.ts | 3 ++- .../src/core/entities/MutingEntityService.ts | 3 ++- .../src/core/entities/NoteEntityService.ts | 1 + .../entities/NoteReactionEntityService.ts | 2 +- .../src/core/entities/PageEntityService.ts | 5 ++-- .../entities/RenoteMutingEntityService.ts | 3 ++- .../src/core/entities/UserEntityService.ts | 9 ++++--- .../core/entities/UserListEntityService.ts | 2 +- .../processors/ImportNotesProcessorService.ts | 4 +-- .../backend/src/server/api/ApiCallService.ts | 25 +++++++++++-------- .../src/server/api/ApiServerService.ts | 2 +- .../src/server/api/SigninApiService.ts | 4 +-- .../notification-recipient/create.ts | 2 +- .../notification-recipient/list.ts | 2 +- .../notification-recipient/show.ts | 2 +- .../notification-recipient/update.ts | 2 +- .../api/endpoints/admin/captcha/current.ts | 2 +- .../admin/delete-all-files-of-a-user.ts | 2 +- .../api/endpoints/admin/drive/cleanup.ts | 2 +- .../server/api/endpoints/admin/emoji/add.ts | 2 +- .../server/api/endpoints/admin/emoji/copy.ts | 2 +- .../api/endpoints/admin/emoji/list-remote.ts | 2 +- .../server/api/endpoints/admin/emoji/list.ts | 2 +- .../admin/federation/delete-all-files.ts | 2 +- .../refresh-remote-instance-metadata.ts | 2 +- .../admin/federation/remove-all-following.ts | 2 +- .../server/api/endpoints/admin/queue/clear.ts | 4 +-- .../server/api/endpoints/admin/queue/jobs.ts | 2 +- .../api/endpoints/admin/queue/promote-jobs.ts | 4 +-- .../api/endpoints/admin/queue/queue-stats.ts | 2 +- .../api/endpoints/admin/queue/queues.ts | 2 +- .../api/endpoints/admin/queue/remove-job.ts | 2 +- .../api/endpoints/admin/queue/retry-job.ts | 2 +- .../api/endpoints/admin/queue/show-job.ts | 2 +- .../endpoints/admin/system-webhook/create.ts | 2 +- .../endpoints/admin/system-webhook/list.ts | 2 +- .../endpoints/admin/system-webhook/show.ts | 2 +- .../endpoints/admin/system-webhook/update.ts | 2 +- .../src/server/api/endpoints/announcements.ts | 2 +- .../api/endpoints/auth/session/userkey.ts | 2 +- .../api/endpoints/chat/messages/show.ts | 2 +- .../endpoints/chat/rooms/invitations/inbox.ts | 2 +- .../chat/rooms/invitations/outbox.ts | 2 +- .../api/endpoints/chat/rooms/joining.ts | 2 +- .../api/endpoints/chat/rooms/members.ts | 2 +- .../server/api/endpoints/chat/rooms/owned.ts | 2 +- .../server/api/endpoints/chat/rooms/show.ts | 2 +- .../server/api/endpoints/chat/rooms/update.ts | 2 +- .../api/endpoints/clips/my-favorites.ts | 2 +- .../api/endpoints/drive/folders/update.ts | 2 +- .../backend/src/server/api/endpoints/emoji.ts | 2 +- .../api/endpoints/export-custom-emojis.ts | 2 +- .../api/endpoints/federation/followers.ts | 2 +- .../api/endpoints/federation/following.ts | 2 +- .../server/api/endpoints/flash/my-likes.ts | 2 +- .../src/server/api/endpoints/hashtags/list.ts | 2 +- .../server/api/endpoints/i/export-antennas.ts | 2 +- .../server/api/endpoints/i/export-blocking.ts | 2 +- .../server/api/endpoints/i/export-clips.ts | 2 +- .../src/server/api/endpoints/i/export-data.ts | 2 +- .../api/endpoints/i/export-favorites.ts | 2 +- .../api/endpoints/i/export-following.ts | 2 +- .../src/server/api/endpoints/i/export-mute.ts | 2 +- .../server/api/endpoints/i/export-notes.ts | 2 +- .../api/endpoints/i/export-user-lists.ts | 2 +- .../src/server/api/endpoints/i/page-likes.ts | 2 +- .../api/endpoints/notes/schedule/list.ts | 2 +- .../api/endpoints/notifications/flush.ts | 2 +- .../notifications/mark-all-as-read.ts | 2 +- .../server/api/endpoints/reset-password.ts | 2 +- .../endpoints/users/lists/get-memberships.ts | 2 +- .../server/api/mastodon/MastodonConverters.ts | 2 +- 97 files changed, 143 insertions(+), 127 deletions(-) diff --git a/packages/backend/src/core/AnnouncementService.ts b/packages/backend/src/core/AnnouncementService.ts index 54496f9922..48c012da0f 100644 --- a/packages/backend/src/core/AnnouncementService.ts +++ b/packages/backend/src/core/AnnouncementService.ts @@ -218,9 +218,9 @@ export class AnnouncementService { announcementId: announcement.id, userId: me.id, }); - return this.announcementEntityService.pack({ ...announcement, isRead: read !== null }, me); + return await this.announcementEntityService.pack({ ...announcement, isRead: read !== null }, me); } else { - return this.announcementEntityService.pack(announcement, null); + return await this.announcementEntityService.pack(announcement, null); } } diff --git a/packages/backend/src/core/AntennaService.ts b/packages/backend/src/core/AntennaService.ts index 660c97dd6a..cc4b7dd719 100644 --- a/packages/backend/src/core/AntennaService.ts +++ b/packages/backend/src/core/AntennaService.ts @@ -107,7 +107,7 @@ export class AntennaService implements OnApplicationShutdown { this.globalEventService.publishAntennaStream(antenna.id, 'note', note); } - redisPipeline.exec(); + await redisPipeline.exec(); } // NOTE: フォローしているユーザーのノート、リストのユーザーのノート、グループのユーザーのノート指定はパフォーマンス上の理由で無効になっている diff --git a/packages/backend/src/core/AvatarDecorationService.ts b/packages/backend/src/core/AvatarDecorationService.ts index aedb1d6a80..0a586789f1 100644 --- a/packages/backend/src/core/AvatarDecorationService.ts +++ b/packages/backend/src/core/AvatarDecorationService.ts @@ -109,7 +109,7 @@ export class AvatarDecorationService implements OnApplicationShutdown { if (noCache) { this.cache.delete(); } - return this.cache.fetch(() => this.avatarDecorationsRepository.find()); + return await this.cache.fetch(() => this.avatarDecorationsRepository.find()); } @bindThis diff --git a/packages/backend/src/core/ChatService.ts b/packages/backend/src/core/ChatService.ts index cdecd41726..9132c166f9 100644 --- a/packages/backend/src/core/ChatService.ts +++ b/packages/backend/src/core/ChatService.ts @@ -605,12 +605,12 @@ export class ChatService { @bindThis public async findMyRoomById(ownerId: MiUser['id'], roomId: MiChatRoom['id']) { - return this.chatRoomsRepository.findOneBy({ id: roomId, ownerId: ownerId }); + return await this.chatRoomsRepository.findOneBy({ id: roomId, ownerId: ownerId }); } @bindThis public async findRoomById(roomId: MiChatRoom['id']) { - return this.chatRoomsRepository.findOne({ where: { id: roomId }, relations: ['owner'] }); + return await this.chatRoomsRepository.findOne({ where: { id: roomId }, relations: ['owner'] }); } @bindThis diff --git a/packages/backend/src/core/ImageProcessingService.ts b/packages/backend/src/core/ImageProcessingService.ts index 6f60475442..d042cf1f30 100644 --- a/packages/backend/src/core/ImageProcessingService.ts +++ b/packages/backend/src/core/ImageProcessingService.ts @@ -58,7 +58,7 @@ export class ImageProcessingService { */ @bindThis public async convertToWebp(path: string, width: number, height: number, options: sharp.WebpOptions = webpDefault): Promise { - return this.convertSharpToWebp(sharp(path), width, height, options); + return await this.convertSharpToWebp(sharp(path), width, height, options); } @bindThis @@ -100,7 +100,7 @@ export class ImageProcessingService { */ @bindThis public async convertToAvif(path: string, width: number, height: number, options: sharp.AvifOptions = avifDefault): Promise { - return this.convertSharpToAvif(sharp(path), width, height, options); + return await this.convertSharpToAvif(sharp(path), width, height, options); } @bindThis @@ -142,7 +142,7 @@ export class ImageProcessingService { */ @bindThis public async convertToPng(path: string, width: number, height: number): Promise { - return this.convertSharpToPng(sharp(path), width, height); + return await this.convertSharpToPng(sharp(path), width, height); } @bindThis diff --git a/packages/backend/src/core/NotificationService.ts b/packages/backend/src/core/NotificationService.ts index 9180dfa418..63d2011441 100644 --- a/packages/backend/src/core/NotificationService.ts +++ b/packages/backend/src/core/NotificationService.ts @@ -72,9 +72,9 @@ export class NotificationService implements OnApplicationShutdown { } @bindThis - private postReadAllNotifications(userId: MiUser['id']) { + private async postReadAllNotifications(userId: MiUser['id']) { this.globalEventService.publishMainStream(userId, 'readAllNotifications'); - this.pushNotificationService.pushNotification(userId, 'readAllNotifications', undefined); + await this.pushNotificationService.pushNotification(userId, 'readAllNotifications', undefined); } @bindThis diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts index 6dd768c3c6..0b760560ca 100644 --- a/packages/backend/src/core/RoleService.ts +++ b/packages/backend/src/core/RoleService.ts @@ -751,7 +751,7 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit { this.globalEventService.publishRoleTimelineStream(role.id, 'note', note); } - redisPipeline.exec(); + await redisPipeline.exec(); } @bindThis diff --git a/packages/backend/src/core/S3Service.ts b/packages/backend/src/core/S3Service.ts index 955d778015..30de5289f4 100644 --- a/packages/backend/src/core/S3Service.ts +++ b/packages/backend/src/core/S3Service.ts @@ -91,7 +91,7 @@ export class S3Service implements OnApplicationShutdown { @bindThis public async upload(input: PutObjectCommandInput) { const client = this.getS3Client(); - return new Upload({ + return await new Upload({ client, params: input, partSize: (client.config.endpoint && (await client.config.endpoint()).hostname === 'storage.googleapis.com') diff --git a/packages/backend/src/core/SearchService.ts b/packages/backend/src/core/SearchService.ts index 6e4dd9adca..04026865fb 100644 --- a/packages/backend/src/core/SearchService.ts +++ b/packages/backend/src/core/SearchService.ts @@ -256,10 +256,10 @@ export class SearchService { case 'sqlTsvector': { // ほとんど内容に差がないのでsqlLikeとsqlPgroongaを同じ処理にしている. // 今後の拡張で差が出る用であれば関数を分ける. - return this.searchNoteByLike(q, me, opts, pagination); + return await this.searchNoteByLike(q, me, opts, pagination); } case 'meilisearch': { - return this.searchNoteByMeiliSearch(q, me, opts, pagination); + return await this.searchNoteByMeiliSearch(q, me, opts, pagination); } default: { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/backend/src/core/SponsorsService.ts b/packages/backend/src/core/SponsorsService.ts index 23994b5761..454df4442e 100644 --- a/packages/backend/src/core/SponsorsService.ts +++ b/packages/backend/src/core/SponsorsService.ts @@ -94,12 +94,12 @@ export class SponsorsService { @bindThis public async instanceSponsors(forceUpdate: boolean) { if (forceUpdate) await this.cache.refresh('instance'); - return this.cache.fetch('instance'); + return await this.cache.fetch('instance'); } @bindThis public async sharkeySponsors(forceUpdate: boolean) { if (forceUpdate) await this.cache.refresh('sharkey'); - return this.cache.fetch('sharkey'); + return await this.cache.fetch('sharkey'); } } diff --git a/packages/backend/src/core/UserSearchService.ts b/packages/backend/src/core/UserSearchService.ts index 6c6d3a5280..9e2b5dfc64 100644 --- a/packages/backend/src/core/UserSearchService.ts +++ b/packages/backend/src/core/UserSearchService.ts @@ -99,7 +99,7 @@ export class UserSearchService { } } - return this.userEntityService.packMany<'UserLite' | 'UserDetailed'>( + return await this.userEntityService.packMany<'UserLite' | 'UserDetailed'>( [...resultSet].slice(0, limit), me, { schema: opts?.detail ? 'UserDetailed' : 'UserLite' }, diff --git a/packages/backend/src/core/UserService.ts b/packages/backend/src/core/UserService.ts index 34c343712c..69efb3a230 100644 --- a/packages/backend/src/core/UserService.ts +++ b/packages/backend/src/core/UserService.ts @@ -70,6 +70,6 @@ export class UserService { @bindThis public async notifySystemWebhook(user: MiUser, type: 'userCreated') { const packedUser = await this.userEntityService.pack(user, null, { schema: 'UserLite' }); - return this.systemWebhookService.enqueueSystemWebhook(type, packedUser); + return await this.systemWebhookService.enqueueSystemWebhook(type, packedUser); } } diff --git a/packages/backend/src/core/UserWebhookService.ts b/packages/backend/src/core/UserWebhookService.ts index 24a519bc5c..097482d6a5 100644 --- a/packages/backend/src/core/UserWebhookService.ts +++ b/packages/backend/src/core/UserWebhookService.ts @@ -94,7 +94,7 @@ export class UserWebhookService implements OnApplicationShutdown { ) { const webhooks = await this.getActiveWebhooks() .then(webhooks => webhooks.filter(webhook => webhook.userId === userId && webhook.on.includes(type))); - return Promise.all( + return await Promise.all( webhooks.map(webhook => { return this.queueService.userWebhookDeliver(webhook, type, content); }), diff --git a/packages/backend/src/core/activitypub/JsonLdService.ts b/packages/backend/src/core/activitypub/JsonLdService.ts index 8e14e0909f..194af63f5a 100644 --- a/packages/backend/src/core/activitypub/JsonLdService.ts +++ b/packages/backend/src/core/activitypub/JsonLdService.ts @@ -134,7 +134,7 @@ export class JsonLdService { const customLoader = this.getLoader(); // XXX: Importing jsonld dynamically since Jest frequently fails to import it statically // https://github.com/misskey-dev/misskey/pull/9894#discussion_r1103753595 - return (await import('jsonld')).default.compact(data, context, { + return await (await import('jsonld')).default.compact(data, context, { documentLoader: customLoader, }); } @@ -142,7 +142,7 @@ export class JsonLdService { @bindThis public async normalize(data: Document): Promise { const customLoader = this.getLoader(); - return (await import('jsonld')).default.normalize(data, { + return await (await import('jsonld')).default.normalize(data, { documentLoader: customLoader, }); } diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index f153d51c9d..a8cfdfe682 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -329,8 +329,9 @@ export class ApPersonService implements OnModuleInit { return user; } + // TODO fix these "any" types private async resolveAvatarAndBanner(user: MiRemoteUser, icon: any, image: any, bgimg: any): Promise>> { - const [avatar, banner, background] = await Promise.all([icon, image, bgimg].map(img => { + const [avatar, banner, background] = await Promise.all([icon, image, bgimg].map(async img => { // icon and image may be arrays // see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon if (Array.isArray(img)) { @@ -343,7 +344,7 @@ export class ApPersonService implements OnModuleInit { return { id: null, url: null, blurhash: null }; } - return this.apImageService.resolveImage(user, img).catch(() => null); + return await this.apImageService.resolveImage(user, img).catch(() => null); })); if (((avatar != null && avatar.id != null) || (banner != null && banner.id != null)) diff --git a/packages/backend/src/core/entities/BlockingEntityService.ts b/packages/backend/src/core/entities/BlockingEntityService.ts index 1e699032e2..0ba7a0f2dd 100644 --- a/packages/backend/src/core/entities/BlockingEntityService.ts +++ b/packages/backend/src/core/entities/BlockingEntityService.ts @@ -35,6 +35,7 @@ export class BlockingEntityService { ): Promise> { const blocking = typeof src === 'object' ? src : await this.blockingsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: blocking.id, createdAt: this.idService.parse(blocking.id).date.toISOString(), @@ -53,6 +54,6 @@ export class BlockingEntityService { const _blockees = blockings.map(({ blockee, blockeeId }) => blockee ?? blockeeId); const _userMap = await this.userEntityService.packMany(_blockees, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(blockings.map(blocking => this.pack(blocking, me, { blockee: _userMap.get(blocking.blockeeId) }))); + return await Promise.all(blockings.map(blocking => this.pack(blocking, me, { blockee: _userMap.get(blocking.blockeeId) }))); } } diff --git a/packages/backend/src/core/entities/ChatEntityService.ts b/packages/backend/src/core/entities/ChatEntityService.ts index da112d5444..171a49ebcc 100644 --- a/packages/backend/src/core/entities/ChatEntityService.ts +++ b/packages/backend/src/core/entities/ChatEntityService.ts @@ -117,7 +117,7 @@ export class ChatEntityService { .then(rooms => new Map(rooms.map(r => [r.id, r]))), ]); - return Promise.all(messages.map(message => this.packMessageDetailed(message, me, { _hint_: { packedUsers, packedFiles, packedRooms } }))); + return await Promise.all(messages.map(message => this.packMessageDetailed(message, me, { _hint_: { packedUsers, packedFiles, packedRooms } }))); } @bindThis @@ -165,7 +165,7 @@ export class ChatEntityService { .then(files => new Map(files.map(f => [f.id, f]))), ]); - return Promise.all(messages.map(message => this.packMessageLiteFor1on1(message, { _hint_: { packedFiles } }))); + return await Promise.all(messages.map(message => this.packMessageLiteFor1on1(message, { _hint_: { packedFiles } }))); } @bindThis @@ -228,7 +228,7 @@ export class ChatEntityService { .then(files => new Map(files.map(f => [f.id, f]))), ]); - return Promise.all(messages.map(message => this.packMessageLiteForRoom(message, { _hint_: { packedFiles, packedUsers } }))); + return await Promise.all(messages.map(message => this.packMessageLiteForRoom(message, { _hint_: { packedFiles, packedUsers } }))); } @bindThis @@ -289,7 +289,7 @@ export class ChatEntityService { }).then(memberships => new Map(_rooms.map(r => [r.id, memberships.find(m => m.roomId === r.id)]))), ]); - return Promise.all(_rooms.map(room => this.packRoom(room, me, { _hint_: { packedOwners, memberships } }))); + return await Promise.all(_rooms.map(room => this.packRoom(room, me, { _hint_: { packedOwners, memberships } }))); } @bindThis @@ -322,7 +322,7 @@ export class ChatEntityService { ) { if (invitations.length === 0) return []; - return Promise.all(invitations.map(invitation => this.packRoomInvitation(invitation, me))); + return await Promise.all(invitations.map(invitation => this.packRoomInvitation(invitation, me))); } @bindThis @@ -371,6 +371,6 @@ export class ChatEntityService { .then(rooms => new Map(rooms.map(r => [r.id, r]))), ]); - return Promise.all(memberships.map(membership => this.packRoomMembership(membership, me, { ...options, _hint_: { packedUsers, packedRooms } }))); + return await Promise.all(memberships.map(membership => this.packRoomMembership(membership, me, { ...options, _hint_: { packedUsers, packedRooms } }))); } } diff --git a/packages/backend/src/core/entities/ClipEntityService.ts b/packages/backend/src/core/entities/ClipEntityService.ts index b700fe2efb..fba085767f 100644 --- a/packages/backend/src/core/entities/ClipEntityService.ts +++ b/packages/backend/src/core/entities/ClipEntityService.ts @@ -42,6 +42,7 @@ export class ClipEntityService { const meId = me ? me.id : null; const clip = typeof src === 'object' ? src : await this.clipsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: clip.id, createdAt: this.idService.parse(clip.id).date.toISOString(), @@ -65,7 +66,7 @@ export class ClipEntityService { const _users = clips.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(clips.map(clip => this.pack(clip, me, { packedUser: _userMap.get(clip.userId) }))); + return await Promise.all(clips.map(clip => this.pack(clip, me, { packedUser: _userMap.get(clip.userId) }))); } } diff --git a/packages/backend/src/core/entities/DriveFileEntityService.ts b/packages/backend/src/core/entities/DriveFileEntityService.ts index a172f81eed..06197ff839 100644 --- a/packages/backend/src/core/entities/DriveFileEntityService.ts +++ b/packages/backend/src/core/entities/DriveFileEntityService.ts @@ -201,6 +201,7 @@ export class DriveFileEntityService implements OnModuleInit { const file = typeof src === 'object' ? src : await this.driveFilesRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll>({ id: file.id, createdAt: this.idService.parse(file.id).date.toISOString(), @@ -239,6 +240,7 @@ export class DriveFileEntityService implements OnModuleInit { const file = typeof src === 'object' ? src : await this.driveFilesRepository.findOneBy({ id: src }); if (file == null) return null; + // noinspection ES6MissingAwait return await awaitAll>({ id: file.id, createdAt: this.idService.parse(file.id).date.toISOString(), diff --git a/packages/backend/src/core/entities/EmojiEntityService.ts b/packages/backend/src/core/entities/EmojiEntityService.ts index 5f03df554c..9c3f0adfff 100644 --- a/packages/backend/src/core/entities/EmojiEntityService.ts +++ b/packages/backend/src/core/entities/EmojiEntityService.ts @@ -179,7 +179,7 @@ export class EmojiEntityService implements OnModuleInit { hintRoles = new Map(roles.map(x => [x.id, x])); } - return Promise.all(emojis.map(x => this.packDetailedAdmin(x, { roles: hintRoles }))); + return await Promise.all(emojis.map(x => this.packDetailedAdmin(x, { roles: hintRoles }))); } } diff --git a/packages/backend/src/core/entities/FlashEntityService.ts b/packages/backend/src/core/entities/FlashEntityService.ts index c2575e69aa..47617c5be7 100644 --- a/packages/backend/src/core/entities/FlashEntityService.ts +++ b/packages/backend/src/core/entities/FlashEntityService.ts @@ -77,7 +77,7 @@ export class FlashEntityService { .getRawMany<{ flashLike_flashId: string }>() .then(likes => [...new Set(likes.map(like => like.flashLike_flashId))]) : []; - return Promise.all( + return await Promise.all( flashes.map(flash => this.pack(flash, me, { packedUser: _userMap.get(flash.userId), likedFlashIds: _likedFlashIds, diff --git a/packages/backend/src/core/entities/FollowRequestEntityService.ts b/packages/backend/src/core/entities/FollowRequestEntityService.ts index 0101ec8aa7..05c69b4d56 100644 --- a/packages/backend/src/core/entities/FollowRequestEntityService.ts +++ b/packages/backend/src/core/entities/FollowRequestEntityService.ts @@ -50,7 +50,7 @@ export class FollowRequestEntityService { const _followees = requests.map(({ followee, followeeId }) => followee ?? followeeId); const _userMap = await this.userEntityService.packMany([..._followers, ..._followees], me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all( + return await Promise.all( requests.map(req => { const packedFollower = _userMap.get(req.followerId); const packedFollowee = _userMap.get(req.followeeId); diff --git a/packages/backend/src/core/entities/FollowingEntityService.ts b/packages/backend/src/core/entities/FollowingEntityService.ts index d54c954bf2..5645217ebc 100644 --- a/packages/backend/src/core/entities/FollowingEntityService.ts +++ b/packages/backend/src/core/entities/FollowingEntityService.ts @@ -139,6 +139,7 @@ export class FollowingEntityService { if (opts == null) opts = {}; + // noinspection ES6MissingAwait return await awaitAll({ id: following.id, createdAt: this.idService.parse(following.id).date.toISOString(), @@ -166,7 +167,7 @@ export class FollowingEntityService { const _followers = opts?.populateFollower ? followings.map(({ follower, followerId }) => follower ?? followerId) : []; const _userMap = await this.userEntityService.packMany([..._followees, ..._followers], me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all( + return await Promise.all( followings.map(following => { const packedFollowee = opts?.populateFollowee ? _userMap.get(following.followeeId) : undefined; const packedFollower = opts?.populateFollower ? _userMap.get(following.followerId) : undefined; diff --git a/packages/backend/src/core/entities/GalleryPostEntityService.ts b/packages/backend/src/core/entities/GalleryPostEntityService.ts index 9746a4c1af..a276f1508c 100644 --- a/packages/backend/src/core/entities/GalleryPostEntityService.ts +++ b/packages/backend/src/core/entities/GalleryPostEntityService.ts @@ -42,6 +42,7 @@ export class GalleryPostEntityService { const meId = me ? me.id : null; const post = typeof src === 'object' ? src : await this.galleryPostsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: post.id, createdAt: this.idService.parse(post.id).date.toISOString(), @@ -68,7 +69,7 @@ export class GalleryPostEntityService { const _users = posts.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(posts.map(post => this.pack(post, me, { packedUser: _userMap.get(post.userId) }))); + return await Promise.all(posts.map(post => this.pack(post, me, { packedUser: _userMap.get(post.userId) }))); } } diff --git a/packages/backend/src/core/entities/InviteCodeEntityService.ts b/packages/backend/src/core/entities/InviteCodeEntityService.ts index 5d3e823a2a..ceb666ac90 100644 --- a/packages/backend/src/core/entities/InviteCodeEntityService.ts +++ b/packages/backend/src/core/entities/InviteCodeEntityService.ts @@ -62,7 +62,7 @@ export class InviteCodeEntityService { const _usedBys = tickets.map(({ usedBy, usedById }) => usedBy ?? usedById).filter(x => x != null); const _userMap = await this.userEntityService.packMany([..._createdBys, ..._usedBys], me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all( + return await Promise.all( tickets.map(ticket => { const packedCreatedBy = ticket.createdById != null ? _userMap.get(ticket.createdById) : undefined; const packedUsedBy = ticket.usedById != null ? _userMap.get(ticket.usedById) : undefined; diff --git a/packages/backend/src/core/entities/ModerationLogEntityService.ts b/packages/backend/src/core/entities/ModerationLogEntityService.ts index bf1b2a002c..2d1de5cd46 100644 --- a/packages/backend/src/core/entities/ModerationLogEntityService.ts +++ b/packages/backend/src/core/entities/ModerationLogEntityService.ts @@ -34,6 +34,7 @@ export class ModerationLogEntityService { ) { const log = typeof src === 'object' ? src : await this.moderationLogsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: log.id, createdAt: this.idService.parse(log.id).date.toISOString(), @@ -53,7 +54,7 @@ export class ModerationLogEntityService { const _users = reports.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users, null, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(reports.map(report => this.pack(report, { packedUser: _userMap.get(report.userId) }))); + return await Promise.all(reports.map(report => this.pack(report, { packedUser: _userMap.get(report.userId) }))); } } diff --git a/packages/backend/src/core/entities/MutingEntityService.ts b/packages/backend/src/core/entities/MutingEntityService.ts index d361a20271..7d8c3dcde2 100644 --- a/packages/backend/src/core/entities/MutingEntityService.ts +++ b/packages/backend/src/core/entities/MutingEntityService.ts @@ -36,6 +36,7 @@ export class MutingEntityService { ): Promise> { const muting = typeof src === 'object' ? src : await this.mutingsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: muting.id, createdAt: this.idService.parse(muting.id).date.toISOString(), @@ -55,7 +56,7 @@ export class MutingEntityService { const _mutees = mutings.map(({ mutee, muteeId }) => mutee ?? muteeId); const _userMap = await this.userEntityService.packMany(_mutees, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); + return await Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); } } diff --git a/packages/backend/src/core/entities/NoteEntityService.ts b/packages/backend/src/core/entities/NoteEntityService.ts index 373f05332f..310e361736 100644 --- a/packages/backend/src/core/entities/NoteEntityService.ts +++ b/packages/backend/src/core/entities/NoteEntityService.ts @@ -592,6 +592,7 @@ export class NoteEntityService implements OnModuleInit { const bypassSilence = opts.bypassSilence || note.userId === meId; + // noinspection ES6MissingAwait const packed: Packed<'Note'> = await awaitAll({ id: note.id, threadId, diff --git a/packages/backend/src/core/entities/NoteReactionEntityService.ts b/packages/backend/src/core/entities/NoteReactionEntityService.ts index 2b0d69b261..1f6d52d20c 100644 --- a/packages/backend/src/core/entities/NoteReactionEntityService.ts +++ b/packages/backend/src/core/entities/NoteReactionEntityService.ts @@ -88,6 +88,6 @@ export class NoteReactionEntityService implements OnModuleInit { const _users = reactions.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(reactions.map(reaction => this.pack(reaction, me, opts, { packedUser: _userMap.get(reaction.userId) }))); + return await Promise.all(reactions.map(reaction => this.pack(reaction, me, opts, { packedUser: _userMap.get(reaction.userId) }))); } } diff --git a/packages/backend/src/core/entities/PageEntityService.ts b/packages/backend/src/core/entities/PageEntityService.ts index 46bf51bb6d..3106001676 100644 --- a/packages/backend/src/core/entities/PageEntityService.ts +++ b/packages/backend/src/core/entities/PageEntityService.ts @@ -83,11 +83,12 @@ export class PageEntityService { }; migrate(page.content); if (migrated) { - this.pagesRepository.update(page.id, { + await this.pagesRepository.update(page.id, { content: page.content, }); } + // noinspection ES6MissingAwait return await awaitAll({ id: page.id, createdAt: this.idService.parse(page.id).date.toISOString(), @@ -119,7 +120,7 @@ export class PageEntityService { const _users = pages.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(pages.map(page => this.pack(page, me, { packedUser: _userMap.get(page.userId) }))); + return await Promise.all(pages.map(page => this.pack(page, me, { packedUser: _userMap.get(page.userId) }))); } } diff --git a/packages/backend/src/core/entities/RenoteMutingEntityService.ts b/packages/backend/src/core/entities/RenoteMutingEntityService.ts index e4e154109a..199fc2366e 100644 --- a/packages/backend/src/core/entities/RenoteMutingEntityService.ts +++ b/packages/backend/src/core/entities/RenoteMutingEntityService.ts @@ -36,6 +36,7 @@ export class RenoteMutingEntityService { ): Promise> { const muting = typeof src === 'object' ? src : await this.renoteMutingsRepository.findOneByOrFail({ id: src }); + // noinspection ES6MissingAwait return await awaitAll({ id: muting.id, createdAt: this.idService.parse(muting.id).date.toISOString(), @@ -54,7 +55,7 @@ export class RenoteMutingEntityService { const _users = mutings.map(({ mutee, muteeId }) => mutee ?? muteeId); const _userMap = await this.userEntityService.packMany(_users, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); + return await Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); } } diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts index 6e7f15610f..bacc3c3fde 100644 --- a/packages/backend/src/core/entities/UserEntityService.ts +++ b/packages/backend/src/core/entities/UserEntityService.ts @@ -485,7 +485,7 @@ export class UserEntityService implements OnModuleInit { if (user.avatarId != null && user.avatarUrl === null) { const avatar = await this.driveFilesRepository.findOneByOrFail({ id: user.avatarId }); user.avatarUrl = this.driveFileEntityService.getPublicUrl(avatar, 'avatar'); - this.usersRepository.update(user.id, { + await this.usersRepository.update(user.id, { avatarUrl: user.avatarUrl, avatarBlurhash: avatar.blurhash, }); @@ -493,7 +493,7 @@ export class UserEntityService implements OnModuleInit { if (user.bannerId != null && user.bannerUrl === null) { const banner = await this.driveFilesRepository.findOneByOrFail({ id: user.bannerId }); user.bannerUrl = this.driveFileEntityService.getPublicUrl(banner); - this.usersRepository.update(user.id, { + await this.usersRepository.update(user.id, { bannerUrl: user.bannerUrl, bannerBlurhash: banner.blurhash, }); @@ -501,7 +501,7 @@ export class UserEntityService implements OnModuleInit { if (user.backgroundId != null && user.backgroundUrl === null) { const background = await this.driveFilesRepository.findOneByOrFail({ id: user.backgroundId }); user.backgroundUrl = this.driveFileEntityService.getPublicUrl(background); - this.usersRepository.update(user.id, { + await this.usersRepository.update(user.id, { backgroundUrl: user.backgroundUrl, backgroundBlurhash: background.blurhash, }); @@ -581,6 +581,7 @@ export class UserEntityService implements OnModuleInit { const bypassSilence = isMe || (myFollowings ? myFollowings.has(user.id) : false); + // noinspection ES6MissingAwait const packed = { id: user.id, name: user.name, @@ -894,7 +895,7 @@ export class UserEntityService implements OnModuleInit { myFollowingsPromise, ]); - return Promise.all( + return await Promise.all( _users.map(u => this.pack( u, me, diff --git a/packages/backend/src/core/entities/UserListEntityService.ts b/packages/backend/src/core/entities/UserListEntityService.ts index 2722d52195..55a15dd07b 100644 --- a/packages/backend/src/core/entities/UserListEntityService.ts +++ b/packages/backend/src/core/entities/UserListEntityService.ts @@ -67,7 +67,7 @@ export class UserListEntityService { const _users = memberships.map(({ user, userId }) => user ?? userId); const _userMap = await this.userEntityService.packMany(_users) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(memberships.map(async x => ({ + return await Promise.all(memberships.map(async x => ({ id: x.id, createdAt: this.idService.parse(x.id).date.toISOString(), userId: x.userId, diff --git a/packages/backend/src/queue/processors/ImportNotesProcessorService.ts b/packages/backend/src/queue/processors/ImportNotesProcessorService.ts index 6f5e929673..a9d179d90e 100644 --- a/packages/backend/src/queue/processors/ImportNotesProcessorService.ts +++ b/packages/backend/src/queue/processors/ImportNotesProcessorService.ts @@ -417,7 +417,7 @@ export class ImportNotesProcessorService { const hashtags = extractApHashtagObjects(toot.object.tag).map((x) => x.name).filter((x): x is string => x != null); try { - text = await this.mfmService.fromHtml(toot.object.content, hashtags); + text = this.mfmService.fromHtml(toot.object.content, hashtags); } catch (error) { text = undefined; } @@ -487,7 +487,7 @@ export class ImportNotesProcessorService { const hashtags = extractApHashtagObjects(post.object.tag).map((x) => x.name).filter((x): x is string => x != null); try { - text = await this.mfmService.fromHtml(post.object.content, hashtags); + text = this.mfmService.fromHtml(post.object.content, hashtags); } catch (error) { text = undefined; } diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts index 6605783ff1..be78a63ebb 100644 --- a/packages/backend/src/server/api/ApiCallService.ts +++ b/packages/backend/src/server/api/ApiCallService.ts @@ -145,11 +145,11 @@ export class ApiCallService implements OnApplicationShutdown { } @bindThis - public handleRequest( + public async handleRequest( endpoint: IEndpoint & { exec: any }, request: FastifyRequest<{ Body: Record | undefined, Querystring: Record }>, reply: FastifyReply, - ): void { + ): Promise { // Tell crawlers not to index API endpoints. // https://developers.google.com/search/docs/crawling-indexing/block-indexing reply.header('X-Robots-Tag', 'noindex'); @@ -166,8 +166,8 @@ export class ApiCallService implements OnApplicationShutdown { reply.code(400); return; } - this.authenticateService.authenticate(token).then(([user, app]) => { - this.call(endpoint, user, app, body, null, request, reply).then((res) => { + await this.authenticateService.authenticate(token).then(async ([user, app]) => { + await this.call(endpoint, user, app, body, null, request, reply).then((res) => { if (request.method === 'GET' && endpoint.meta.cacheSec && !token && !user) { reply.header('Cache-Control', `public, max-age=${endpoint.meta.cacheSec}`); } @@ -177,7 +177,8 @@ export class ApiCallService implements OnApplicationShutdown { }); if (user) { - this.logIp(request, user); + // logIp records errors directly + this.logIp(request, user).catch(() => null); } }).catch(err => { this.#sendAuthenticationError(reply, err); @@ -225,8 +226,8 @@ export class ApiCallService implements OnApplicationShutdown { reply.code(400); return; } - this.authenticateService.authenticate(token).then(([user, app]) => { - this.call(endpoint, user, app, fields, { + await this.authenticateService.authenticate(token).then(async ([user, app]) => { + await this.call(endpoint, user, app, fields, { name: multipartData.filename, path: path, }, request, reply).then((res) => { @@ -237,7 +238,8 @@ export class ApiCallService implements OnApplicationShutdown { }); if (user) { - this.logIp(request, user); + // logIp records errors directly + this.logIp(request, user).catch(() => null); } }).catch(err => { cleanup(); @@ -268,7 +270,7 @@ export class ApiCallService implements OnApplicationShutdown { } @bindThis - private logIp(request: FastifyRequest, user: MiLocalUser) { + private async logIp(request: FastifyRequest, user: MiLocalUser) { if (!this.meta.enableIpLogging) return; const ip = request.ip; if (!ip) { @@ -285,12 +287,13 @@ export class ApiCallService implements OnApplicationShutdown { } try { - this.userIpsRepository.createQueryBuilder().insert().values({ + await this.userIpsRepository.createQueryBuilder().insert().values({ createdAt: this.timeService.date, userId: user.id, ip: ip, }).orIgnore(true).execute(); - } catch { + } catch (err) { + this.logger.warn(`Failed to save IP address ${ip} for user ${user.id}: ${renderInlineError(err)}`); } } } diff --git a/packages/backend/src/server/api/ApiServerService.ts b/packages/backend/src/server/api/ApiServerService.ts index 6ed139ad77..8900048de0 100644 --- a/packages/backend/src/server/api/ApiServerService.ts +++ b/packages/backend/src/server/api/ApiServerService.ts @@ -194,7 +194,7 @@ export class ApiServerService { }); if (token && token.session != null && !token.fetched) { - this.accessTokensRepository.update(token.id, { + await this.accessTokensRepository.update(token.id, { fetched: true, }); diff --git a/packages/backend/src/server/api/SigninApiService.ts b/packages/backend/src/server/api/SigninApiService.ts index a53fec88d0..6ff5ea13f1 100644 --- a/packages/backend/src/server/api/SigninApiService.ts +++ b/packages/backend/src/server/api/SigninApiService.ts @@ -243,7 +243,7 @@ export class SigninApiService { if (same) { if (profile.password!.startsWith('$2')) { const newHash = await argon2.hash(password); - this.userProfilesRepository.update(user.id, { + await this.userProfilesRepository.update(user.id, { password: newHash, }); } @@ -267,7 +267,7 @@ export class SigninApiService { try { if (profile.password!.startsWith('$2')) { const newHash = await argon2.hash(password); - this.userProfilesRepository.update(user.id, { + await this.userProfilesRepository.update(user.id, { password: newHash, }); } diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts index bdfbcba518..35c1eb225a 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts @@ -116,7 +116,7 @@ export default class extends Endpoint { // eslint- me, ); - return this.abuseReportNotificationRecipientEntityService.pack(result); + return await this.abuseReportNotificationRecipientEntityService.pack(result); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts index dad9161a8a..f36d356205 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts @@ -49,7 +49,7 @@ export default class extends Endpoint { // eslint- ) { super(meta, paramDef, async (ps) => { const recipients = await this.abuseReportNotificationService.fetchRecipients({ method: ps.method }); - return this.abuseReportNotificationRecipientEntityService.packMany(recipients); + return await this.abuseReportNotificationRecipientEntityService.packMany(recipients); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts index 557798f946..b2e5e197e3 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts @@ -58,7 +58,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchRecipient); } - return this.abuseReportNotificationRecipientEntityService.pack(recipients[0]); + return await this.abuseReportNotificationRecipientEntityService.pack(recipients[0]); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts index bd4b485217..c3d88412b3 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts @@ -122,7 +122,7 @@ export default class extends Endpoint { // eslint- me, ); - return this.abuseReportNotificationRecipientEntityService.pack(result); + return await this.abuseReportNotificationRecipientEntityService.pack(result); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/captcha/current.ts b/packages/backend/src/server/api/endpoints/admin/captcha/current.ts index 7cc1bc675a..d620f937b1 100644 --- a/packages/backend/src/server/api/endpoints/admin/captcha/current.ts +++ b/packages/backend/src/server/api/endpoints/admin/captcha/current.ts @@ -75,7 +75,7 @@ export default class extends Endpoint { // eslint- private captchaService: CaptchaService, ) { super(meta, paramDef, async () => { - return this.captchaService.get(); + return await this.captchaService.get(); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts index 2ace85062a..f2c8ac7d42 100644 --- a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- }); for (const file of files) { - this.driveService.deleteFile(file); + await this.driveService.deleteFile(file); } }); } diff --git a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts index f5d20366cf..3ca2c348a4 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts @@ -43,7 +43,7 @@ export default class extends Endpoint { // eslint- }); for (const file of files) { - this.driveService.deleteFile(file); + await this.driveService.deleteFile(file); } }); } diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts index 5ef8307df0..130d2dd2cc 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts @@ -106,7 +106,7 @@ export default class extends Endpoint { // eslint- roleIdsThatCanBeUsedThisEmojiAsReaction: ps.roleIdsThatCanBeUsedThisEmojiAsReaction ?? [], }, me); - return this.emojiEntityService.packDetailed(emoji); + return await this.emojiEntityService.packDetailed(emoji); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts index a7d88954d9..7765a762d9 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts @@ -100,7 +100,7 @@ export default class extends Endpoint { // eslint- roleIdsThatCanBeUsedThisEmojiAsReaction: emoji.roleIdsThatCanBeUsedThisEmojiAsReaction, }, me); - return this.emojiEntityService.packDetailed(addedEmoji); + return await this.emojiEntityService.packDetailed(addedEmoji); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts index 7f4ba083cf..0af5295ecb 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -108,7 +108,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return this.emojiEntityService.packDetailedMany(emojis); + return await this.emojiEntityService.packDetailedMany(emojis); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts index b1b8e63d2f..9a5826d13d 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts @@ -111,7 +111,7 @@ export default class extends Endpoint { // eslint- emojis = await q.take(ps.limit).skip(ps.offset ?? 0).getMany(); } - return this.emojiEntityService.packDetailedMany(emojis); + return await this.emojiEntityService.packDetailedMany(emojis); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts index 89fd4be99c..b98d0a7163 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts @@ -45,7 +45,7 @@ export default class extends Endpoint { // eslint- }); for (const file of files) { - this.driveService.deleteFile(file); + await this.driveService.deleteFile(file); } }); } diff --git a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts index 556e291025..d6f38601ea 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts @@ -42,7 +42,7 @@ export default class extends Endpoint { // eslint- throw new Error('instance not found'); } - this.fetchInstanceMetadataService.fetchInstanceMetadata(instance, true); + await this.fetchInstanceMetadataService.fetchInstanceMetadata(instance, true); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts index e5d85e1d57..8a66e004d7 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts @@ -57,7 +57,7 @@ export default class extends Endpoint { // eslint- host: ps.host, }); - this.queueService.createUnfollowJob(pairs.map(p => ({ from: p[0], to: p[1], silent: true }))); + await this.queueService.createUnfollowJob(pairs.map(p => ({ from: p[0], to: p[1], silent: true }))); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts index 81cb4b8119..c10e200f86 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts @@ -32,9 +32,9 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.queueClear(ps.queue, ps.state); + await this.queueService.queueClear(ps.queue, ps.state); - this.moderationLogService.log(me, 'clearQueue'); + await this.moderationLogService.log(me, 'clearQueue'); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/jobs.ts b/packages/backend/src/server/api/endpoints/admin/queue/jobs.ts index aba68376ad..45b8f4ffb2 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/jobs.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/jobs.ts @@ -32,7 +32,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - return this.queueService.queueGetJobs(ps.queue, ps.state, ps.search); + return await this.queueService.queueGetJobs(ps.queue, ps.state, ps.search); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/promote-jobs.ts b/packages/backend/src/server/api/endpoints/admin/queue/promote-jobs.ts index d22385e261..6ea49bdb7b 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/promote-jobs.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/promote-jobs.ts @@ -31,9 +31,9 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.queuePromoteJobs(ps.queue); + await this.queueService.queuePromoteJobs(ps.queue); - this.moderationLogService.log(me, 'promoteQueue'); + await this.moderationLogService.log(me, 'promoteQueue'); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/queue-stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/queue-stats.ts index 10ce48332a..eafc1998db 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/queue-stats.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/queue-stats.ts @@ -30,7 +30,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - return this.queueService.queueGetQueue(ps.queue); + return await this.queueService.queueGetQueue(ps.queue); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/queues.ts b/packages/backend/src/server/api/endpoints/admin/queue/queues.ts index 3a38275f60..83def8bf27 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/queues.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/queues.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - return this.queueService.queueGetQueues(); + return await this.queueService.queueGetQueues(); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/remove-job.ts b/packages/backend/src/server/api/endpoints/admin/queue/remove-job.ts index 2c73f689d0..e2ca37c75d 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/remove-job.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/remove-job.ts @@ -32,7 +32,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.queueRemoveJob(ps.queue, ps.jobId); + await this.queueService.queueRemoveJob(ps.queue, ps.jobId); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/retry-job.ts b/packages/backend/src/server/api/endpoints/admin/queue/retry-job.ts index b2603128f8..517f99e67f 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/retry-job.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/retry-job.ts @@ -32,7 +32,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.queueRetryJob(ps.queue, ps.jobId); + await this.queueService.queueRetryJob(ps.queue, ps.jobId); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/queue/show-job.ts b/packages/backend/src/server/api/endpoints/admin/queue/show-job.ts index 63747b5540..c931d57cb2 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/show-job.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/show-job.ts @@ -32,7 +32,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - return this.queueService.queueGetJob(ps.queue, ps.jobId); + return await this.queueService.queueGetJob(ps.queue, ps.jobId); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts index 28071e7a33..7dc5f1fd39 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts @@ -79,7 +79,7 @@ export default class extends Endpoint { // eslint- me, ); - return this.systemWebhookEntityService.pack(result); + return await this.systemWebhookEntityService.pack(result); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts index 7a440a774e..c776459c5e 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts @@ -54,7 +54,7 @@ export default class extends Endpoint { // eslint- isActive: ps.isActive, on: ps.on, }); - return this.systemWebhookEntityService.packMany(webhooks); + return await this.systemWebhookEntityService.packMany(webhooks); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts index 75862c96a7..024c00e59e 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchSystemWebhook); } - return this.systemWebhookEntityService.pack(webhooks[0]); + return await this.systemWebhookEntityService.pack(webhooks[0]); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts index 8d68bb8f87..72f7df2ad0 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- me, ); - return this.systemWebhookEntityService.pack(result); + return await this.systemWebhookEntityService.pack(result); }); } } diff --git a/packages/backend/src/server/api/endpoints/announcements.ts b/packages/backend/src/server/api/endpoints/announcements.ts index 08528ce826..c21d358ead 100644 --- a/packages/backend/src/server/api/endpoints/announcements.ts +++ b/packages/backend/src/server/api/endpoints/announcements.ts @@ -70,7 +70,7 @@ export default class extends Endpoint { // eslint- const announcements = await query.limit(ps.limit).getMany(); - return this.announcementEntityService.packMany(announcements, me); + return await this.announcementEntityService.packMany(announcements, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts index 1027eeb4d4..a80a0705d3 100644 --- a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts +++ b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts @@ -113,7 +113,7 @@ export default class extends Endpoint { // eslint- }); // Delete session - this.authSessionsRepository.delete(session.id); + await this.authSessionsRepository.delete(session.id); return { accessToken: accessToken.token, diff --git a/packages/backend/src/server/api/endpoints/chat/messages/show.ts b/packages/backend/src/server/api/endpoints/chat/messages/show.ts index 9a2bbb8742..950666deb9 100644 --- a/packages/backend/src/server/api/endpoints/chat/messages/show.ts +++ b/packages/backend/src/server/api/endpoints/chat/messages/show.ts @@ -59,7 +59,7 @@ export default class extends Endpoint { // eslint- if (message.fromUserId !== me.id && message.toUserId !== me.id && !(await this.roleService.isModerator(me))) { throw new ApiError(meta.errors.noSuchMessage); } - return this.chatEntityService.packMessageDetailed(message, me); + return await this.chatEntityService.packMessageDetailed(message, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/invitations/inbox.ts b/packages/backend/src/server/api/endpoints/chat/rooms/invitations/inbox.ts index 8a02d1c704..40688b026d 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/invitations/inbox.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/invitations/inbox.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- await this.chatService.checkChatAvailability(me.id, 'read'); const invitations = await this.chatService.getReceivedRoomInvitationsWithPagination(me.id, ps.limit, ps.sinceId, ps.untilId); - return this.chatEntityService.packRoomInvitations(invitations, me); + return await this.chatEntityService.packRoomInvitations(invitations, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/invitations/outbox.ts b/packages/backend/src/server/api/endpoints/chat/rooms/invitations/outbox.ts index 0702ba086c..61e6402cab 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/invitations/outbox.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/invitations/outbox.ts @@ -63,7 +63,7 @@ export default class extends Endpoint { // eslint- } const invitations = await this.chatService.getSentRoomInvitationsWithPagination(ps.roomId, ps.limit, ps.sinceId, ps.untilId); - return this.chatEntityService.packRoomInvitations(invitations, me); + return await this.chatEntityService.packRoomInvitations(invitations, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/joining.ts b/packages/backend/src/server/api/endpoints/chat/rooms/joining.ts index ba9242c762..c9a5288527 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/joining.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/joining.ts @@ -51,7 +51,7 @@ export default class extends Endpoint { // eslint- const memberships = await this.chatService.getMyMemberships(me.id, ps.limit, ps.sinceId, ps.untilId); - return this.chatEntityService.packRoomMemberships(memberships, me, { + return await this.chatEntityService.packRoomMemberships(memberships, me, { populateUser: false, populateRoom: true, }); diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/members.ts b/packages/backend/src/server/api/endpoints/chat/rooms/members.ts index f5ffa21d32..388513e939 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/members.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/members.ts @@ -67,7 +67,7 @@ export default class extends Endpoint { // eslint- const memberships = await this.chatService.getRoomMembershipsWithPagination(room.id, ps.limit, ps.sinceId, ps.untilId); - return this.chatEntityService.packRoomMemberships(memberships, me, { + return await this.chatEntityService.packRoomMemberships(memberships, me, { populateUser: true, populateRoom: false, }); diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/owned.ts b/packages/backend/src/server/api/endpoints/chat/rooms/owned.ts index accf7e1bee..d9cd60a39e 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/owned.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/owned.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- await this.chatService.checkChatAvailability(me.id, 'read'); const rooms = await this.chatService.getOwnedRoomsWithPagination(me.id, ps.limit, ps.sinceId, ps.untilId); - return this.chatEntityService.packRooms(rooms, me); + return await this.chatEntityService.packRooms(rooms, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/show.ts b/packages/backend/src/server/api/endpoints/chat/rooms/show.ts index 50da210d81..e4bc07cc0c 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/show.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/show.ts @@ -54,7 +54,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchRoom); } - return this.chatEntityService.packRoom(room, me); + return await this.chatEntityService.packRoom(room, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/update.ts b/packages/backend/src/server/api/endpoints/chat/rooms/update.ts index 0cd62cb040..423cff1227 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/update.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/update.ts @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- description: ps.description, }); - return this.chatEntityService.packRoom(updated, me); + return await this.chatEntityService.packRoom(updated, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts index 1f9b24e6c9..9278e0578d 100644 --- a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- const favorites = await query .getMany(); - return this.clipEntityService.packMany(favorites.map(x => x.clip!), me); + return await this.clipEntityService.packMany(favorites.map(x => x.clip!), me); }); } } diff --git a/packages/backend/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts index 8d51d09ea6..06beb82c7a 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/update.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/update.ts @@ -125,7 +125,7 @@ export default class extends Endpoint { // eslint- } // Update - this.driveFoldersRepository.update(folder.id, { + await this.driveFoldersRepository.update(folder.id, { name: folder.name, parentId: folder.parentId, }); diff --git a/packages/backend/src/server/api/endpoints/emoji.ts b/packages/backend/src/server/api/endpoints/emoji.ts index caef5d1528..7b1be89453 100644 --- a/packages/backend/src/server/api/endpoints/emoji.ts +++ b/packages/backend/src/server/api/endpoints/emoji.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- super(meta, paramDef, async (ps, me) => { const emoji = await this.customEmojiService.emojisByKeyCache.fetch(ps.name); - return this.emojiEntityService.packDetailed(emoji); + return await this.emojiEntityService.packDetailed(emoji); }); } } diff --git a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts b/packages/backend/src/server/api/endpoints/export-custom-emojis.ts index 5ff099524d..53c157c5cd 100644 --- a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts +++ b/packages/backend/src/server/api/endpoints/export-custom-emojis.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportCustomEmojisJob(me); + await this.queueService.createExportCustomEmojisJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts index 9add00ccde..ddf9cf0cbd 100644 --- a/packages/backend/src/server/api/endpoints/federation/followers.ts +++ b/packages/backend/src/server/api/endpoints/federation/followers.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- private followingEntityService: FollowingEntityService, ) { super(meta, paramDef, async (ps, me) => { - return this.followingEntityService.getFollowers(me, ps); + return await this.followingEntityService.getFollowers(me, ps); }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts index 849bb61fb4..2ae3a0d485 100644 --- a/packages/backend/src/server/api/endpoints/federation/following.ts +++ b/packages/backend/src/server/api/endpoints/federation/following.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- private followingEntityService: FollowingEntityService, ) { super(meta, paramDef, async (ps, me) => { - return this.followingEntityService.getFollowing(me, ps); + return await this.followingEntityService.getFollowing(me, ps); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/my-likes.ts b/packages/backend/src/server/api/endpoints/flash/my-likes.ts index 22eae381da..baaf5ba845 100644 --- a/packages/backend/src/server/api/endpoints/flash/my-likes.ts +++ b/packages/backend/src/server/api/endpoints/flash/my-likes.ts @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return this.flashLikeEntityService.packMany(likes, me); + return await this.flashLikeEntityService.packMany(likes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/hashtags/list.ts b/packages/backend/src/server/api/endpoints/hashtags/list.ts index b49c907432..b59d25b18b 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/list.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/list.ts @@ -91,7 +91,7 @@ export default class extends Endpoint { // eslint- const tags = await query.limit(ps.limit).getMany(); - return this.hashtagEntityService.packMany(tags); + return await this.hashtagEntityService.packMany(tags); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-antennas.ts b/packages/backend/src/server/api/endpoints/i/export-antennas.ts index 77fb4a895f..c7ea520fb2 100644 --- a/packages/backend/src/server/api/endpoints/i/export-antennas.ts +++ b/packages/backend/src/server/api/endpoints/i/export-antennas.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportAntennasJob(me); + await this.queueService.createExportAntennasJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-blocking.ts b/packages/backend/src/server/api/endpoints/i/export-blocking.ts index 7573018bec..84ad687cd6 100644 --- a/packages/backend/src/server/api/endpoints/i/export-blocking.ts +++ b/packages/backend/src/server/api/endpoints/i/export-blocking.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportBlockingJob(me); + await this.queueService.createExportBlockingJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-clips.ts b/packages/backend/src/server/api/endpoints/i/export-clips.ts index 10d1fdac73..9611a32a29 100644 --- a/packages/backend/src/server/api/endpoints/i/export-clips.ts +++ b/packages/backend/src/server/api/endpoints/i/export-clips.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportClipsJob(me); + await this.queueService.createExportClipsJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-data.ts b/packages/backend/src/server/api/endpoints/i/export-data.ts index d9a1e087b9..9465ac30ce 100644 --- a/packages/backend/src/server/api/endpoints/i/export-data.ts +++ b/packages/backend/src/server/api/endpoints/i/export-data.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportAccountDataJob(me); + await this.queueService.createExportAccountDataJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-favorites.ts b/packages/backend/src/server/api/endpoints/i/export-favorites.ts index 5e03f70170..d482618769 100644 --- a/packages/backend/src/server/api/endpoints/i/export-favorites.ts +++ b/packages/backend/src/server/api/endpoints/i/export-favorites.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportFavoritesJob(me); + await this.queueService.createExportFavoritesJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-following.ts b/packages/backend/src/server/api/endpoints/i/export-following.ts index 2e5ba14737..774704ba2a 100644 --- a/packages/backend/src/server/api/endpoints/i/export-following.ts +++ b/packages/backend/src/server/api/endpoints/i/export-following.ts @@ -32,7 +32,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportFollowingJob(me, ps.excludeMuting, ps.excludeInactive); + await this.queueService.createExportFollowingJob(me, ps.excludeMuting, ps.excludeInactive); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-mute.ts b/packages/backend/src/server/api/endpoints/i/export-mute.ts index 0384cf142b..902cea1ac2 100644 --- a/packages/backend/src/server/api/endpoints/i/export-mute.ts +++ b/packages/backend/src/server/api/endpoints/i/export-mute.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportMuteJob(me); + await this.queueService.createExportMuteJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-notes.ts b/packages/backend/src/server/api/endpoints/i/export-notes.ts index db4e78f667..a3d7d2c0d9 100644 --- a/packages/backend/src/server/api/endpoints/i/export-notes.ts +++ b/packages/backend/src/server/api/endpoints/i/export-notes.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportNotesJob(me); + await this.queueService.createExportNotesJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts index 6cd662102c..72ebb4f16e 100644 --- a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts +++ b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts @@ -29,7 +29,7 @@ export default class extends Endpoint { // eslint- private queueService: QueueService, ) { super(meta, paramDef, async (ps, me) => { - this.queueService.createExportUserListsJob(me); + await this.queueService.createExportUserListsJob(me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/page-likes.ts b/packages/backend/src/server/api/endpoints/i/page-likes.ts index 19baa9726d..53a9b0f3b9 100644 --- a/packages/backend/src/server/api/endpoints/i/page-likes.ts +++ b/packages/backend/src/server/api/endpoints/i/page-likes.ts @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return this.pageLikeEntityService.packMany(likes, me); + return await this.pageLikeEntityService.packMany(likes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts index cbf3a961c0..374a4248d1 100644 --- a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts +++ b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts @@ -151,7 +151,7 @@ export default class extends Endpoint { // eslint- const note = await this.notesRepository.findOneBy({ id }); if (note) { note.reactionAndUserPairCache ??= []; - return this.noteEntityService.pack(note, me); + return await this.noteEntityService.pack(note, me); } } return null; diff --git a/packages/backend/src/server/api/endpoints/notifications/flush.ts b/packages/backend/src/server/api/endpoints/notifications/flush.ts index ab78435b89..ed619d5dd2 100644 --- a/packages/backend/src/server/api/endpoints/notifications/flush.ts +++ b/packages/backend/src/server/api/endpoints/notifications/flush.ts @@ -33,7 +33,7 @@ export default class extends Endpoint { // eslint- private notificationService: NotificationService, ) { super(meta, paramDef, async (ps, me) => { - this.notificationService.flushAllNotifications(me.id); + await this.notificationService.flushAllNotifications(me.id); }); } } diff --git a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts index bc83f8d794..4dfe0b92b7 100644 --- a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts +++ b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts @@ -33,7 +33,7 @@ export default class extends Endpoint { // eslint- private notificationService: NotificationService, ) { super(meta, paramDef, async (ps, me) => { - this.notificationService.readAllNotification(me.id, true); + await this.notificationService.readAllNotification(me.id, true); }); } } diff --git a/packages/backend/src/server/api/endpoints/reset-password.ts b/packages/backend/src/server/api/endpoints/reset-password.ts index 813550bbcd..dd4e387a20 100644 --- a/packages/backend/src/server/api/endpoints/reset-password.ts +++ b/packages/backend/src/server/api/endpoints/reset-password.ts @@ -67,7 +67,7 @@ export default class extends Endpoint { // eslint- password: hash, }); - this.passwordResetRequestsRepository.delete(req.id); + await this.passwordResetRequestsRepository.delete(req.id); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts index 559f08b654..142176deb2 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts @@ -108,7 +108,7 @@ export default class extends Endpoint { .limit(ps.limit) .getMany(); - return this.userListEntityService.packMembershipsMany(memberships); + return await this.userListEntityService.packMembershipsMany(memberships); }); } } diff --git a/packages/backend/src/server/api/mastodon/MastodonConverters.ts b/packages/backend/src/server/api/mastodon/MastodonConverters.ts index 6b0283bf55..69c7817021 100644 --- a/packages/backend/src/server/api/mastodon/MastodonConverters.ts +++ b/packages/backend/src/server/api/mastodon/MastodonConverters.ts @@ -175,7 +175,7 @@ export class MastodonConverters { const bioText = profile?.description && this.mfmService.toMastoApiHtml(mfm.parse(profile.description)); - return awaitAll({ + return await awaitAll({ id: account.id, username: user.username, acct: acct,