summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-09-24 06:45:44 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-09-24 06:45:44 +0900
commit417f52359dd4e708478ed43e2e07efb09ecf1fd2 (patch)
tree3393b6b3395c6e5e898735e34c1f0caffc19d781 /packages/backend/src
parentfixes (diff)
downloadsharkey-417f52359dd4e708478ed43e2e07efb09ecf1fd2.tar.gz
sharkey-417f52359dd4e708478ed43e2e07efb09ecf1fd2.tar.bz2
sharkey-417f52359dd4e708478ed43e2e07efb09ecf1fd2.zip
fixes
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/boot/master.ts3
-rw-r--r--packages/backend/src/core/AntennaService.ts2
-rw-r--r--packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts2
-rw-r--r--packages/backend/src/server/NodeinfoServerService.ts2
-rw-r--r--packages/backend/src/server/api/StreamingApiServerService.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/accounts/delete.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/drive/files.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/drive/show-file.ts8
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/list.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/stats.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/suspend-user.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/antennas/notes.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/channels/follow.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/stats.ts2
-rw-r--r--packages/backend/src/server/api/integration/DiscordServerService.ts66
-rw-r--r--packages/backend/src/server/api/integration/GithubServerService.ts48
20 files changed, 87 insertions, 70 deletions
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index ec09b4350b..fc07510ffb 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -119,8 +119,7 @@ function loadConfigBoot(): Config {
if (typeof exception === 'string') {
configLogger.error(exception);
process.exit(1);
- }
- if (exception.code === 'ENOENT') {
+ } else if ((exception as any).code === 'ENOENT') {
configLogger.error('Configuration file not found', null, true);
process.exit(1);
}
diff --git a/packages/backend/src/core/AntennaService.ts b/packages/backend/src/core/AntennaService.ts
index 0146f959e6..af76767f31 100644
--- a/packages/backend/src/core/AntennaService.ts
+++ b/packages/backend/src/core/AntennaService.ts
@@ -60,7 +60,7 @@ export class AntennaService implements OnApplicationShutdown {
this.redisSubscriber.off('message', this.onRedisMessage);
}
- private async onRedisMessage(_, data) {
+ private async onRedisMessage(_: string, data: string): Promise<void> {
const obj = JSON.parse(data);
if (obj.channel === 'internal') {
diff --git a/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts b/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
index e031581488..097e4448a5 100644
--- a/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
+++ b/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
@@ -20,7 +20,7 @@ export class ObjectStorageQueueProcessorsService {
public start(q: Bull.Queue) {
const jobs = {
deleteFile: (job) => this.deleteFileProcessorService.process(job),
- cleanRemoteFiles: (job) => this.cleanRemoteFilesProcessorService.process(job),
+ cleanRemoteFiles: (job, done) => this.cleanRemoteFilesProcessorService.process(job, done),
} as Record<string, Bull.ProcessCallbackFunction<ObjectStorageJobData | Bull.ProcessPromiseFunction<ObjectStorageJobData>>>;
for (const [k, v] of Object.entries(jobs)) {
diff --git a/packages/backend/src/server/NodeinfoServerService.ts b/packages/backend/src/server/NodeinfoServerService.ts
index b07dc4cf8f..ef4ec74a35 100644
--- a/packages/backend/src/server/NodeinfoServerService.ts
+++ b/packages/backend/src/server/NodeinfoServerService.ts
@@ -118,7 +118,7 @@ export class NodeinfoServerService {
router.get(nodeinfo2_0path, async ctx => {
const base = await cache.fetch(null, () => nodeinfo2());
- delete base.software.repository;
+ delete (base as any).software.repository;
ctx.body = { version: '2.0', ...base };
ctx.set('Cache-Control', 'public, max-age=600');
diff --git a/packages/backend/src/server/api/StreamingApiServerService.ts b/packages/backend/src/server/api/StreamingApiServerService.ts
index 8a6906e5fe..46eaf8566e 100644
--- a/packages/backend/src/server/api/StreamingApiServerService.ts
+++ b/packages/backend/src/server/api/StreamingApiServerService.ts
@@ -72,7 +72,7 @@ export class StreamingApiServerService {
const ev = new EventEmitter();
- async function onRedisMessage(_: string, data: string) {
+ async function onRedisMessage(_: string, data: string): Promise<void> {
const parsed = JSON.parse(data);
ev.emit(parsed.channel, parsed.message);
}
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts
index 30183ed88b..9bba16166f 100644
--- a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts
@@ -3,6 +3,7 @@ import { Endpoint } from '@/server/api/endpoint-base.js';
import type { AbuseUserReportsRepository } from '@/models/index.js';
import { QueryService } from '@/core/QueryService.js';
import { DI } from '@/di-symbols.js';
+import { AbuseUserReportEntityService } from '@/core/entities/AbuseUserReportEntityService.js';
export const meta = {
tags: ['admin'],
@@ -93,6 +94,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.abuseUserReportsRepository)
private abuseUserReportsRepository: AbuseUserReportsRepository,
+ private abuseUserReportEntityService: AbuseUserReportEntityService,
private queryService: QueryService,
) {
super(meta, paramDef, async (ps, me) => {
diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts
index dc2d499191..b7081987ca 100644
--- a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts
+++ b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts
@@ -5,6 +5,7 @@ import { QueueService } from '@/core/QueueService.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
import { UserSuspendService } from '@/core/UserSuspendService.js';
import { DI } from '@/di-symbols.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
export const meta = {
tags: ['admin'],
@@ -28,6 +29,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
+ private userEntityService: UserEntityService,
private queueService: QueueService,
private globalEventService: GlobalEventService,
private userSuspendService: UserSuspendService,
diff --git a/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts b/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts
index f4d39cd872..665e2a8cce 100644
--- a/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts
+++ b/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts
@@ -3,6 +3,7 @@ import { Endpoint } from '@/server/api/endpoint-base.js';
import type { UsersRepository } from '@/models/index.js';
import { ModerationLogService } from '@/core/ModerationLogService.js';
import { DI } from '@/di-symbols.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
export const meta = {
tags: ['admin'],
@@ -27,6 +28,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
+ private userEntityService: UserEntityService,
private moderationLogService: ModerationLogService,
) {
super(meta, paramDef, async (ps, me) => {
diff --git a/packages/backend/src/server/api/endpoints/admin/drive/files.ts b/packages/backend/src/server/api/endpoints/admin/drive/files.ts
index 2459a479ab..53a37cb691 100644
--- a/packages/backend/src/server/api/endpoints/admin/drive/files.ts
+++ b/packages/backend/src/server/api/endpoints/admin/drive/files.ts
@@ -3,6 +3,7 @@ import type { DriveFilesRepository } from '@/models/index.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { QueryService } from '@/core/QueryService.js';
import { DI } from '@/di-symbols.js';
+import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
export const meta = {
tags: ['admin'],
@@ -47,6 +48,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.driveFilesRepository)
private driveFilesRepository: DriveFilesRepository,
+ private driveFileEntityService: DriveFileEntityService,
private queryService: QueryService,
) {
super(meta, paramDef, async (ps, me) => {
diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
index c17f67cf2b..25d13d13a3 100644
--- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
+++ b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
@@ -192,12 +192,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
throw new ApiError(meta.errors.noSuchFile);
}
+ const res = file as Partial<typeof file>;
+
if (!me.isAdmin) {
- delete file.requestIp;
- delete file.requestHeaders;
+ delete res.requestIp;
+ delete res.requestHeaders;
}
- return file;
+ return res;
});
}
}
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 e50f924044..8624229db8 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts
@@ -4,6 +4,7 @@ import type { EmojisRepository } from '@/models/index.js';
import type { Emoji } from '@/models/entities/Emoji.js';
import { QueryService } from '@/core/QueryService.js';
import { DI } from '@/di-symbols.js';
+import { EmojiEntityService } from '@/core/entities/EmojiEntityService.js';
export const meta = {
tags: ['admin'],
@@ -71,6 +72,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.emojisRepository)
private emojisRepository: EmojisRepository,
+ private emojiEntityService: EmojiEntityService,
private queryService: QueryService,
) {
super(meta, paramDef, async (ps, me) => {
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
index 4b5be70d56..526efa9f9d 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts
@@ -1,7 +1,7 @@
import { URL } from 'node:url';
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { DeliverQueue } from '@/core/queue/QueueModule.js';
+import type { DeliverQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
index 715974e917..b8934428c3 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts
@@ -1,7 +1,7 @@
import { URL } from 'node:url';
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { InboxQueue } from '@/core/queue/QueueModule.js';
+import type { InboxQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
index f2ca81a8da..605ea3d042 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
@@ -1,6 +1,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, WebhookDeliverQueue } from '@/core/queue/QueueModule.js';
+import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, WebhookDeliverQueue } from '@/core/queue/QueueModule.js';
export const meta = {
tags: ['admin'],
diff --git a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts
index d30facd125..53de8d9495 100644
--- a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts
+++ b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts
@@ -7,6 +7,7 @@ import { ModerationLogService } from '@/core/ModerationLogService.js';
import { UserSuspendService } from '@/core/UserSuspendService.js';
import { UserFollowingService } from '@/core/UserFollowingService.js';
import { DI } from '@/di-symbols.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
export const meta = {
tags: ['admin'],
@@ -36,6 +37,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.notificationsRepository)
private notificationsRepository: NotificationsRepository,
+ private userEntityService: UserEntityService,
private userFollowingService: UserFollowingService,
private userSuspendService: UserSuspendService,
private moderationLogService: ModerationLogService,
diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts
index fb3c713154..fbb5acf617 100644
--- a/packages/backend/src/server/api/endpoints/antennas/notes.ts
+++ b/packages/backend/src/server/api/endpoints/antennas/notes.ts
@@ -1,6 +1,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import type { NotesRepository, AntennaNotesRepository } from '@/models/index.js';
+import type { NotesRepository, AntennaNotesRepository, AntennasRepository } from '@/models/index.js';
import { QueryService } from '@/core/QueryService.js';
import { NoteReadService } from '@/core/NoteReadService.js';
import { DI } from '@/di-symbols.js';
diff --git a/packages/backend/src/server/api/endpoints/channels/follow.ts b/packages/backend/src/server/api/endpoints/channels/follow.ts
index 871d3927bc..91693918f2 100644
--- a/packages/backend/src/server/api/endpoints/channels/follow.ts
+++ b/packages/backend/src/server/api/endpoints/channels/follow.ts
@@ -44,7 +44,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
private globalEventService: GlobalEventService,
) {
super(meta, paramDef, async (ps, me) => {
- const channel = await Channels.findOneBy({
+ const channel = await this.channelsRepository.findOneBy({
id: ps.channelId,
});
diff --git a/packages/backend/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts
index 3adf0a4bb8..96b22b0261 100644
--- a/packages/backend/src/server/api/endpoints/stats.ts
+++ b/packages/backend/src/server/api/endpoints/stats.ts
@@ -1,6 +1,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { IsNull } from 'typeorm';
-import type { InstancesRepository, NotesRepository, UsersRepository } from '@/models/index.js';
+import type { InstancesRepository, NoteReactionsRepository, NotesRepository, UsersRepository } from '@/models/index.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { DI } from '@/di-symbols.js';
diff --git a/packages/backend/src/server/api/integration/DiscordServerService.ts b/packages/backend/src/server/api/integration/DiscordServerService.ts
index 79ce9c8973..8e4f595ada 100644
--- a/packages/backend/src/server/api/integration/DiscordServerService.ts
+++ b/packages/backend/src/server/api/integration/DiscordServerService.ts
@@ -159,6 +159,7 @@ export class DiscordServerService {
const { redirect_uri, state } = await new Promise<any>((res, rej) => {
this.redisClient.get(sessid, async (_, state) => {
+ if (state == null) throw new Error('empty state');
res(JSON.parse(state));
});
});
@@ -169,22 +170,22 @@ export class DiscordServerService {
}
const { accessToken, refreshToken, expiresDate } = await new Promise<any>((res, rej) =>
- oauth2!.getOAuthAccessToken(code, {
- grant_type: 'authorization_code',
- redirect_uri,
- }, (err, accessToken, refreshToken, result) => {
- if (err) {
- rej(err);
- } else if (result.error) {
- rej(result.error);
- } else {
- res({
- accessToken,
- refreshToken,
- expiresDate: Date.now() + Number(result.expires_in) * 1000,
- });
- }
- }));
+ oauth2!.getOAuthAccessToken(code, {
+ grant_type: 'authorization_code',
+ redirect_uri,
+ }, (err, accessToken, refreshToken, result) => {
+ if (err) {
+ rej(err);
+ } else if (result.error) {
+ rej(result.error);
+ } else {
+ res({
+ accessToken,
+ refreshToken,
+ expiresDate: Date.now() + Number(result.expires_in) * 1000,
+ });
+ }
+ }));
const { id, username, discriminator } = (await this.httpRequestService.getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, {
'Authorization': `Bearer ${accessToken}`,
@@ -230,6 +231,7 @@ export class DiscordServerService {
const { redirect_uri, state } = await new Promise<any>((res, rej) => {
this.redisClient.get(userToken, async (_, state) => {
+ if (state == null) throw new Error('empty state');
res(JSON.parse(state));
});
});
@@ -240,22 +242,22 @@ export class DiscordServerService {
}
const { accessToken, refreshToken, expiresDate } = await new Promise<any>((res, rej) =>
- oauth2!.getOAuthAccessToken(code, {
- grant_type: 'authorization_code',
- redirect_uri,
- }, (err, accessToken, refreshToken, result) => {
- if (err) {
- rej(err);
- } else if (result.error) {
- rej(result.error);
- } else {
- res({
- accessToken,
- refreshToken,
- expiresDate: Date.now() + Number(result.expires_in) * 1000,
- });
- }
- }));
+ oauth2!.getOAuthAccessToken(code, {
+ grant_type: 'authorization_code',
+ redirect_uri,
+ }, (err, accessToken, refreshToken, result) => {
+ if (err) {
+ rej(err);
+ } else if (result.error) {
+ rej(result.error);
+ } else {
+ res({
+ accessToken,
+ refreshToken,
+ expiresDate: Date.now() + Number(result.expires_in) * 1000,
+ });
+ }
+ }));
const { id, username, discriminator } = (await this.httpRequestService.getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, {
'Authorization': `Bearer ${accessToken}`,
diff --git a/packages/backend/src/server/api/integration/GithubServerService.ts b/packages/backend/src/server/api/integration/GithubServerService.ts
index 7fb31c39a2..2ccea36dc4 100644
--- a/packages/backend/src/server/api/integration/GithubServerService.ts
+++ b/packages/backend/src/server/api/integration/GithubServerService.ts
@@ -157,6 +157,7 @@ export class GithubServerService {
const { redirect_uri, state } = await new Promise<any>((res, rej) => {
this.redisClient.get(sessid, async (_, state) => {
+ if (state == null) throw new Error('empty state');
res(JSON.parse(state));
});
});
@@ -167,17 +168,17 @@ export class GithubServerService {
}
const { accessToken } = await new Promise<any>((res, rej) =>
- oauth2!.getOAuthAccessToken(code, {
- redirect_uri,
- }, (err, accessToken, refresh, result) => {
- if (err) {
- rej(err);
- } else if (result.error) {
- rej(result.error);
- } else {
- res({ accessToken });
- }
- }));
+ oauth2!.getOAuthAccessToken(code, {
+ redirect_uri,
+ }, (err, accessToken, refresh, result) => {
+ if (err) {
+ rej(err);
+ } else if (result.error) {
+ rej(result.error);
+ } else {
+ res({ accessToken });
+ }
+ }));
const { login, id } = (await this.httpRequestService.getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, {
'Authorization': `bearer ${accessToken}`,
@@ -208,6 +209,7 @@ export class GithubServerService {
const { redirect_uri, state } = await new Promise<any>((res, rej) => {
this.redisClient.get(userToken, async (_, state) => {
+ if (state == null) throw new Error('empty state');
res(JSON.parse(state));
});
});
@@ -218,18 +220,18 @@ export class GithubServerService {
}
const { accessToken } = await new Promise<any>((res, rej) =>
- oauth2!.getOAuthAccessToken(
- code,
- { redirect_uri },
- (err, accessToken, refresh, result) => {
- if (err) {
- rej(err);
- } else if (result.error) {
- rej(result.error);
- } else {
- res({ accessToken });
- }
- }));
+ oauth2!.getOAuthAccessToken(
+ code,
+ { redirect_uri },
+ (err, accessToken, refresh, result) => {
+ if (err) {
+ rej(err);
+ } else if (result.error) {
+ rej(result.error);
+ } else {
+ res({ accessToken });
+ }
+ }));
const { login, id } = (await this.httpRequestService.getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, {
'Authorization': `bearer ${accessToken}`,