From 21331e53fec869d445bd89056ed24ef235540d87 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 10:46:01 +0900 Subject: refactor: fix types --- packages/backend/src/server/api/SigninApiService.ts | 4 ++-- packages/backend/src/server/api/SigninService.ts | 2 +- packages/backend/src/server/api/SignupApiService.ts | 4 ++-- packages/backend/src/server/api/endpoints/endpoint.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/server/api/SigninApiService.ts b/packages/backend/src/server/api/SigninApiService.ts index 10f8423d44..d490097dea 100644 --- a/packages/backend/src/server/api/SigninApiService.ts +++ b/packages/backend/src/server/api/SigninApiService.ts @@ -10,9 +10,9 @@ import { getIpHash } from '@/misc/get-ip-hash.js'; import type { ILocalUser } from '@/models/entities/User.js'; import { IdService } from '@/core/IdService.js'; import { TwoFactorAuthenticationService } from '@/core/TwoFactorAuthenticationService.js'; +import { bindThis } from '@/decorators.js'; import { RateLimiterService } from './RateLimiterService.js'; import { SigninService } from './SigninService.js'; -import { bindThis } from '@/decorators.js'; import type { FastifyRequest, FastifyReply } from 'fastify'; @Injectable() @@ -131,7 +131,7 @@ export class SigninApiService { createdAt: new Date(), userId: user.id, ip: request.ip, - headers: request.headers, + headers: request.headers as any, success: false, }); diff --git a/packages/backend/src/server/api/SigninService.ts b/packages/backend/src/server/api/SigninService.ts index 89a8a9ff16..655bf51a16 100644 --- a/packages/backend/src/server/api/SigninService.ts +++ b/packages/backend/src/server/api/SigninService.ts @@ -33,7 +33,7 @@ export class SigninService { createdAt: new Date(), userId: user.id, ip: request.ip, - headers: request.headers, + headers: request.headers as any, success: true, }).then(x => this.signinsRepository.findOneByOrFail(x.identifiers[0])); diff --git a/packages/backend/src/server/api/SignupApiService.ts b/packages/backend/src/server/api/SignupApiService.ts index 4b676bb8b9..c46f71d934 100644 --- a/packages/backend/src/server/api/SignupApiService.ts +++ b/packages/backend/src/server/api/SignupApiService.ts @@ -162,7 +162,7 @@ export class SignupApiService { token: secret, }; } catch (err) { - throw new FastifyReplyError(400, err); + throw new FastifyReplyError(400, typeof err === 'string' ? err : (err as Error).toString()); } } } @@ -195,7 +195,7 @@ export class SignupApiService { return this.signinService.signin(request, reply, account as ILocalUser); } catch (err) { - throw new FastifyReplyError(400, err); + throw new FastifyReplyError(400, typeof err === 'string' ? err : (err as Error).toString()); } } } diff --git a/packages/backend/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts index a337a05f8c..13b91685a4 100644 --- a/packages/backend/src/server/api/endpoints/endpoint.ts +++ b/packages/backend/src/server/api/endpoints/endpoint.ts @@ -27,7 +27,7 @@ export default class extends Endpoint { return { params: Object.entries(ep.params.properties ?? {}).map(([k, v]) => ({ name: k, - type: v.type.charAt(0).toUpperCase() + v.type.slice(1), + type: v.type ? v.type.charAt(0).toUpperCase() + v.type.slice(1) : 'string', })), }; }); -- cgit v1.2.3-freya From 71dd7f89e92e285775b602d1e1908a82bb8560ae Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 10:47:03 +0900 Subject: clean up --- packages/backend/src/server/api/SigninService.ts | 26 ++++++------------------ packages/frontend/src/account.ts | 2 -- 2 files changed, 6 insertions(+), 22 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/server/api/SigninService.ts b/packages/backend/src/server/api/SigninService.ts index 655bf51a16..c78d9f85cd 100644 --- a/packages/backend/src/server/api/SigninService.ts +++ b/packages/backend/src/server/api/SigninService.ts @@ -25,7 +25,7 @@ export class SigninService { } @bindThis - public signin(request: FastifyRequest, reply: FastifyReply, user: ILocalUser, redirect = false) { + public signin(request: FastifyRequest, reply: FastifyReply, user: ILocalUser) { setImmediate(async () => { // Append signin history const record = await this.signinsRepository.insert({ @@ -41,25 +41,11 @@ export class SigninService { this.globalEventService.publishMainStream(user.id, 'signin', await this.signinEntityService.pack(record)); }); - if (redirect) { - //#region Cookie - reply.setCookie('igi', user.token!, { - path: '/', - // SEE: https://github.com/koajs/koa/issues/974 - // When using a SSL proxy it should be configured to add the "X-Forwarded-Proto: https" header - secure: this.config.url.startsWith('https'), - httpOnly: false, - }); - //#endregion - - reply.redirect(this.config.url); - } else { - reply.code(200); - return { - id: user.id, - i: user.token, - }; - } + reply.code(200); + return { + id: user.id, + i: user.token, + }; } } diff --git a/packages/frontend/src/account.ts b/packages/frontend/src/account.ts index 31c125d3ae..610212b6ec 100644 --- a/packages/frontend/src/account.ts +++ b/packages/frontend/src/account.ts @@ -61,8 +61,6 @@ export async function signout() { } catch (err) {} //#endregion - document.cookie = 'igi=; path=/'; - if (accounts.length > 0) login(accounts[0].token); else unisonReload('/'); } -- cgit v1.2.3-freya From e1e885d6b23fc690b4e0cb9217094b5f20afea2f Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 10:55:15 +0900 Subject: refactor: fix types --- packages/backend/src/server/api/RateLimiterService.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts index a9c34e363a..1f8915ecca 100644 --- a/packages/backend/src/server/api/RateLimiterService.ts +++ b/packages/backend/src/server/api/RateLimiterService.ts @@ -34,7 +34,7 @@ export class RateLimiterService { const min = (): void => { const minIntervalLimiter = new Limiter({ id: `${actor}:${limitation.key}:min`, - duration: limitation.minInterval * factor, + duration: limitation.minInterval! * factor, max: 1, db: this.redisClient, }); @@ -62,8 +62,8 @@ export class RateLimiterService { const max = (): void => { const limiter = new Limiter({ id: `${actor}:${limitation.key}`, - duration: limitation.duration * factor, - max: limitation.max / factor, + duration: limitation.duration! * factor, + max: limitation.max! / factor, db: this.redisClient, }); -- cgit v1.2.3-freya From 5facd11592dbd2bb789aeaa9082ca8edd35f373a Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 11:02:37 +0900 Subject: refactor: fix types --- packages/backend/src/core/QueryService.ts | 6 +++--- packages/backend/src/misc/gen-identicon.ts | 2 +- packages/backend/src/server/ActivityPubServerService.ts | 1 + packages/backend/src/server/api/SignupApiService.ts | 1 + packages/backend/src/server/web/ClientServerService.ts | 3 +++ 5 files changed, 9 insertions(+), 4 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/core/QueryService.ts b/packages/backend/src/core/QueryService.ts index 4cc844ccea..c334d749e6 100644 --- a/packages/backend/src/core/QueryService.ts +++ b/packages/backend/src/core/QueryService.ts @@ -1,10 +1,10 @@ import { Inject, Injectable } from '@nestjs/common'; -import { Brackets } from 'typeorm'; +import { Brackets, ObjectLiteral } from 'typeorm'; import { DI } from '@/di-symbols.js'; import type { User } from '@/models/entities/User.js'; import type { UserProfilesRepository, FollowingsRepository, ChannelFollowingsRepository, MutedNotesRepository, BlockingsRepository, NoteThreadMutingsRepository, MutingsRepository } from '@/models/index.js'; -import type { SelectQueryBuilder } from 'typeorm'; import { bindThis } from '@/decorators.js'; +import type { SelectQueryBuilder } from 'typeorm'; @Injectable() export class QueryService { @@ -32,7 +32,7 @@ export class QueryService { ) { } - public makePaginationQuery(q: SelectQueryBuilder, sinceId?: string, untilId?: string, sinceDate?: number, untilDate?: number): SelectQueryBuilder { + public makePaginationQuery(q: SelectQueryBuilder, sinceId?: string, untilId?: string, sinceDate?: number, untilDate?: number): SelectQueryBuilder { if (sinceId && untilId) { q.andWhere(`${q.alias}.id > :sinceId`, { sinceId: sinceId }); q.andWhere(`${q.alias}.id < :untilId`, { untilId: untilId }); diff --git a/packages/backend/src/misc/gen-identicon.ts b/packages/backend/src/misc/gen-identicon.ts index 4a70d7a4bb..b40745973e 100644 --- a/packages/backend/src/misc/gen-identicon.ts +++ b/packages/backend/src/misc/gen-identicon.ts @@ -51,7 +51,7 @@ export function genIdenticon(seed: string, stream: WriteStream): Promise { bg.addColorStop(0, bgColors[0]); bg.addColorStop(1, bgColors[1]); - ctx.fillStyle = bg; + ctx.fillStyle = bg as any; ctx.beginPath(); ctx.fillRect(0, 0, size, size); diff --git a/packages/backend/src/server/ActivityPubServerService.ts b/packages/backend/src/server/ActivityPubServerService.ts index 632a2ccb2e..186d3822d8 100644 --- a/packages/backend/src/server/ActivityPubServerService.ts +++ b/packages/backend/src/server/ActivityPubServerService.ts @@ -540,6 +540,7 @@ export class ActivityPubServerService { return (this.apRendererService.renderActivity(this.apRendererService.renderKey(user, keypair))); } else { reply.code(400); + return; } }); diff --git a/packages/backend/src/server/api/SignupApiService.ts b/packages/backend/src/server/api/SignupApiService.ts index c46f71d934..ffd7e203ea 100644 --- a/packages/backend/src/server/api/SignupApiService.ts +++ b/packages/backend/src/server/api/SignupApiService.ts @@ -146,6 +146,7 @@ export class SignupApiService { `To complete signup, please click this link: ${link}`); reply.code(204); + return; } else { try { const { account, secret } = await this.signupService.signup({ diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 044cba8d1e..1fa8950d75 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -372,6 +372,7 @@ export class ClientServerService { return feed.atom1(); } else { reply.code(404); + return; } }); @@ -384,6 +385,7 @@ export class ClientServerService { return feed.rss2(); } else { reply.code(404); + return; } }); @@ -396,6 +398,7 @@ export class ClientServerService { return feed.json1(); } else { reply.code(404); + return; } }); -- cgit v1.2.3-freya From bc234969983f67261da05e8a3edb198a65ae7306 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 11:31:40 +0900 Subject: refactor: fix types --- packages/backend/src/server/api/endpoints/admin/roles/create.ts | 2 +- packages/backend/src/server/api/endpoints/admin/roles/update.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/server/api/endpoints/admin/roles/create.ts b/packages/backend/src/server/api/endpoints/admin/roles/create.ts index 1a2a9fb747..df60c6be94 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/create.ts @@ -20,7 +20,7 @@ export const paramDef = { description: { type: 'string' }, color: { type: 'string', nullable: true }, iconUrl: { type: 'string', nullable: true }, - target: { type: 'string' }, + target: { type: 'string', enum: ['manual', 'conditional'] }, condFormula: { type: 'object' }, isPublic: { type: 'boolean' }, isModerator: { type: 'boolean' }, diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update.ts b/packages/backend/src/server/api/endpoints/admin/roles/update.ts index c9f4a9fed8..b939ccdbf9 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/update.ts @@ -28,7 +28,7 @@ export const paramDef = { description: { type: 'string' }, color: { type: 'string', nullable: true }, iconUrl: { type: 'string', nullable: true }, - target: { type: 'string' }, + target: { type: 'string', enum: ['manual', 'conditional'] }, condFormula: { type: 'object' }, isPublic: { type: 'boolean' }, isModerator: { type: 'boolean' }, -- cgit v1.2.3-freya From 33c4e579943b6f843dce98a0044eb5cda3c62546 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 11:42:55 +0900 Subject: refactor: fix types --- packages/backend/src/server/api/endpoints/charts/user/pv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/server/api/endpoints/charts/user/pv.ts b/packages/backend/src/server/api/endpoints/charts/user/pv.ts index c920e0f57d..33652c3adf 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/pv.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/pv.ts @@ -2,7 +2,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; import PerUserPvChart from '@/core/chart/charts/per-user-pv.js'; -import { schema } from '@/core/chart/charts/entities/per-user-notes.js'; +import { schema } from '@/core/chart/charts/entities/per-user-pv.js'; export const meta = { tags: ['charts', 'users'], -- cgit v1.2.3-freya From 76faec21158e34b0f29efbbc15f4778d212ee202 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 9 Feb 2023 11:46:08 +0900 Subject: refactor: fix types --- packages/backend/src/core/AchievementService.ts | 2 +- packages/backend/src/logger.ts | 2 +- packages/backend/src/misc/i18n.ts | 3 +-- packages/backend/src/server/api/endpoints/i/claim-achievement.ts | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) (limited to 'packages/backend/src/server/api') diff --git a/packages/backend/src/core/AchievementService.ts b/packages/backend/src/core/AchievementService.ts index 5fd9c451ce..2ebee0f7e0 100644 --- a/packages/backend/src/core/AchievementService.ts +++ b/packages/backend/src/core/AchievementService.ts @@ -5,7 +5,7 @@ import { DI } from '@/di-symbols.js'; import { bindThis } from '@/decorators.js'; import { CreateNotificationService } from '@/core/CreateNotificationService.js'; -const ACHIEVEMENT_TYPES = [ +export const ACHIEVEMENT_TYPES = [ 'notes1', 'notes10', 'notes100', diff --git a/packages/backend/src/logger.ts b/packages/backend/src/logger.ts index 87f9b12313..91039098f1 100644 --- a/packages/backend/src/logger.ts +++ b/packages/backend/src/logger.ts @@ -45,7 +45,7 @@ export default class Logger { } const time = dateFormat(new Date(), 'HH:mm:ss'); - const worker = cluster.isPrimary ? '*' : cluster.worker.id; + const worker = cluster.isPrimary ? '*' : cluster.worker!.id; const l = level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') : level === 'warning' ? chalk.yellow('WARN') : diff --git a/packages/backend/src/misc/i18n.ts b/packages/backend/src/misc/i18n.ts index e304a8adac..b1c727827d 100644 --- a/packages/backend/src/misc/i18n.ts +++ b/packages/backend/src/misc/i18n.ts @@ -11,10 +11,9 @@ export class I18n> { // string にしているのは、ドット区切りでのパス指定を許可するため // なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも - @bindThis public t(key: string, args?: Record): string { try { - let str = key.split('.').reduce((o, i) => o[i], this.locale) as string; + let str = key.split('.').reduce((o, i) => o[i], this.locale as any) as string; if (args) { for (const [k, v] of Object.entries(args)) { diff --git a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts index 52ae5475b6..d7109c6953 100644 --- a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts +++ b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts @@ -1,7 +1,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { DI } from '@/di-symbols.js'; -import { AchievementService } from '@/core/AchievementService.js'; +import { AchievementService, ACHIEVEMENT_TYPES } from '@/core/AchievementService.js'; export const meta = { requireCredential: true, @@ -10,7 +10,7 @@ export const meta = { export const paramDef = { type: 'object', properties: { - name: { type: 'string' }, + name: { type: 'string', enum: ACHIEVEMENT_TYPES }, }, required: ['name'], } as const; -- cgit v1.2.3-freya