diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-03-24 11:34:29 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-03-24 11:34:29 +0900 |
| commit | 3e11011229ef8459747acdf6d3008dc145280fec (patch) | |
| tree | 8ebc85727c4d295f6583b63d9397651151d4394a /src/server/api | |
| parent | Merge branch 'develop' (diff) | |
| parent | 12.75.1 (diff) | |
| download | misskey-3e11011229ef8459747acdf6d3008dc145280fec.tar.gz misskey-3e11011229ef8459747acdf6d3008dc145280fec.tar.bz2 misskey-3e11011229ef8459747acdf6d3008dc145280fec.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/server/api')
230 files changed, 403 insertions, 399 deletions
diff --git a/src/server/api/2fa.ts b/src/server/api/2fa.ts index 8e6e635bb0..77f0f8cd04 100644 --- a/src/server/api/2fa.ts +++ b/src/server/api/2fa.ts @@ -1,5 +1,5 @@ import * as crypto from 'crypto'; -import config from '../../config'; +import config from '@/config'; import * as jsrsasign from 'jsrsasign'; const ECC_PRELUDE = Buffer.from([0x04]); diff --git a/src/server/api/authenticate.ts b/src/server/api/authenticate.ts index 9c9ef74352..6ea5a111bc 100644 --- a/src/server/api/authenticate.ts +++ b/src/server/api/authenticate.ts @@ -2,7 +2,7 @@ import isNativeToken from './common/is-native-token'; import { User } from '../../models/entities/user'; import { Users, AccessTokens, Apps } from '../../models'; import { AccessToken } from '../../models/entities/access-token'; -import { Cache } from '../../misc/cache'; +import { Cache } from '@/misc/cache'; // TODO: TypeORMのカスタムキャッシュプロバイダを使っても良いかも // ref. https://github.com/typeorm/typeorm/blob/master/docs/caching.md diff --git a/src/server/api/common/generate-block-query.ts b/src/server/api/common/generate-block-query.ts index 3636410485..fa2179ae64 100644 --- a/src/server/api/common/generate-block-query.ts +++ b/src/server/api/common/generate-block-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Blockings } from '../../../models'; import { SelectQueryBuilder } from 'typeorm'; -export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: User) { +export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const blockingQuery = Blockings.createQueryBuilder('blocking') .select('blocking.blockeeId') .where('blocking.blockerId = :blockerId', { blockerId: me.id }); diff --git a/src/server/api/common/generate-channel-query.ts b/src/server/api/common/generate-channel-query.ts index c0337b2c6b..74a6d68c40 100644 --- a/src/server/api/common/generate-channel-query.ts +++ b/src/server/api/common/generate-channel-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { ChannelFollowings } from '../../../models'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateChannelQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateChannelQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere('note.channelId IS NULL'); } else { diff --git a/src/server/api/common/generate-muted-note-query.ts b/src/server/api/common/generate-muted-note-query.ts index 498930476c..c7f9f7c5a3 100644 --- a/src/server/api/common/generate-muted-note-query.ts +++ b/src/server/api/common/generate-muted-note-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { MutedNotes } from '../../../models'; import { SelectQueryBuilder } from 'typeorm'; -export function generateMutedNoteQuery(q: SelectQueryBuilder<any>, me: User) { +export function generateMutedNoteQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const mutedQuery = MutedNotes.createQueryBuilder('muted') .select('muted.noteId') .where('muted.userId = :userId', { userId: me.id }); diff --git a/src/server/api/common/generate-muted-user-query.ts b/src/server/api/common/generate-muted-user-query.ts index b346f2f0fb..f5e072ba93 100644 --- a/src/server/api/common/generate-muted-user-query.ts +++ b/src/server/api/common/generate-muted-user-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Mutings } from '../../../models'; import { SelectQueryBuilder, Brackets } from 'typeorm'; -export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: User, exclude?: User) { +export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }, exclude?: User) { const mutingQuery = Mutings.createQueryBuilder('muting') .select('muting.muteeId') .where('muting.muterId = :muterId', { muterId: me.id }); @@ -28,7 +28,7 @@ export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: User, exc q.setParameters(mutingQuery.getParameters()); } -export function generateMutedUserQueryForUsers(q: SelectQueryBuilder<any>, me: User) { +export function generateMutedUserQueryForUsers(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const mutingQuery = Mutings.createQueryBuilder('muting') .select('muting.muteeId') .where('muting.muterId = :muterId', { muterId: me.id }); diff --git a/src/server/api/common/generate-native-user-token.ts b/src/server/api/common/generate-native-user-token.ts index cd30ba98f9..1f791c57ce 100644 --- a/src/server/api/common/generate-native-user-token.ts +++ b/src/server/api/common/generate-native-user-token.ts @@ -1,3 +1,3 @@ -import { secureRndstr } from '../../../misc/secure-rndstr'; +import { secureRndstr } from '@/misc/secure-rndstr'; export default () => secureRndstr(16, true); diff --git a/src/server/api/common/generate-replies-query.ts b/src/server/api/common/generate-replies-query.ts index 8ebe93f20a..29b1e17c2e 100644 --- a/src/server/api/common/generate-replies-query.ts +++ b/src/server/api/common/generate-replies-query.ts @@ -1,7 +1,7 @@ import { User } from '../../../models/entities/user'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere(new Brackets(qb => { qb .where(`note.replyId IS NULL`) // 返信ではない diff --git a/src/server/api/common/generate-visibility-query.ts b/src/server/api/common/generate-visibility-query.ts index d981b4a613..72ed1c46ea 100644 --- a/src/server/api/common/generate-visibility-query.ts +++ b/src/server/api/common/generate-visibility-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Followings } from '../../../models'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere(new Brackets(qb => { qb .where(`note.visibility = 'public'`) diff --git a/src/server/api/common/getters.ts b/src/server/api/common/getters.ts index 04716d19c6..73fbadfee6 100644 --- a/src/server/api/common/getters.ts +++ b/src/server/api/common/getters.ts @@ -1,4 +1,4 @@ -import { IdentifiableError } from '../../../misc/identifiable-error'; +import { IdentifiableError } from '@/misc/identifiable-error'; import { User } from '../../../models/entities/user'; import { Note } from '../../../models/entities/note'; import { Notes, Users } from '../../../models'; diff --git a/src/server/api/common/read-messaging-message.ts b/src/server/api/common/read-messaging-message.ts index 90510bb393..6c9fcf973f 100644 --- a/src/server/api/common/read-messaging-message.ts +++ b/src/server/api/common/read-messaging-message.ts @@ -1,11 +1,11 @@ import { publishMainStream, publishGroupMessagingStream } from '../../../services/stream'; import { publishMessagingStream } from '../../../services/stream'; import { publishMessagingIndexStream } from '../../../services/stream'; -import { User, ILocalUser, IRemoteUser } from '../../../models/entities/user'; +import { User, IRemoteUser } from '../../../models/entities/user'; import { MessagingMessage } from '../../../models/entities/messaging-message'; import { MessagingMessages, UserGroupJoinings, Users } from '../../../models'; import { In } from 'typeorm'; -import { IdentifiableError } from '../../../misc/identifiable-error'; +import { IdentifiableError } from '@/misc/identifiable-error'; import { UserGroup } from '../../../models/entities/user-group'; import { toArray } from '../../../prelude/array'; import { renderReadActivity } from '../../../remote/activitypub/renderer/read'; @@ -107,7 +107,7 @@ export async function readGroupMessagingMessage( } } -export async function deliverReadActivity(user: ILocalUser, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { +export async function deliverReadActivity(user: { id: User['id']; host: null; }, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { messages = toArray(messages).filter(x => x.uri); const contents = messages.map(x => renderReadActivity(user, x)); diff --git a/src/server/api/common/signin.ts b/src/server/api/common/signin.ts index 50f79f1919..af09a70340 100644 --- a/src/server/api/common/signin.ts +++ b/src/server/api/common/signin.ts @@ -1,9 +1,9 @@ import * as Koa from 'koa'; -import config from '../../../config'; +import config from '@/config'; import { ILocalUser } from '../../../models/entities/user'; import { Signins } from '../../../models'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { publishMainStream } from '../../../services/stream'; export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { diff --git a/src/server/api/common/signup.ts b/src/server/api/common/signup.ts index 26a9d03e0f..b8d197317a 100644 --- a/src/server/api/common/signup.ts +++ b/src/server/api/common/signup.ts @@ -5,8 +5,8 @@ import { User } from '../../../models/entities/user'; import { Users, UsedUsernames } from '../../../models'; import { UserProfile } from '../../../models/entities/user-profile'; import { getConnection } from 'typeorm'; -import { genId } from '../../../misc/gen-id'; -import { toPunyNullable } from '../../../misc/convert-host'; +import { genId } from '@/misc/gen-id'; +import { toPunyNullable } from '@/misc/convert-host'; import { UserKeypair } from '../../../models/entities/user-keypair'; import { usersChart } from '../../../services/chart'; import { UsedUsername } from '../../../models/entities/used-username'; diff --git a/src/server/api/define.ts b/src/server/api/define.ts index 4e59357c13..432d5017e8 100644 --- a/src/server/api/define.ts +++ b/src/server/api/define.ts @@ -2,9 +2,21 @@ import * as fs from 'fs'; import { ILocalUser } from '../../models/entities/user'; import { IEndpointMeta } from './endpoints'; import { ApiError } from './error'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { AccessToken } from '../../models/entities/access-token'; +type SimpleUserInfo = { + id: ILocalUser['id']; + host: ILocalUser['host']; + username: ILocalUser['username']; + uri: ILocalUser['uri']; + inbox: ILocalUser['inbox']; + sharedInbox: ILocalUser['sharedInbox']; + isAdmin: ILocalUser['isAdmin']; + isModerator: ILocalUser['isModerator']; + isSilenced: ILocalUser['isSilenced']; +}; + // TODO: defaultが設定されている場合はその型も考慮する type Params<T extends IEndpointMeta> = { [P in keyof T['params']]: NonNullable<T['params']>[P]['transform'] extends Function @@ -15,13 +27,12 @@ type Params<T extends IEndpointMeta> = { export type Response = Record<string, any> | void; type executor<T extends IEndpointMeta> = - (params: Params<T>, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any, cleanup?: Function) => + (params: Params<T>, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any, cleanup?: Function) => Promise<T['res'] extends undefined ? Response : SchemaType<NonNullable<T['res']>>>; -// TODO: API関数に user まるごと渡すのではなくユーザーIDなどの最小限のプロパティだけ渡すようにしたい(キャッシュとか考えないでよくなるため) export default function <T extends IEndpointMeta>(meta: T, cb: executor<T>) - : (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => Promise<any> { - return (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => { + : (params: any, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any) => Promise<any> { + return (params: any, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any) => { function cleanup() { fs.unlink(file.path, () => {}); } diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts index 1a8fca6dfa..9847cd2bb6 100644 --- a/src/server/api/endpoints.ts +++ b/src/server/api/endpoints.ts @@ -1,7 +1,7 @@ import { Context } from 'cafy'; import * as path from 'path'; import * as glob from 'glob'; -import { Schema } from '../../misc/schema'; +import { Schema } from '@/misc/schema'; export type Param = { validator: Context<any>; diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts index d63997d203..bbb696394e 100644 --- a/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { AbuseUserReports } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/src/server/api/endpoints/admin/accounts/create.ts index 27ceca158b..9e3fc46acd 100644 --- a/src/server/api/endpoints/admin/accounts/create.ts +++ b/src/server/api/endpoints/admin/accounts/create.ts @@ -34,7 +34,8 @@ export const meta = { } }; -export default define(meta, async (ps, me) => { +export default define(meta, async (ps, _me) => { + const me = _me ? await Users.findOneOrFail(_me.id) : null; const noUsers = (await Users.count({ host: null, })) === 0; diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/src/server/api/endpoints/admin/announcements/create.ts index dc01621c75..3675e50bac 100644 --- a/src/server/api/endpoints/admin/announcements/create.ts +++ b/src/server/api/endpoints/admin/announcements/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Announcements } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/announcements/delete.ts b/src/server/api/endpoints/admin/announcements/delete.ts index 6c9c065757..44a46ae435 100644 --- a/src/server/api/endpoints/admin/announcements/delete.ts +++ b/src/server/api/endpoints/admin/announcements/delete.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Announcements } from '../../../../../models'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/admin/announcements/list.ts b/src/server/api/endpoints/admin/announcements/list.ts index 5489b0d2c7..a42f24c45e 100644 --- a/src/server/api/endpoints/admin/announcements/list.ts +++ b/src/server/api/endpoints/admin/announcements/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Announcements, AnnouncementReads } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/announcements/update.ts b/src/server/api/endpoints/admin/announcements/update.ts index 9c4165eae0..c869e7c9c6 100644 --- a/src/server/api/endpoints/admin/announcements/update.ts +++ b/src/server/api/endpoints/admin/announcements/update.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Announcements } from '../../../../../models'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts index 9da3b632ac..8143239b54 100644 --- a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts +++ b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { deleteFile } from '../../../../services/drive/delete-file'; import { DriveFiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/delete-logs.ts b/src/server/api/endpoints/admin/delete-logs.ts index 3719387312..1caea46ea0 100644 --- a/src/server/api/endpoints/admin/delete-logs.ts +++ b/src/server/api/endpoints/admin/delete-logs.ts @@ -14,5 +14,5 @@ export const meta = { }; export default define(meta, async (ps) => { - await Logs.delete({}); + await Logs.clear(); // TRUNCATE }); diff --git a/src/server/api/endpoints/admin/drive/files.ts b/src/server/api/endpoints/admin/drive/files.ts index 496050d2df..1a5c940f1e 100644 --- a/src/server/api/endpoints/admin/drive/files.ts +++ b/src/server/api/endpoints/admin/drive/files.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../../define'; import { DriveFiles } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/src/server/api/endpoints/admin/drive/show-file.ts index 96478a1c7d..cfe25306c2 100644 --- a/src/server/api/endpoints/admin/drive/show-file.ts +++ b/src/server/api/endpoints/admin/drive/show-file.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts index 77e29cfb2a..04eac79d6a 100644 --- a/src/server/api/endpoints/admin/emoji/add.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis, DriveFiles } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; import { ApiError } from '../../../error'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import rndstr from 'rndstr'; import { publishBroadcastStream } from '../../../../../services/stream'; diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts index 5c3c4f6fc5..7df7830072 100644 --- a/src/server/api/endpoints/admin/emoji/copy.ts +++ b/src/server/api/endpoints/admin/emoji/copy.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; import { DriveFile } from '../../../../../models/entities/drive-file'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; export const meta = { diff --git a/src/server/api/endpoints/admin/emoji/list-remote.ts b/src/server/api/endpoints/admin/emoji/list-remote.ts index 81029fbbba..6a4e86c342 100644 --- a/src/server/api/endpoints/admin/emoji/list-remote.ts +++ b/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts index 6d042b0afd..9e50ce61c8 100644 --- a/src/server/api/endpoints/admin/emoji/list.ts +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emoji } from '../../../../../models/entities/emoji'; export const meta = { @@ -96,9 +96,9 @@ export default define(meta, async (ps) => { emojis = await q.getMany(); emojis = emojis.filter(emoji => - emoji.name.includes(ps.query) || - emoji.aliases.some(a => a.includes(ps.query)) || - emoji.category?.includes(ps.query)); + emoji.name.includes(ps.query!) || + emoji.aliases.some(a => a.includes(ps.query!)) || + emoji.category?.includes(ps.query!)); emojis.splice(ps.limit! + 1); } else { diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts index 19ffa1c166..3f87dded3b 100644 --- a/src/server/api/endpoints/admin/emoji/remove.ts +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts index 2493b62c2a..2fa6587e2b 100644 --- a/src/server/api/endpoints/admin/emoji/update.ts +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts index 923a5f52cb..65b3b6e260 100644 --- a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts +++ b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Instances } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata'; export const meta = { diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/src/server/api/endpoints/admin/federation/update-instance.ts index 7206e4fb2e..3e9d243d74 100644 --- a/src/server/api/endpoints/admin/federation/update-instance.ts +++ b/src/server/api/endpoints/admin/federation/update-instance.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Instances } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/invite.ts b/src/server/api/endpoints/admin/invite.ts index 987105791f..2a87fae714 100644 --- a/src/server/api/endpoints/admin/invite.ts +++ b/src/server/api/endpoints/admin/invite.ts @@ -1,7 +1,7 @@ import rndstr from 'rndstr'; import define from '../../define'; import { RegistrationTickets } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/src/server/api/endpoints/admin/moderators/add.ts index fd862a9a4f..a96cf35db1 100644 --- a/src/server/api/endpoints/admin/moderators/add.ts +++ b/src/server/api/endpoints/admin/moderators/add.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Users } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/moderators/remove.ts b/src/server/api/endpoints/admin/moderators/remove.ts index 1eee750bc4..c9c884092c 100644 --- a/src/server/api/endpoints/admin/moderators/remove.ts +++ b/src/server/api/endpoints/admin/moderators/remove.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Users } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/promo/create.ts b/src/server/api/endpoints/admin/promo/create.ts index aa22e68ebd..3ee1616145 100644 --- a/src/server/api/endpoints/admin/promo/create.ts +++ b/src/server/api/endpoints/admin/promo/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/src/server/api/endpoints/admin/queue/deliver-delayed.ts index 221aa35e48..1de5b060e2 100644 --- a/src/server/api/endpoints/admin/queue/deliver-delayed.ts +++ b/src/server/api/endpoints/admin/queue/deliver-delayed.ts @@ -1,5 +1,6 @@ +import { deliverQueue } from '@/queue/queues'; +import { URL } from 'url'; import define from '../../../define'; -import { deliverQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/src/server/api/endpoints/admin/queue/inbox-delayed.ts index 52f67cb514..3599c012a5 100644 --- a/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ b/src/server/api/endpoints/admin/queue/inbox-delayed.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import define from '../../../define'; import { inboxQueue } from '../../../../../queue'; diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/src/server/api/endpoints/admin/queue/jobs.ts index 5ab78e3c48..ffae1426be 100644 --- a/src/server/api/endpoints/admin/queue/jobs.ts +++ b/src/server/api/endpoints/admin/queue/jobs.ts @@ -1,6 +1,6 @@ +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; import $ from 'cafy'; import define from '../../../define'; -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/queue/stats.ts b/src/server/api/endpoints/admin/queue/stats.ts index bd64d2ac06..cc1cf8a9e0 100644 --- a/src/server/api/endpoints/admin/queue/stats.ts +++ b/src/server/api/endpoints/admin/queue/stats.ts @@ -1,5 +1,5 @@ +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; import define from '../../../define'; -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/relays/add.ts b/src/server/api/endpoints/admin/relays/add.ts index 831e05c835..e10bd92c8d 100644 --- a/src/server/api/endpoints/admin/relays/add.ts +++ b/src/server/api/endpoints/admin/relays/add.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import $ from 'cafy'; import define from '../../../define'; import { addRelay } from '../../../../../services/relay'; diff --git a/src/server/api/endpoints/admin/reset-password.ts b/src/server/api/endpoints/admin/reset-password.ts index 2f55cf23a1..a316ef9c1d 100644 --- a/src/server/api/endpoints/admin/reset-password.ts +++ b/src/server/api/endpoints/admin/reset-password.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import * as bcrypt from 'bcryptjs'; import rndstr from 'rndstr'; diff --git a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts index f8cd8def57..1446951828 100644 --- a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { AbuseUserReports } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/server-info.ts b/src/server/api/endpoints/admin/server-info.ts index 3b48a811e5..33e6190974 100644 --- a/src/server/api/endpoints/admin/server-info.ts +++ b/src/server/api/endpoints/admin/server-info.ts @@ -2,7 +2,7 @@ import * as os from 'os'; import * as si from 'systeminformation'; import { getConnection } from 'typeorm'; import define from '../../define'; -import redis from '../../../../db/redis'; +import { redisClient } from '../../../../db/redis'; export const meta = { requireCredential: true as const, @@ -115,7 +115,7 @@ export default define(meta, async () => { os: os.platform(), node: process.version, psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), - redis: redis.server_info.redis_version, + redis: redisClient.server_info.redis_version, cpu: { model: os.cpus()[0].model, cores: os.cpus().length diff --git a/src/server/api/endpoints/admin/show-moderation-logs.ts b/src/server/api/endpoints/admin/show-moderation-logs.ts index f41d91647a..59e6f0033d 100644 --- a/src/server/api/endpoints/admin/show-moderation-logs.ts +++ b/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ModerationLogs } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/show-user.ts b/src/server/api/endpoints/admin/show-user.ts index 63889a9e6b..52c4458c35 100644 --- a/src/server/api/endpoints/admin/show-user.ts +++ b/src/server/api/endpoints/admin/show-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/silence-user.ts b/src/server/api/endpoints/admin/silence-user.ts index cd5c339a5b..d057459824 100644 --- a/src/server/api/endpoints/admin/silence-user.ts +++ b/src/server/api/endpoints/admin/silence-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts index 10be88b8f1..a4485445c9 100644 --- a/src/server/api/endpoints/admin/suspend-user.ts +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import deleteFollowing from '../../../../services/following/delete'; import { Users, Followings, Notifications } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/src/server/api/endpoints/admin/unsilence-user.ts index 63e4be06f3..c811ae5d1c 100644 --- a/src/server/api/endpoints/admin/unsilence-user.ts +++ b/src/server/api/endpoints/admin/unsilence-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/src/server/api/endpoints/admin/unsuspend-user.ts index 9690d6ef0b..7658d37f8b 100644 --- a/src/server/api/endpoints/admin/unsuspend-user.ts +++ b/src/server/api/endpoints/admin/unsuspend-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index 163d7a2519..d9ce7c061c 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -3,8 +3,8 @@ import define from '../../define'; import { getConnection } from 'typeorm'; import { Meta } from '../../../../models/entities/meta'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../../misc/hard-limits'; -import { ID } from '../../../../misc/cafy-id'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/update-remote-user.ts b/src/server/api/endpoints/admin/update-remote-user.ts index a6b5ef1e85..9577ac0a55 100644 --- a/src/server/api/endpoints/admin/update-remote-user.ts +++ b/src/server/api/endpoints/admin/update-remote-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getRemoteUser } from '../../common/getters'; import { updatePerson } from '../../../../remote/activitypub/models/person'; diff --git a/src/server/api/endpoints/announcements.ts b/src/server/api/endpoints/announcements.ts index 5d0fd9bdfa..a7c477bc7c 100644 --- a/src/server/api/endpoints/announcements.ts +++ b/src/server/api/endpoints/announcements.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../define'; import { Announcements, AnnouncementReads } from '../../../models'; import { makePaginationQuery } from '../common/make-pagination-query'; diff --git a/src/server/api/endpoints/antennas/create.ts b/src/server/api/endpoints/antennas/create.ts index b5f0eead2a..04ca21bba7 100644 --- a/src/server/api/endpoints/antennas/create.ts +++ b/src/server/api/endpoints/antennas/create.ts @@ -1,9 +1,10 @@ import $ from 'cafy'; import define from '../../define'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { ApiError } from '../../error'; +import { publishInternalEvent } from '../../../../services/stream'; export const meta = { desc: { @@ -88,7 +89,7 @@ export default define(meta, async (ps, user) => { let userList; let userGroupJoining; - if (ps.src === 'list') { + if (ps.src === 'list' && ps.userListId) { userList = await UserLists.findOne({ id: ps.userListId, userId: user.id, @@ -97,7 +98,7 @@ export default define(meta, async (ps, user) => { if (userList == null) { throw new ApiError(meta.errors.noSuchUserList); } - } else if (ps.src === 'group') { + } else if (ps.src === 'group' && ps.userGroupId) { userGroupJoining = await UserGroupJoinings.findOne({ userGroupId: ps.userGroupId, userId: user.id, @@ -108,7 +109,7 @@ export default define(meta, async (ps, user) => { } } - const antenna = await Antennas.save({ + const antenna = await Antennas.insert({ id: genId(), createdAt: new Date(), userId: user.id, @@ -123,7 +124,9 @@ export default define(meta, async (ps, user) => { withReplies: ps.withReplies, withFile: ps.withFile, notify: ps.notify, - }); + }).then(x => Antennas.findOneOrFail(x.identifiers[0])); + + publishInternalEvent('antennaCreated', antenna); return await Antennas.pack(antenna); }); diff --git a/src/server/api/endpoints/antennas/delete.ts b/src/server/api/endpoints/antennas/delete.ts index 9008c37c8e..5d617bb5b5 100644 --- a/src/server/api/endpoints/antennas/delete.ts +++ b/src/server/api/endpoints/antennas/delete.ts @@ -1,8 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Antennas } from '../../../../models'; +import { publishInternalEvent } from '../../../../services/stream'; export const meta = { desc: { @@ -42,4 +43,6 @@ export default define(meta, async (ps, user) => { } await Antennas.delete(antenna.id); + + publishInternalEvent('antennaDeleted', antenna); }); diff --git a/src/server/api/endpoints/antennas/notes.ts b/src/server/api/endpoints/antennas/notes.ts index 6fd3cf2df5..456c1b6e00 100644 --- a/src/server/api/endpoints/antennas/notes.ts +++ b/src/server/api/endpoints/antennas/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Antennas, Notes, AntennaNotes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/antennas/show.ts b/src/server/api/endpoints/antennas/show.ts index ed400f830c..af2a28b793 100644 --- a/src/server/api/endpoints/antennas/show.ts +++ b/src/server/api/endpoints/antennas/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Antennas } from '../../../../models'; diff --git a/src/server/api/endpoints/antennas/update.ts b/src/server/api/endpoints/antennas/update.ts index 58f4e68c89..17b0f854f3 100644 --- a/src/server/api/endpoints/antennas/update.ts +++ b/src/server/api/endpoints/antennas/update.ts @@ -1,8 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; +import { publishInternalEvent } from '../../../../services/stream'; export const meta = { desc: { @@ -107,7 +108,7 @@ export default define(meta, async (ps, user) => { let userList; let userGroupJoining; - if (ps.src === 'list') { + if (ps.src === 'list' && ps.userListId) { userList = await UserLists.findOne({ id: ps.userListId, userId: user.id, @@ -116,7 +117,7 @@ export default define(meta, async (ps, user) => { if (userList == null) { throw new ApiError(meta.errors.noSuchUserList); } - } else if (ps.src === 'group') { + } else if (ps.src === 'group' && ps.userGroupId) { userGroupJoining = await UserGroupJoinings.findOne({ userGroupId: ps.userGroupId, userId: user.id, @@ -141,5 +142,7 @@ export default define(meta, async (ps, user) => { notify: ps.notify, }); + publishInternalEvent('antennaUpdated', Antennas.findOneOrFail(antenna.id)); + return await Antennas.pack(antenna.id); }); diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts index e8297db472..2ce11160e8 100644 --- a/src/server/api/endpoints/ap/show.ts +++ b/src/server/api/endpoints/ap/show.ts @@ -1,15 +1,15 @@ import $ from 'cafy'; import define from '../../define'; -import config from '../../../../config'; +import config from '@/config'; import { createPerson } from '../../../../remote/activitypub/models/person'; import { createNote } from '../../../../remote/activitypub/models/note'; import Resolver from '../../../../remote/activitypub/resolver'; import { ApiError } from '../../error'; -import { extractDbHost } from '../../../../misc/convert-host'; +import { extractDbHost } from '@/misc/convert-host'; import { Users, Notes } from '../../../../models'; import { Note } from '../../../../models/entities/note'; import { User } from '../../../../models/entities/user'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { validActor, validPost } from '../../../../remote/activitypub/type'; export const meta = { diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts index 776865ffb6..db72bd1c42 100644 --- a/src/server/api/endpoints/app/create.ts +++ b/src/server/api/endpoints/app/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../define'; import { Apps } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { unique } from '../../../../prelude/array'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['app'], diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts index 254ae30884..65f8c77981 100644 --- a/src/server/api/endpoints/app/show.ts +++ b/src/server/api/endpoints/app/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Apps } from '../../../../models'; @@ -46,6 +46,6 @@ export default define(meta, async (ps, user, token) => { return await Apps.pack(ap, user, { detail: true, - includeSecret: isSecure && (ap.userId === user.id) + includeSecret: isSecure && (ap.userId === user!.id) }); }); diff --git a/src/server/api/endpoints/auth/accept.ts b/src/server/api/endpoints/auth/accept.ts index 444053a946..ee0d0421c9 100644 --- a/src/server/api/endpoints/auth/accept.ts +++ b/src/server/api/endpoints/auth/accept.ts @@ -3,8 +3,8 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { AuthSessions, AccessTokens, Apps } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { genId } from '@/misc/gen-id'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts index 5596e6122b..e0d003c499 100644 --- a/src/server/api/endpoints/auth/session/generate.ts +++ b/src/server/api/endpoints/auth/session/generate.ts @@ -1,10 +1,10 @@ import { v4 as uuid } from 'uuid'; import $ from 'cafy'; -import config from '../../../../../config'; +import config from '@/config'; import define from '../../../define'; import { ApiError } from '../../../error'; import { Apps, AuthSessions } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/blocking/create.ts b/src/server/api/endpoints/blocking/create.ts index dfab338a8b..60fde8ad78 100644 --- a/src/server/api/endpoints/blocking/create.ts +++ b/src/server/api/endpoints/blocking/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import create from '../../../../services/blocking/create'; import define from '../../define'; @@ -62,7 +62,7 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const blocker = user; + const blocker = await Users.findOneOrFail(user.id); // 自分自身 if (user.id === ps.userId) { @@ -93,7 +93,7 @@ export default define(meta, async (ps, user) => { noteUserId: blockee.id }); - return await Users.pack(blockee.id, user, { + return await Users.pack(blockee.id, blocker, { detail: true }); }); diff --git a/src/server/api/endpoints/blocking/delete.ts b/src/server/api/endpoints/blocking/delete.ts index 22d2df5970..8caa3efc88 100644 --- a/src/server/api/endpoints/blocking/delete.ts +++ b/src/server/api/endpoints/blocking/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import deleteBlocking from '../../../../services/blocking/delete'; import define from '../../define'; @@ -126,7 +126,7 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const blocker = user; + const blocker = await Users.findOneOrFail(user.id); // Check if the blockee is yourself if (user.id === ps.userId) { @@ -152,7 +152,7 @@ export default define(meta, async (ps, user) => { // Delete blocking await deleteBlocking(blocker, blockee); - return await Users.pack(blockee.id, user, { + return await Users.pack(blockee.id, blocker, { detail: true }); }); diff --git a/src/server/api/endpoints/blocking/list.ts b/src/server/api/endpoints/blocking/list.ts index a9bb1c5f96..fe8706b5c2 100644 --- a/src/server/api/endpoints/blocking/list.ts +++ b/src/server/api/endpoints/blocking/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Blockings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/create.ts b/src/server/api/endpoints/channels/create.ts index 53436e703d..c6dc68faf8 100644 --- a/src/server/api/endpoints/channels/create.ts +++ b/src/server/api/endpoints/channels/create.ts @@ -3,8 +3,8 @@ import define from '../../define'; import { ApiError } from '../../error'; import { Channels, DriveFiles } from '../../../../models'; import { Channel } from '../../../../models/entities/channel'; -import { genId } from '../../../../misc/gen-id'; -import { ID } from '../../../../misc/cafy-id'; +import { genId } from '@/misc/gen-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/follow.ts b/src/server/api/endpoints/channels/follow.ts index c5976a8a34..b264f7451a 100644 --- a/src/server/api/endpoints/channels/follow.ts +++ b/src/server/api/endpoints/channels/follow.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, ChannelFollowings } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { publishUserEvent } from '../../../../services/stream'; export const meta = { diff --git a/src/server/api/endpoints/channels/followed.ts b/src/server/api/endpoints/channels/followed.ts index bd37d420f6..7f0cfe4941 100644 --- a/src/server/api/endpoints/channels/followed.ts +++ b/src/server/api/endpoints/channels/followed.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Channels, ChannelFollowings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/owned.ts b/src/server/api/endpoints/channels/owned.ts index 1a7e04640d..4f538f651e 100644 --- a/src/server/api/endpoints/channels/owned.ts +++ b/src/server/api/endpoints/channels/owned.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Channels } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/show.ts b/src/server/api/endpoints/channels/show.ts index 63057dd57f..d5f182da11 100644 --- a/src/server/api/endpoints/channels/show.ts +++ b/src/server/api/endpoints/channels/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels } from '../../../../models'; diff --git a/src/server/api/endpoints/channels/timeline.ts b/src/server/api/endpoints/channels/timeline.ts index 00a7cd86d5..494221010a 100644 --- a/src/server/api/endpoints/channels/timeline.ts +++ b/src/server/api/endpoints/channels/timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Notes, Channels } from '../../../../models'; @@ -97,7 +97,7 @@ export default define(meta, async (ps, user) => { const timeline = await query.take(ps.limit!).getMany(); - activeUsersChart.update(user); + if (user) activeUsersChart.update(user); return await Notes.packMany(timeline, user); }); diff --git a/src/server/api/endpoints/channels/unfollow.ts b/src/server/api/endpoints/channels/unfollow.ts index 3eb0f1519b..116af50337 100644 --- a/src/server/api/endpoints/channels/unfollow.ts +++ b/src/server/api/endpoints/channels/unfollow.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, ChannelFollowings } from '../../../../models'; diff --git a/src/server/api/endpoints/channels/update.ts b/src/server/api/endpoints/channels/update.ts index ca35fe85cb..1495297ee5 100644 --- a/src/server/api/endpoints/channels/update.ts +++ b/src/server/api/endpoints/channels/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, DriveFiles } from '../../../../models'; diff --git a/src/server/api/endpoints/charts/user/drive.ts b/src/server/api/endpoints/charts/user/drive.ts index 5aae5bd757..7f4218b924 100644 --- a/src/server/api/endpoints/charts/user/drive.ts +++ b/src/server/api/endpoints/charts/user/drive.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserDriveChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/following.ts b/src/server/api/endpoints/charts/user/following.ts index 9d772c39c9..63eb90a49a 100644 --- a/src/server/api/endpoints/charts/user/following.ts +++ b/src/server/api/endpoints/charts/user/following.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserFollowingChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/notes.ts b/src/server/api/endpoints/charts/user/notes.ts index 8de7c0c3e4..87425e3dc8 100644 --- a/src/server/api/endpoints/charts/user/notes.ts +++ b/src/server/api/endpoints/charts/user/notes.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserNotesChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/reactions.ts b/src/server/api/endpoints/charts/user/reactions.ts index 4c37305fc3..7ded604ac2 100644 --- a/src/server/api/endpoints/charts/user/reactions.ts +++ b/src/server/api/endpoints/charts/user/reactions.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserReactionsChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/clips/add-note.ts b/src/server/api/endpoints/clips/add-note.ts index ee6a117b2d..3d72def4f5 100644 --- a/src/server/api/endpoints/clips/add-note.ts +++ b/src/server/api/endpoints/clips/add-note.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips } from '../../../../models'; import { ApiError } from '../../error'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getNote } from '../../common/getters'; export const meta = { diff --git a/src/server/api/endpoints/clips/create.ts b/src/server/api/endpoints/clips/create.ts index b26c42c56c..fb2a77fe5b 100644 --- a/src/server/api/endpoints/clips/create.ts +++ b/src/server/api/endpoints/clips/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Clips } from '../../../../models'; export const meta = { @@ -32,14 +32,14 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const clip = await Clips.save({ + const clip = await Clips.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, isPublic: ps.isPublic, description: ps.description, - }); + }).then(x => Clips.findOneOrFail(x.identifiers[0])); return await Clips.pack(clip); }); diff --git a/src/server/api/endpoints/clips/delete.ts b/src/server/api/endpoints/clips/delete.ts index 746f93188c..20b2addb76 100644 --- a/src/server/api/endpoints/clips/delete.ts +++ b/src/server/api/endpoints/clips/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/clips/notes.ts b/src/server/api/endpoints/clips/notes.ts index 676629c328..5fd17584d3 100644 --- a/src/server/api/endpoints/clips/notes.ts +++ b/src/server/api/endpoints/clips/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips, Notes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/clips/show.ts b/src/server/api/endpoints/clips/show.ts index 8c285d88b5..43d2719129 100644 --- a/src/server/api/endpoints/clips/show.ts +++ b/src/server/api/endpoints/clips/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/clips/update.ts b/src/server/api/endpoints/clips/update.ts index 041691da2a..a368174e76 100644 --- a/src/server/api/endpoints/clips/update.ts +++ b/src/server/api/endpoints/clips/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts index 527b7719a4..0100d4da79 100644 --- a/src/server/api/endpoints/drive.ts +++ b/src/server/api/endpoints/drive.ts @@ -1,5 +1,5 @@ import define from '../define'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { DriveFiles } from '../../../models'; export const meta = { @@ -34,7 +34,7 @@ export default define(meta, async (ps, user) => { const instance = await fetchMeta(true); // Calculate drive usage - const usage = await DriveFiles.calcDriveUsageOf(user); + const usage = await DriveFiles.calcDriveUsageOf(user.id); return { capacity: 1024 * 1024 * instance.localDriveCapacityMb, diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts index 00705fb9b7..85dc07cc16 100644 --- a/src/server/api/endpoints/drive/files.ts +++ b/src/server/api/endpoints/drive/files.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFiles } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts index e1fc27f599..ea09581ba9 100644 --- a/src/server/api/endpoints/drive/files/attached-notes.ts +++ b/src/server/api/endpoints/drive/files/attached-notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFiles, Notes } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index c0bb6bcc6e..82ff04e092 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,6 +1,6 @@ import * as ms from 'ms'; import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import create from '../../../../../services/drive/add-file'; import define from '../../../define'; import { apiLogger } from '../../../logger'; diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts index 77d112ec94..211afaaba1 100644 --- a/src/server/api/endpoints/drive/files/delete.ts +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { deleteFile } from '../../../../../services/drive/delete-file'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts index 5872e2c0c1..b3613ca01b 100644 --- a/src/server/api/endpoints/drive/files/find.ts +++ b/src/server/api/endpoints/drive/files/find.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { DriveFiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts index 39f4b7d2f7..f4922bff13 100644 --- a/src/server/api/endpoints/drive/files/show.ts +++ b/src/server/api/endpoints/drive/files/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFile } from '../../../../../models/entities/drive-file'; diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts index 7e43765c06..6eda83967b 100644 --- a/src/server/api/endpoints/drive/files/update.ts +++ b/src/server/api/endpoints/drive/files/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/drive/files/upload-from-url.ts b/src/server/api/endpoints/drive/files/upload-from-url.ts index 296211c091..1b33099aa4 100644 --- a/src/server/api/endpoints/drive/files/upload-from-url.ts +++ b/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; import define from '../../../define'; diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts index f662d53ba6..89453e6e09 100644 --- a/src/server/api/endpoints/drive/folders.ts +++ b/src/server/api/endpoints/drive/folders.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFolders } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts index edaa74532d..d2c5e00a9f 100644 --- a/src/server/api/endpoints/drive/folders/create.ts +++ b/src/server/api/endpoints/drive/folders/create.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFolders } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { @@ -68,13 +68,13 @@ export default define(meta, async (ps, user) => { } // Create folder - const folder = await DriveFolders.save({ + const folder = await DriveFolders.insert({ id: genId(), createdAt: new Date(), name: ps.name, parentId: parent !== null ? parent.id : null, userId: user.id - }); + }).then(x => DriveFolders.findOneOrFail(x.identifiers[0])); const folderObj = await DriveFolders.pack(folder); diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts index 439ef06a50..2a418069c9 100644 --- a/src/server/api/endpoints/drive/folders/delete.ts +++ b/src/server/api/endpoints/drive/folders/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { publishDriveStream } from '../../../../../services/stream'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts index 72ce1d192b..e3f6aa4a91 100644 --- a/src/server/api/endpoints/drive/folders/find.ts +++ b/src/server/api/endpoints/drive/folders/find.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { DriveFolders } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts index b600b5e39f..ae00b9e367 100644 --- a/src/server/api/endpoints/drive/folders/show.ts +++ b/src/server/api/endpoints/drive/folders/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFolders } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts index c2a272c247..066013287c 100644 --- a/src/server/api/endpoints/drive/folders/update.ts +++ b/src/server/api/endpoints/drive/folders/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts index 94c2051bbe..ca88acf5fe 100644 --- a/src/server/api/endpoints/drive/stream.ts +++ b/src/server/api/endpoints/drive/stream.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFiles } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/followers.ts b/src/server/api/endpoints/federation/followers.ts index a5c564b0a8..727eada682 100644 --- a/src/server/api/endpoints/federation/followers.ts +++ b/src/server/api/endpoints/federation/followers.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/following.ts b/src/server/api/endpoints/federation/following.ts index 80820f5a26..c6bc71a982 100644 --- a/src/server/api/endpoints/federation/following.ts +++ b/src/server/api/endpoints/federation/following.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts index 239756af53..29515f0eb4 100644 --- a/src/server/api/endpoints/federation/instances.ts +++ b/src/server/api/endpoints/federation/instances.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; -import config from '../../../../config'; +import config from '@/config'; import define from '../../define'; import { Instances } from '../../../../models'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/federation/show-instance.ts b/src/server/api/endpoints/federation/show-instance.ts index 1a0bcdb23e..549d7340fb 100644 --- a/src/server/api/endpoints/federation/show-instance.ts +++ b/src/server/api/endpoints/federation/show-instance.ts @@ -1,8 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { Instances } from '../../../../models'; -import { toPuny } from '../../../../misc/convert-host'; -import config from '../../../../config'; +import { toPuny } from '@/misc/convert-host'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/federation/users.ts b/src/server/api/endpoints/federation/users.ts index 1bd053ae85..77d9e2e076 100644 --- a/src/server/api/endpoints/federation/users.ts +++ b/src/server/api/endpoints/federation/users.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts index ca46d59c78..6ce71089b5 100644 --- a/src/server/api/endpoints/following/create.ts +++ b/src/server/api/endpoints/following/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import create from '../../../../services/following/create'; import define from '../../define'; diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts index d3abda9265..823d85c170 100644 --- a/src/server/api/endpoints/following/delete.ts +++ b/src/server/api/endpoints/following/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import deleteFollowing from '../../../../services/following/delete'; import define from '../../define'; diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts index 6dd93c0d45..4a0fdb0af9 100644 --- a/src/server/api/endpoints/following/requests/accept.ts +++ b/src/server/api/endpoints/following/requests/accept.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import acceptFollowRequest from '../../../../../services/following/requests/accept'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts index ef21ee4f27..8d4538d43e 100644 --- a/src/server/api/endpoints/following/requests/cancel.ts +++ b/src/server/api/endpoints/following/requests/cancel.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import cancelFollowRequest from '../../../../../services/following/requests/cancel'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts index d5c9a5b7e4..8ef2c93341 100644 --- a/src/server/api/endpoints/following/requests/reject.ts +++ b/src/server/api/endpoints/following/requests/reject.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import rejectFollowRequest from '../../../../../services/following/requests/reject'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/games/reversi/games.ts b/src/server/api/endpoints/games/reversi/games.ts index fa8bf20353..6ac150ef2c 100644 --- a/src/server/api/endpoints/games/reversi/games.ts +++ b/src/server/api/endpoints/games/reversi/games.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ReversiGames } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; @@ -140,7 +140,7 @@ export default define(meta, async (ps, user) => { const query = makePaginationQuery(ReversiGames.createQueryBuilder('game'), ps.sinceId, ps.untilId) .andWhere('game.isStarted = TRUE'); - if (ps.my) { + if (ps.my && user) { query.andWhere(new Brackets(qb => { qb .where('game.user1Id = :userId', { userId: user.id }) .orWhere('game.user2Id = :userId', { userId: user.id }); diff --git a/src/server/api/endpoints/games/reversi/games/show.ts b/src/server/api/endpoints/games/reversi/games/show.ts index 75599885c9..a6fbdbaf6d 100644 --- a/src/server/api/endpoints/games/reversi/games/show.ts +++ b/src/server/api/endpoints/games/reversi/games/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import Reversi from '../../../../../../games/reversi/core'; import define from '../../../../define'; import { ApiError } from '../../../../error'; diff --git a/src/server/api/endpoints/games/reversi/games/surrender.ts b/src/server/api/endpoints/games/reversi/games/surrender.ts index 9fb436d427..346293f11d 100644 --- a/src/server/api/endpoints/games/reversi/games/surrender.ts +++ b/src/server/api/endpoints/games/reversi/games/surrender.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishReversiGameStream } from '../../../../../../services/stream'; import define from '../../../../define'; import { ApiError } from '../../../../error'; diff --git a/src/server/api/endpoints/games/reversi/match.ts b/src/server/api/endpoints/games/reversi/match.ts index f1eb3aba28..2c4ec2ebd8 100644 --- a/src/server/api/endpoints/games/reversi/match.ts +++ b/src/server/api/endpoints/games/reversi/match.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishMainStream, publishReversiStream } from '../../../../../services/stream'; import { eighteight } from '../../../../../games/reversi/maps'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { ReversiMatchings, ReversiGames } from '../../../../../models'; import { ReversiGame } from '../../../../../models/entities/games/reversi/game'; import { ReversiMatching } from '../../../../../models/entities/games/reversi/matching'; @@ -72,7 +72,7 @@ export default define(meta, async (ps, user) => { isLlotheo: false } as Partial<ReversiGame>); - publishReversiStream(exist.parentId, 'matched', await ReversiGames.pack(game, exist.parentId)); + publishReversiStream(exist.parentId, 'matched', await ReversiGames.pack(game, { id: exist.parentId })); const other = await ReversiMatchings.count({ childId: user.id diff --git a/src/server/api/endpoints/get-online-users-count.ts b/src/server/api/endpoints/get-online-users-count.ts index 7521104886..150ac9e365 100644 --- a/src/server/api/endpoints/get-online-users-count.ts +++ b/src/server/api/endpoints/get-online-users-count.ts @@ -1,6 +1,6 @@ import define from '../define'; -import redis from '../../../db/redis'; -import config from '../../../config'; +import { redisClient } from '../../../db/redis'; +import config from '@/config'; export const meta = { tags: ['meta'], @@ -13,7 +13,7 @@ export const meta = { export default define(meta, (ps, user) => { return new Promise((res, rej) => { - redis.pubsub('numsub', config.host, (_, x) => { + redisClient.pubsub('numsub', config.host, (_, x) => { res({ count: x[1] }); diff --git a/src/server/api/endpoints/hashtags/show.ts b/src/server/api/endpoints/hashtags/show.ts index 49aa36e05a..f80ef38af0 100644 --- a/src/server/api/endpoints/hashtags/show.ts +++ b/src/server/api/endpoints/hashtags/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Hashtags } from '../../../../models'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { diff --git a/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts index 3b5dd3c0c1..5341c3e584 100644 --- a/src/server/api/endpoints/hashtags/trend.ts +++ b/src/server/api/endpoints/hashtags/trend.ts @@ -1,10 +1,10 @@ import { Brackets } from 'typeorm'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { Note } from '../../../../models/entities/note'; -import { safeForSql } from '../../../../misc/safe-for-sql'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { safeForSql } from '@/misc/safe-for-sql'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; /* トレンドに載るためには「『直近a分間のユニーク投稿数が今からa分前~今からb分前の間のユニーク投稿数のn倍以上』のハッシュタグの上位5位以内に入る」ことが必要 diff --git a/src/server/api/endpoints/hashtags/users.ts b/src/server/api/endpoints/hashtags/users.ts index d2f5998681..cecbc80cd2 100644 --- a/src/server/api/endpoints/hashtags/users.ts +++ b/src/server/api/endpoints/hashtags/users.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { Users } from '../../../../models'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { requireCredential: false as const, diff --git a/src/server/api/endpoints/i/2fa/key-done.ts b/src/server/api/endpoints/i/2fa/key-done.ts index 4634944ca7..923a8b386c 100644 --- a/src/server/api/endpoints/i/2fa/key-done.ts +++ b/src/server/api/endpoints/i/2fa/key-done.ts @@ -9,7 +9,7 @@ import { AttestationChallenges, Users } from '../../../../../models'; -import config from '../../../../../config'; +import config from '@/config'; import { procedures, hash } from '../../../2fa'; import { publishMainStream } from '../../../../../services/stream'; diff --git a/src/server/api/endpoints/i/2fa/register-key.ts b/src/server/api/endpoints/i/2fa/register-key.ts index d5cc11c7fb..75f578fc5f 100644 --- a/src/server/api/endpoints/i/2fa/register-key.ts +++ b/src/server/api/endpoints/i/2fa/register-key.ts @@ -4,7 +4,7 @@ import define from '../../../define'; import { UserProfiles, AttestationChallenges } from '../../../../../models'; import { promisify } from 'util'; import * as crypto from 'crypto'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { hash } from '../../../2fa'; const randomBytes = promisify(crypto.randomBytes); diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts index a39b2963e9..d40997d6ed 100644 --- a/src/server/api/endpoints/i/2fa/register.ts +++ b/src/server/api/endpoints/i/2fa/register.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import * as speakeasy from 'speakeasy'; import * as QRCode from 'qrcode'; -import config from '../../../../../config'; +import config from '@/config'; import define from '../../../define'; import { UserProfiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts index 3518bd9c4d..b0d20e9ac9 100644 --- a/src/server/api/endpoints/i/favorites.ts +++ b/src/server/api/endpoints/i/favorites.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { NoteFavorites } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/import-following.ts b/src/server/api/endpoints/i/import-following.ts index c8a539cda3..0349551073 100644 --- a/src/server/api/endpoints/i/import-following.ts +++ b/src/server/api/endpoints/i/import-following.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { createImportFollowingJob } from '../../../../queue'; import ms = require('ms'); diff --git a/src/server/api/endpoints/i/import-user-lists.ts b/src/server/api/endpoints/i/import-user-lists.ts index e360a54681..f40eb2745d 100644 --- a/src/server/api/endpoints/i/import-user-lists.ts +++ b/src/server/api/endpoints/i/import-user-lists.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { createImportUserListsJob } from '../../../../queue'; import ms = require('ms'); diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts index 812a4bd1dd..b481fdba8f 100644 --- a/src/server/api/endpoints/i/notifications.ts +++ b/src/server/api/endpoints/i/notifications.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { readNotification } from '../../common/read-notification'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/page-likes.ts b/src/server/api/endpoints/i/page-likes.ts index 9a83cc1d43..cd5ec3da70 100644 --- a/src/server/api/endpoints/i/page-likes.ts +++ b/src/server/api/endpoints/i/page-likes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { PageLikes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/pages.ts b/src/server/api/endpoints/i/pages.ts index 3fc00e370a..ab42ab6d3f 100644 --- a/src/server/api/endpoints/i/pages.ts +++ b/src/server/api/endpoints/i/pages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Pages } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/pin.ts b/src/server/api/endpoints/i/pin.ts index e13873f601..4bed566935 100644 --- a/src/server/api/endpoints/i/pin.ts +++ b/src/server/api/endpoints/i/pin.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { addPinned } from '../../../../services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; @@ -61,7 +61,7 @@ export default define(meta, async (ps, user) => { throw e; }); - return await Users.pack(user, user, { + return await Users.pack(user.id, user, { detail: true }); }); diff --git a/src/server/api/endpoints/i/read-announcement.ts b/src/server/api/endpoints/i/read-announcement.ts index d6acb3d2e6..a0c59a15d6 100644 --- a/src/server/api/endpoints/i/read-announcement.ts +++ b/src/server/api/endpoints/i/read-announcement.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { AnnouncementReads, Announcements, Users } from '../../../../models'; import { publishMainStream } from '../../../../services/stream'; diff --git a/src/server/api/endpoints/i/registry/scopes.ts b/src/server/api/endpoints/i/registry/scopes.ts index 8b0e1a7fd8..baf3ebdeca 100644 --- a/src/server/api/endpoints/i/registry/scopes.ts +++ b/src/server/api/endpoints/i/registry/scopes.ts @@ -1,4 +1,3 @@ -import $ from 'cafy'; import define from '../../../define'; import { RegistryItems } from '../../../../../models'; diff --git a/src/server/api/endpoints/i/registry/set.ts b/src/server/api/endpoints/i/registry/set.ts index c732cfc8f5..40f6368017 100644 --- a/src/server/api/endpoints/i/registry/set.ts +++ b/src/server/api/endpoints/i/registry/set.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { publishMainStream } from '../../../../../services/stream'; import define from '../../../define'; import { RegistryItems } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/revoke-token.ts b/src/server/api/endpoints/i/revoke-token.ts index ce688c5755..d71a1bd135 100644 --- a/src/server/api/endpoints/i/revoke-token.ts +++ b/src/server/api/endpoints/i/revoke-token.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { AccessTokens } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/signin-history.ts b/src/server/api/endpoints/i/signin-history.ts index 4f7da7d343..0395206144 100644 --- a/src/server/api/endpoints/i/signin-history.ts +++ b/src/server/api/endpoints/i/signin-history.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Signins } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/unpin.ts b/src/server/api/endpoints/i/unpin.ts index 6f06e38598..bb8b36a166 100644 --- a/src/server/api/endpoints/i/unpin.ts +++ b/src/server/api/endpoints/i/unpin.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { removePinned } from '../../../../services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; @@ -47,7 +47,7 @@ export default define(meta, async (ps, user) => { throw e; }); - return await Users.pack(user, user, { + return await Users.pack(user.id, user, { detail: true }); }); diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts index 730918aebe..cd0e989e51 100644 --- a/src/server/api/endpoints/i/update-email.ts +++ b/src/server/api/endpoints/i/update-email.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { publishMainStream } from '../../../../services/stream'; import define from '../../define'; import rndstr from 'rndstr'; -import config from '../../../../config'; +import config from '@/config'; import * as ms from 'ms'; import * as bcrypt from 'bcryptjs'; import { Users, UserProfiles } from '../../../../models'; diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 92be2e9e6d..0554fe76fb 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -1,12 +1,12 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishMainStream, publishUserEvent } from '../../../../services/stream'; import acceptAllFollowRequests from '../../../../services/following/requests/accept-all'; import { publishToFollowers } from '../../../../services/i/update'; import define from '../../define'; import { parse, parsePlain } from '../../../../mfm/parse'; -import extractEmojis from '../../../../misc/extract-emojis'; -import extractHashtags from '../../../../misc/extract-hashtags'; +import extractEmojis from '@/misc/extract-emojis'; +import extractHashtags from '@/misc/extract-hashtags'; import * as langmap from 'langmap'; import { updateUsertags } from '../../../../services/update-hashtag'; import { ApiError } from '../../error'; @@ -14,7 +14,7 @@ import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models'; import { User } from '../../../../models/entities/user'; import { UserProfile } from '../../../../models/entities/user-profile'; import { notificationTypes } from '../../../../types'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { @@ -205,7 +205,8 @@ export const meta = { } }; -export default define(meta, async (ps, user, token) => { +export default define(meta, async (ps, _user, token) => { + const user = await Users.findOneOrFail(_user.id); const isSecure = token == null; const updates = {} as Partial<User>; diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/src/server/api/endpoints/i/user-group-invites.ts index 4c5105fa7b..9bfb17ab4e 100644 --- a/src/server/api/endpoints/i/user-group-invites.ts +++ b/src/server/api/endpoints/i/user-group-invites.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { UserGroupInvitations } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts index 479f8da8ad..8beb7e87f0 100644 --- a/src/server/api/endpoints/messaging/messages.ts +++ b/src/server/api/endpoints/messaging/messages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts index 3d7a1f4c4a..c9abb299fd 100644 --- a/src/server/api/endpoints/messaging/messages/create.ts +++ b/src/server/api/endpoints/messaging/messages/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/messaging/messages/delete.ts b/src/server/api/endpoints/messaging/messages/delete.ts index 2fce93e9b9..128ef0263e 100644 --- a/src/server/api/endpoints/messaging/messages/delete.ts +++ b/src/server/api/endpoints/messaging/messages/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/messaging/messages/read.ts b/src/server/api/endpoints/messaging/messages/read.ts index 3a7aae1bd0..c591cb28e0 100644 --- a/src/server/api/endpoints/messaging/messages/read.ts +++ b/src/server/api/endpoints/messaging/messages/read.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { MessagingMessages } from '../../../../../models'; diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index c2f4190e1c..2a94ae35f6 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import config from '../../../config'; +import config from '@/config'; import define from '../define'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Emojis, Users } from '../../../models'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../misc/hard-limits'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; export const meta = { desc: { diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/src/server/api/endpoints/miauth/gen-token.ts index 401ed16389..68ef00eb28 100644 --- a/src/server/api/endpoints/miauth/gen-token.ts +++ b/src/server/api/endpoints/miauth/gen-token.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../define'; import { AccessTokens } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { genId } from '@/misc/gen-id'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts index ebfc6028ed..6c1e1e2fdd 100644 --- a/src/server/api/endpoints/mute/create.ts +++ b/src/server/api/endpoints/mute/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Mutings, NoteWatchings } from '../../../../models'; import { Muting } from '../../../../models/entities/muting'; import { publishUserEvent } from '../../../../services/stream'; diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts index 67a59e3ae4..2a008b64c7 100644 --- a/src/server/api/endpoints/mute/delete.ts +++ b/src/server/api/endpoints/mute/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts index 1a8fc92159..daa52b9ff5 100644 --- a/src/server/api/endpoints/mute/list.ts +++ b/src/server/api/endpoints/mute/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Mutings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts index 30e6e92fec..0e89295351 100644 --- a/src/server/api/endpoints/notes.ts +++ b/src/server/api/endpoints/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../define'; import { makePaginationQuery } from '../common/make-pagination-query'; import { Notes } from '../../../models'; diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts index 072a25e024..bbfd0632c3 100644 --- a/src/server/api/endpoints/notes/children.ts +++ b/src/server/api/endpoints/notes/children.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; diff --git a/src/server/api/endpoints/notes/clips.ts b/src/server/api/endpoints/notes/clips.ts index 432dd8a467..d116370b46 100644 --- a/src/server/api/endpoints/notes/clips.ts +++ b/src/server/api/endpoints/notes/clips.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips } from '../../../../models'; import { getNote } from '../../common/getters'; diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts index 0dea309b88..95ab4ec1e0 100644 --- a/src/server/api/endpoints/notes/conversation.ts +++ b/src/server/api/endpoints/notes/conversation.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts index 6ca22113c7..29cc650b8d 100644 --- a/src/server/api/endpoints/notes/create.ts +++ b/src/server/api/endpoints/notes/create.ts @@ -3,14 +3,14 @@ import * as ms from 'ms'; import { length } from 'stringz'; import create from '../../../../services/note/create'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { User } from '../../../../models/entities/user'; import { Users, DriveFiles, Notes, Channels } from '../../../../models'; import { DriveFile } from '../../../../models/entities/drive-file'; import { Note } from '../../../../models/entities/note'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../../misc/hard-limits'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; import { noteVisibilities } from '../../../../types'; import { Channel } from '../../../../models/entities/channel'; diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts index 5afd911ca9..154cff0741 100644 --- a/src/server/api/endpoints/notes/delete.ts +++ b/src/server/api/endpoints/notes/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import deleteNote from '../../../../services/note/delete'; import define from '../../define'; import * as ms from 'ms'; diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/src/server/api/endpoints/notes/favorites/create.ts index d66ce37a46..846c80a8d6 100644 --- a/src/server/api/endpoints/notes/favorites/create.ts +++ b/src/server/api/endpoints/notes/favorites/create.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; import { NoteFavorites } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/src/server/api/endpoints/notes/favorites/delete.ts index 1b36b7d68c..2be4f6408e 100644 --- a/src/server/api/endpoints/notes/favorites/delete.ts +++ b/src/server/api/endpoints/notes/favorites/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts index 64fc3cbf6c..1e1df4040d 100644 --- a/src/server/api/endpoints/notes/global-timeline.ts +++ b/src/server/api/endpoints/notes/global-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts index 19c4593f5b..ac44e747dc 100644 --- a/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Followings, Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts index 546d3619f7..113078a988 100644 --- a/src/server/api/endpoints/notes/local-timeline.ts +++ b/src/server/api/endpoints/notes/local-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { Notes } from '../../../../models'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts index 30368ea578..34936c9b54 100644 --- a/src/server/api/endpoints/notes/mentions.ts +++ b/src/server/api/endpoints/notes/mentions.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import read from '../../../../services/note/read'; import { Notes, Followings } from '../../../../models'; @@ -83,7 +83,7 @@ export default define(meta, async (ps, user) => { const mentions = await query.take(ps.limit!).getMany(); - read(user.id, mentions.map(note => note.id)); + read(user.id, mentions); return await Notes.packMany(mentions, user); }); diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts index 6113d7ea9a..51dcec89c7 100644 --- a/src/server/api/endpoints/notes/polls/vote.ts +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishNoteStream } from '../../../../../services/stream'; import { createNotification } from '../../../../../services/create-notification'; import define from '../../../define'; @@ -12,7 +12,7 @@ import { deliverQuestionUpdate } from '../../../../../services/note/polls/update import { PollVotes, NoteWatchings, Users, Polls } from '../../../../../models'; import { Not } from 'typeorm'; import { IRemoteUser } from '../../../../../models/entities/user'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts index 2621e2a12f..3c60fa2e8e 100644 --- a/src/server/api/endpoints/notes/reactions.ts +++ b/src/server/api/endpoints/notes/reactions.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/src/server/api/endpoints/notes/reactions/create.ts index 9017d9f36f..17a6f391d4 100644 --- a/src/server/api/endpoints/notes/reactions/create.ts +++ b/src/server/api/endpoints/notes/reactions/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import createReaction from '../../../../../services/note/reaction/create'; import define from '../../../define'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/src/server/api/endpoints/notes/reactions/delete.ts index 267d8417c2..b95c7f891b 100644 --- a/src/server/api/endpoints/notes/reactions/delete.ts +++ b/src/server/api/endpoints/notes/reactions/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; import deleteReaction from '../../../../../services/note/reaction/delete'; diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts index dcda213918..d26192d10a 100644 --- a/src/server/api/endpoints/notes/renotes.ts +++ b/src/server/api/endpoints/notes/renotes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts index 6f33e2f233..e91a1cf0bf 100644 --- a/src/server/api/endpoints/notes/replies.ts +++ b/src/server/api/endpoints/notes/replies.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Notes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts index 47b41d9294..61f62dd5a6 100644 --- a/src/server/api/endpoints/notes/search-by-tag.ts +++ b/src/server/api/endpoints/notes/search-by-tag.ts @@ -1,13 +1,13 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes } from '../../../../models'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { Brackets } from 'typeorm'; -import { safeForSql } from '../../../../misc/safe-for-sql'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { safeForSql } from '@/misc/safe-for-sql'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts index 230d2b0294..e3454be9d3 100644 --- a/src/server/api/endpoints/notes/search.ts +++ b/src/server/api/endpoints/notes/search.ts @@ -3,8 +3,8 @@ import es from '../../../../db/elasticsearch'; import define from '../../define'; import { Notes } from '../../../../models'; import { In } from 'typeorm'; -import { ID } from '../../../../misc/cafy-id'; -import config from '../../../../config'; +import { ID } from '@/misc/cafy-id'; +import config from '@/config'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/notes/show.ts b/src/server/api/endpoints/notes/show.ts index 984b5c726a..e592076a2e 100644 --- a/src/server/api/endpoints/notes/show.ts +++ b/src/server/api/endpoints/notes/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/state.ts b/src/server/api/endpoints/notes/state.ts index b8b17820ee..60151f7e32 100644 --- a/src/server/api/endpoints/notes/state.ts +++ b/src/server/api/endpoints/notes/state.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { NoteFavorites, NoteWatchings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts index d025944cc2..0871a96882 100644 --- a/src/server/api/endpoints/notes/timeline.ts +++ b/src/server/api/endpoints/notes/timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes, Followings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/unrenote.ts b/src/server/api/endpoints/notes/unrenote.ts index af558a9897..0233b9db12 100644 --- a/src/server/api/endpoints/notes/unrenote.ts +++ b/src/server/api/endpoints/notes/unrenote.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import deleteNote from '../../../../services/note/delete'; import define from '../../define'; import * as ms from 'ms'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; -import { Notes } from '../../../../models'; +import { Notes, Users } from '../../../../models'; export const meta = { desc: { @@ -55,6 +55,6 @@ export default define(meta, async (ps, user) => { }); for (const note of renotes) { - deleteNote(user, note); + deleteNote(await Users.findOneOrFail(user.id), note); } }); diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts index 9ffb38bddc..cb3c18505d 100644 --- a/src/server/api/endpoints/notes/user-list-timeline.ts +++ b/src/server/api/endpoints/notes/user-list-timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { UserLists, UserListJoinings, Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/watching/create.ts b/src/server/api/endpoints/notes/watching/create.ts index b2a758fc74..7667ebdedd 100644 --- a/src/server/api/endpoints/notes/watching/create.ts +++ b/src/server/api/endpoints/notes/watching/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import watch from '../../../../../services/note/watch'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/watching/delete.ts b/src/server/api/endpoints/notes/watching/delete.ts index 75b4f2355f..77b4ff15c8 100644 --- a/src/server/api/endpoints/notes/watching/delete.ts +++ b/src/server/api/endpoints/notes/watching/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import unwatch from '../../../../../services/note/unwatch'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts index 3b19e1e192..9ec9f9184c 100644 --- a/src/server/api/endpoints/page-push.ts +++ b/src/server/api/endpoints/page-push.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../define'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishMainStream } from '../../../services/stream'; import { Users, Pages } from '../../../models'; import { ApiError } from '../error'; @@ -43,7 +43,7 @@ export default define(meta, async (ps, user) => { event: ps.event, var: ps.var, userId: user.id, - user: await Users.pack(user, page.userId, { + user: await Users.pack(user.id, { id: page.userId }, { detail: true }) }); diff --git a/src/server/api/endpoints/pages/create.ts b/src/server/api/endpoints/pages/create.ts index 6d41a4afeb..4134455123 100644 --- a/src/server/api/endpoints/pages/create.ts +++ b/src/server/api/endpoints/pages/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../define'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Pages, DriveFiles } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Page } from '../../../../models/entities/page'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/pages/delete.ts b/src/server/api/endpoints/pages/delete.ts index 99849ab5fe..51704c866e 100644 --- a/src/server/api/endpoints/pages/delete.ts +++ b/src/server/api/endpoints/pages/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/pages/like.ts b/src/server/api/endpoints/pages/like.ts index 3fc2b6ca23..e6c15164c0 100644 --- a/src/server/api/endpoints/pages/like.ts +++ b/src/server/api/endpoints/pages/like.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, PageLikes } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/pages/show.ts b/src/server/api/endpoints/pages/show.ts index c8e5ad1d9b..13fa9ba1d0 100644 --- a/src/server/api/endpoints/pages/show.ts +++ b/src/server/api/endpoints/pages/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, Users } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Page } from '../../../../models/entities/page'; export const meta = { diff --git a/src/server/api/endpoints/pages/unlike.ts b/src/server/api/endpoints/pages/unlike.ts index 865df91c3e..2008dd8bef 100644 --- a/src/server/api/endpoints/pages/unlike.ts +++ b/src/server/api/endpoints/pages/unlike.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, PageLikes } from '../../../../models'; diff --git a/src/server/api/endpoints/pages/update.ts b/src/server/api/endpoints/pages/update.ts index 2d93dd4ae4..d52d5964cb 100644 --- a/src/server/api/endpoints/pages/update.ts +++ b/src/server/api/endpoints/pages/update.ts @@ -3,7 +3,7 @@ import * as ms from 'ms'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, DriveFiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Not } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts index a129a56d87..ae165ab46d 100644 --- a/src/server/api/endpoints/pinned-users.ts +++ b/src/server/api/endpoints/pinned-users.ts @@ -1,7 +1,7 @@ import define from '../define'; import { Users } from '../../../models'; -import { fetchMeta } from '../../../misc/fetch-meta'; -import parseAcct from '../../../misc/acct/parse'; +import { fetchMeta } from '@/misc/fetch-meta'; +import parseAcct from '@/misc/acct/parse'; import { User } from '../../../models/entities/user'; export const meta = { diff --git a/src/server/api/endpoints/promo/read.ts b/src/server/api/endpoints/promo/read.ts index 63c90e5d7f..325a96e572 100644 --- a/src/server/api/endpoints/promo/read.ts +++ b/src/server/api/endpoints/promo/read.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; import { PromoReads } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/room/show.ts b/src/server/api/endpoints/room/show.ts index a12d9b8f26..13f9df19ac 100644 --- a/src/server/api/endpoints/room/show.ts +++ b/src/server/api/endpoints/room/show.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, UserProfiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { ID } from '@/misc/cafy-id'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts index 9fc70b5609..43d4118df6 100644 --- a/src/server/api/endpoints/sw/register.ts +++ b/src/server/api/endpoints/sw/register.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; -import { genId } from '../../../../misc/gen-id'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { genId } from '@/misc/gen-id'; import { SwSubscriptions } from '../../../../models'; export const meta = { diff --git a/src/server/api/endpoints/users/clips.ts b/src/server/api/endpoints/users/clips.ts index 72aae7252c..12aa964034 100644 --- a/src/server/api/endpoints/users/clips.ts +++ b/src/server/api/endpoints/users/clips.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Clips } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/users/followers.ts b/src/server/api/endpoints/users/followers.ts index fb83d7beb8..da8a1ea1b2 100644 --- a/src/server/api/endpoints/users/followers.ts +++ b/src/server/api/endpoints/users/followers.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/users/following.ts b/src/server/api/endpoints/users/following.ts index d5e8dc1f92..832a51d297 100644 --- a/src/server/api/endpoints/users/following.ts +++ b/src/server/api/endpoints/users/following.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/users/get-frequently-replied-users.ts b/src/server/api/endpoints/users/get-frequently-replied-users.ts index d0650a172d..98b8a49fda 100644 --- a/src/server/api/endpoints/users/get-frequently-replied-users.ts +++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { maximum } from '../../../../prelude/array'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/users/groups/create.ts b/src/server/api/endpoints/users/groups/create.ts index 78d2714874..0966ef7819 100644 --- a/src/server/api/endpoints/users/groups/create.ts +++ b/src/server/api/endpoints/users/groups/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { UserGroups, UserGroupJoinings } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroup } from '../../../../../models/entities/user-group'; import { UserGroupJoining } from '../../../../../models/entities/user-group-joining'; @@ -31,12 +31,12 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const userGroup = await UserGroups.save({ + const userGroup = await UserGroups.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, - } as UserGroup); + } as UserGroup).then(x => UserGroups.findOneOrFail(x.identifiers[0])); // Push the owner await UserGroupJoinings.insert({ diff --git a/src/server/api/endpoints/users/groups/delete.ts b/src/server/api/endpoints/users/groups/delete.ts index 71b8825169..85e2e73325 100644 --- a/src/server/api/endpoints/users/groups/delete.ts +++ b/src/server/api/endpoints/users/groups/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/src/server/api/endpoints/users/groups/invitations/accept.ts index 2fa22bcf7e..d6d419826e 100644 --- a/src/server/api/endpoints/users/groups/invitations/accept.ts +++ b/src/server/api/endpoints/users/groups/invitations/accept.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; import { UserGroupJoinings, UserGroupInvitations } from '../../../../../../models'; -import { genId } from '../../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroupJoining } from '../../../../../../models/entities/user-group-joining'; export const meta = { diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/src/server/api/endpoints/users/groups/invitations/reject.ts index 42803d37c7..98dc7bfbdf 100644 --- a/src/server/api/endpoints/users/groups/invitations/reject.ts +++ b/src/server/api/endpoints/users/groups/invitations/reject.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; import { UserGroupInvitations } from '../../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts index a0f5091b07..00d4932f55 100644 --- a/src/server/api/endpoints/users/groups/invite.ts +++ b/src/server/api/endpoints/users/groups/invite.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroupInvitation } from '../../../../../models/entities/user-group-invitation'; import { createNotification } from '../../../../../services/create-notification'; @@ -96,12 +96,12 @@ export default define(meta, async (ps, me) => { throw new ApiError(meta.errors.alreadyInvited); } - const invitation = await UserGroupInvitations.save({ + const invitation = await UserGroupInvitations.insert({ id: genId(), createdAt: new Date(), userId: user.id, userGroupId: userGroup.id - } as UserGroupInvitation); + } as UserGroupInvitation).then(x => UserGroupInvitations.findOneOrFail(x.identifiers[0])); // 通知を作成 createNotification(user.id, 'groupInvited', { diff --git a/src/server/api/endpoints/users/groups/pull.ts b/src/server/api/endpoints/users/groups/pull.ts index f4af884dd1..82d45e31ad 100644 --- a/src/server/api/endpoints/users/groups/pull.ts +++ b/src/server/api/endpoints/users/groups/pull.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/groups/show.ts b/src/server/api/endpoints/users/groups/show.ts index 13f171f614..c174a7973c 100644 --- a/src/server/api/endpoints/users/groups/show.ts +++ b/src/server/api/endpoints/users/groups/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups, UserGroupJoinings } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/transfer.ts b/src/server/api/endpoints/users/groups/transfer.ts index 03f5f39279..08aa1b7357 100644 --- a/src/server/api/endpoints/users/groups/transfer.ts +++ b/src/server/api/endpoints/users/groups/transfer.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/groups/update.ts b/src/server/api/endpoints/users/groups/update.ts index 805b2de6a8..8dc5a7f1b9 100644 --- a/src/server/api/endpoints/users/groups/update.ts +++ b/src/server/api/endpoints/users/groups/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts index d02696aed4..9891a6dae0 100644 --- a/src/server/api/endpoints/users/lists/create.ts +++ b/src/server/api/endpoints/users/lists/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { UserLists } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserList } from '../../../../../models/entities/user-list'; export const meta = { @@ -30,12 +30,12 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const userList = await UserLists.save({ + const userList = await UserLists.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, - } as UserList); + } as UserList).then(x => UserLists.findOneOrFail(x.identifiers[0])); return await UserLists.pack(userList); }); diff --git a/src/server/api/endpoints/users/lists/delete.ts b/src/server/api/endpoints/users/lists/delete.ts index 930af1827f..d3132025c5 100644 --- a/src/server/api/endpoints/users/lists/delete.ts +++ b/src/server/api/endpoints/users/lists/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/pull.ts b/src/server/api/endpoints/users/lists/pull.ts index 1a5be2afc4..ddf5864a39 100644 --- a/src/server/api/endpoints/users/lists/pull.ts +++ b/src/server/api/endpoints/users/lists/pull.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishUserListStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/users/lists/push.ts b/src/server/api/endpoints/users/lists/push.ts index fd76cb8159..c94c759d0c 100644 --- a/src/server/api/endpoints/users/lists/push.ts +++ b/src/server/api/endpoints/users/lists/push.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts index 5d80a8f472..aee1c13dee 100644 --- a/src/server/api/endpoints/users/lists/show.ts +++ b/src/server/api/endpoints/users/lists/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/update.ts b/src/server/api/endpoints/users/lists/update.ts index 3ced871ae8..342791e5f3 100644 --- a/src/server/api/endpoints/users/lists/update.ts +++ b/src/server/api/endpoints/users/lists/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts index fc5998c378..b886756c02 100644 --- a/src/server/api/endpoints/users/notes.ts +++ b/src/server/api/endpoints/users/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/users/pages.ts b/src/server/api/endpoints/users/pages.ts index 706a2e115b..b9f37f3210 100644 --- a/src/server/api/endpoints/users/pages.ts +++ b/src/server/api/endpoints/users/pages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Pages } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/users/relation.ts b/src/server/api/endpoints/users/relation.ts index 1beb925398..fc294eb64d 100644 --- a/src/server/api/endpoints/users/relation.ts +++ b/src/server/api/endpoints/users/relation.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Users } from '../../../../models'; export const meta = { diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts index eaa4cd6258..671eca0298 100644 --- a/src/server/api/endpoints/users/report-abuse.ts +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { publishAdminStream } from '../../../../services/stream'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; import { AbuseUserReports, Users } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts index 9e0771a55a..11d36d2ae9 100644 --- a/src/server/api/endpoints/users/show.ts +++ b/src/server/api/endpoints/users/show.ts @@ -3,9 +3,10 @@ import { resolveUser } from '../../../../remote/resolve-user'; import define from '../../define'; import { apiLogger } from '../../logger'; import { ApiError } from '../../error'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Users } from '../../../../models'; import { In } from 'typeorm'; +import { User } from '@/models/entities/user'; export const meta = { desc: { @@ -81,9 +82,9 @@ export default define(meta, async (ps, me) => { }); // リクエストされた通りに並べ替え - const _users = []; + const _users: User[] = []; for (const id of ps.userIds) { - _users.push(users.find(x => x.id === id)); + _users.push(users.find(x => x.id === id)!); } return await Promise.all(_users.map(u => Users.pack(u, me, { diff --git a/src/server/api/endpoints/users/stats.ts b/src/server/api/endpoints/users/stats.ts index 50730e7cd0..6763c1774e 100644 --- a/src/server/api/endpoints/users/stats.ts +++ b/src/server/api/endpoints/users/stats.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, ReversiGames, Users } from '../../../../models'; export const meta = { diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts index 48d12d3cc6..1e8715a7c4 100644 --- a/src/server/api/limiter.ts +++ b/src/server/api/limiter.ts @@ -1,13 +1,13 @@ import * as Limiter from 'ratelimiter'; -import limiterDB from '../../db/redis'; +import { redisClient } from '../../db/redis'; import { IEndpoint } from './endpoints'; -import getAcct from '../../misc/acct/render'; +import getAcct from '@/misc/acct/render'; import { User } from '../../models/entities/user'; import Logger from '../../services/logger'; const logger = new Logger('limiter'); -export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => { +export default (endpoint: IEndpoint, user: User) => new Promise<void>((ok, reject) => { const limitation = endpoint.meta.limit!; const key = limitation.hasOwnProperty('key') @@ -35,7 +35,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => id: `${user.id}:${key}:min`, duration: limitation.minInterval, max: 1, - db: limiterDB! + db: redisClient }); minIntervalLimiter.get((err, info) => { @@ -63,7 +63,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => id: `${user.id}:${key}`, duration: limitation.duration, max: limitation.max, - db: limiterDB! + db: redisClient }); limiter.get((err, info) => { diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts index e0527dd1ae..6306920b7a 100644 --- a/src/server/api/openapi/description.ts +++ b/src/server/api/openapi/description.ts @@ -1,6 +1,6 @@ import endpoints from '../endpoints'; import * as locale from '../../../../locales/'; -import { kinds as kindsList } from '../../../misc/api-permissions'; +import { kinds as kindsList } from '@/misc/api-permissions'; export interface IKindInfo { endpoints: string[]; diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts index 5185696675..221e0a32df 100644 --- a/src/server/api/openapi/gen-spec.ts +++ b/src/server/api/openapi/gen-spec.ts @@ -1,6 +1,6 @@ import endpoints from '../endpoints'; import { Context } from 'cafy'; -import config from '../../../config'; +import config from '@/config'; import { errors as basicErrors } from './errors'; import { schemas, convertSchemaToOpenApiSchema } from './schemas'; import { getDescription } from './description'; diff --git a/src/server/api/openapi/schemas.ts b/src/server/api/openapi/schemas.ts index 99107c986e..78aae3b999 100644 --- a/src/server/api/openapi/schemas.ts +++ b/src/server/api/openapi/schemas.ts @@ -1,5 +1,5 @@ import { packedUserSchema } from '../../../models/repositories/user'; -import { Schema } from '../../../misc/schema'; +import { Schema } from '@/misc/schema'; import { packedNoteSchema } from '../../../models/repositories/note'; import { packedUserListSchema } from '../../../models/repositories/user-list'; import { packedAppSchema } from '../../../models/repositories/app'; diff --git a/src/server/api/private/signin.ts b/src/server/api/private/signin.ts index d8f2e6d516..0a17b0bd02 100644 --- a/src/server/api/private/signin.ts +++ b/src/server/api/private/signin.ts @@ -2,10 +2,10 @@ import * as Koa from 'koa'; import * as bcrypt from 'bcryptjs'; import * as speakeasy from 'speakeasy'; import signin from '../common/signin'; -import config from '../../../config'; +import config from '@/config'; import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { verifyLogin, hash } from '../2fa'; import { randomBytes } from 'crypto'; diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts index 3d467a0e68..f0cf75797a 100644 --- a/src/server/api/private/signup.ts +++ b/src/server/api/private/signup.ts @@ -1,6 +1,6 @@ import * as Koa from 'koa'; -import { fetchMeta } from '../../../misc/fetch-meta'; -import { verifyHcaptcha, verifyRecaptcha } from '../../../misc/captcha'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { verifyHcaptcha, verifyRecaptcha } from '@/misc/captcha'; import { Users, RegistrationTickets } from '../../../models'; import { signup } from '../common/signup'; diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts index fce840cde5..a684e71fc6 100644 --- a/src/server/api/service/discord.ts +++ b/src/server/api/service/discord.ts @@ -1,13 +1,13 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; -import { getJson } from '../../../misc/fetch'; +import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '../../../config'; +import config from '@/config'; import { publishMainStream } from '../../../services/stream'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -96,7 +96,7 @@ router.get('/connect/discord', async ctx => { response_type: 'code' }; - redis.set(userToken, JSON.stringify(params)); + redisClient.set(userToken, JSON.stringify(params)); const oauth2 = await getOAuth2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -118,7 +118,7 @@ router.get('/signin/discord', async ctx => { httpOnly: true }); - redis.set(sessid, JSON.stringify(params)); + redisClient.set(sessid, JSON.stringify(params)); const oauth2 = await getOAuth2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -145,7 +145,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(sessid, async (_, state) => { + redisClient.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -216,7 +216,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(userToken, async (_, state) => { + redisClient.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts index 2b10fa02a0..12435b7e81 100644 --- a/src/server/api/service/github.ts +++ b/src/server/api/service/github.ts @@ -1,13 +1,13 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; -import { getJson } from '../../../misc/fetch'; +import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '../../../config'; +import config from '@/config'; import { publishMainStream } from '../../../services/stream'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -95,7 +95,7 @@ router.get('/connect/github', async ctx => { state: uuid() }; - redis.set(userToken, JSON.stringify(params)); + redisClient.set(userToken, JSON.stringify(params)); const oauth2 = await getOath2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -116,7 +116,7 @@ router.get('/signin/github', async ctx => { httpOnly: true }); - redis.set(sessid, JSON.stringify(params)); + redisClient.set(sessid, JSON.stringify(params)); const oauth2 = await getOath2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -143,7 +143,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(sessid, async (_, state) => { + redisClient.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -194,7 +194,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(userToken, async (_, state) => { + redisClient.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts index 97e9d3a7fc..8520a5656f 100644 --- a/src/server/api/service/twitter.ts +++ b/src/server/api/service/twitter.ts @@ -2,11 +2,11 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; import { v4 as uuid } from 'uuid'; import autwh from 'autwh'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { publishMainStream } from '../../../services/stream'; -import config from '../../../config'; +import config from '@/config'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -89,7 +89,7 @@ router.get('/connect/twitter', async ctx => { const twAuth = await getTwAuth(); const twCtx = await twAuth!.begin(); - redis.set(userToken, JSON.stringify(twCtx)); + redisClient.set(userToken, JSON.stringify(twCtx)); ctx.redirect(twCtx.url); }); @@ -99,7 +99,7 @@ router.get('/signin/twitter', async ctx => { const sessid = uuid(); - redis.set(sessid, JSON.stringify(twCtx)); + redisClient.set(sessid, JSON.stringify(twCtx)); ctx.cookies.set('signin_with_twitter_sid', sessid, { path: '/', @@ -124,7 +124,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise<any>((res, rej) => { - redis.get(sessid, async (_, twCtx) => { + redisClient.get(sessid, async (_, twCtx) => { res(twCtx); }); }); @@ -153,7 +153,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise<any>((res, rej) => { - redis.get(userToken, async (_, twCtx) => { + redisClient.get(userToken, async (_, twCtx) => { res(twCtx); }); }); diff --git a/src/server/api/stream/channels/antenna.ts b/src/server/api/stream/channels/antenna.ts index 36a474f2ac..d93143f4d8 100644 --- a/src/server/api/stream/channels/antenna.ts +++ b/src/server/api/stream/channels/antenna.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; export default class extends Channel { public readonly chName = 'antenna'; diff --git a/src/server/api/stream/channels/channel.ts b/src/server/api/stream/channels/channel.ts index 47a52465b2..6af2d80e0c 100644 --- a/src/server/api/stream/channels/channel.ts +++ b/src/server/api/stream/channels/channel.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes, Users } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { PackedNote } from '../../../../models/repositories/note'; import { User } from '../../../../models/entities/user'; diff --git a/src/server/api/stream/channels/games/reversi.ts b/src/server/api/stream/channels/games/reversi.ts index 3db338386a..e0e41d9acd 100644 --- a/src/server/api/stream/channels/games/reversi.ts +++ b/src/server/api/stream/channels/games/reversi.ts @@ -26,7 +26,7 @@ export default class extends Channel { childId: body.id }); if (matching == null) return; - publishMainStream(matching.childId, 'reversiInvited', await ReversiMatchings.pack(matching, matching.childId)); + publishMainStream(matching.childId, 'reversiInvited', await ReversiMatchings.pack(matching, { id: matching.childId })); break; } } diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts index 8353f45323..c59eb37779 100644 --- a/src/server/api/stream/channels/global-timeline.ts +++ b/src/server/api/stream/channels/global-timeline.ts @@ -1,10 +1,10 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'globalTimeline'; @@ -42,8 +42,9 @@ export default class extends Channel { // 関係ない返信は除外 if (note.reply) { + const reply = note.reply as PackedNote; // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する diff --git a/src/server/api/stream/channels/hashtag.ts b/src/server/api/stream/channels/hashtag.ts index 1b7f8efcc1..b662af0723 100644 --- a/src/server/api/stream/channels/hashtag.ts +++ b/src/server/api/stream/channels/hashtag.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export default class extends Channel { public readonly chName = 'hashtag'; diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts index 59ba31c316..b1091a46e1 100644 --- a/src/server/api/stream/channels/home-timeline.ts +++ b/src/server/api/stream/channels/home-timeline.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'homeTimeline'; @@ -50,8 +50,9 @@ export default class extends Channel { // 関係ない返信は除外 if (note.reply) { + const reply = note.reply as PackedNote; // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts index 9715e9973f..d769a24373 100644 --- a/src/server/api/stream/channels/hybrid-timeline.ts +++ b/src/server/api/stream/channels/hybrid-timeline.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; import { PackedUser } from '../../../../models/repositories/user'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'hybridTimeline'; @@ -59,8 +59,9 @@ export default class extends Channel { // 関係ない返信は除外 if (note.reply) { + const reply = note.reply as PackedNote; // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts index e159c72d60..aa0b6c4026 100644 --- a/src/server/api/stream/channels/local-timeline.ts +++ b/src/server/api/stream/channels/local-timeline.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; import { PackedUser } from '../../../../models/repositories/user'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'localTimeline'; @@ -44,8 +44,9 @@ export default class extends Channel { // 関係ない返信は除外 if (note.reply) { + const reply = note.reply as PackedNote; // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts index 4191a0de54..da227f24ec 100644 --- a/src/server/api/stream/channels/user-list.ts +++ b/src/server/api/stream/channels/user-list.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes, UserListJoinings, UserLists } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { User } from '../../../../models/entities/user'; import { PackedNote } from '../../../../models/repositories/note'; diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts index 99ae558696..647b890ff8 100644 --- a/src/server/api/stream/index.ts +++ b/src/server/api/stream/index.ts @@ -156,8 +156,8 @@ export default class Connection { }; add(note); - if (note.reply) add(note.reply); - if (note.renote) add(note.renote); + if (note.reply) add(note.reply as PackedNote); + if (note.renote) add(note.renote as PackedNote); } @autobind @@ -168,17 +168,10 @@ export default class Connection { if (note == null) return; if (this.user && (note.userId !== this.user.id)) { - if (note.mentions && note.mentions.includes(this.user.id)) { - readNote(this.user.id, [note]); - } else if (note.visibleUserIds && note.visibleUserIds.includes(this.user.id)) { - readNote(this.user.id, [note]); - } - - if (this.followingChannels.has(note.channelId)) { - // TODO - } - - // TODO: アンテナの既読処理 + readNote(this.user.id, [note], { + following: this.following, + followingChannels: this.followingChannels, + }); } } diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts index 10f2a70bad..81b83edcf5 100644 --- a/src/server/api/streaming.ts +++ b/src/server/api/streaming.ts @@ -1,12 +1,11 @@ import * as http from 'http'; import * as websocket from 'websocket'; -import * as redis from 'redis'; import MainStreamConnection from './stream'; import { ParsedUrlQuery } from 'querystring'; import authenticate from './authenticate'; import { EventEmitter } from 'events'; -import config from '../../config'; +import { subsdcriber as redisClient } from '../../db/redis'; module.exports = (server: http.Server) => { // Init websocket server @@ -24,37 +23,21 @@ module.exports = (server: http.Server) => { const connection = request.accept(); - let ev: EventEmitter; + const ev = new EventEmitter(); - // Connect to Redis - const subscriber = redis.createClient( - config.redis.port, - config.redis.host, - { - password: config.redis.pass - } - ); - - subscriber.subscribe(config.host); - - ev = new EventEmitter(); - - subscriber.on('message', async (_, data) => { - const obj = JSON.parse(data); + async function onRedisMessage(_: string, data: string) { + const parsed = JSON.parse(data); + ev.emit(parsed.channel, parsed.message); + } - ev.emit(obj.channel, obj.message); - }); - - connection.once('close', () => { - subscriber.unsubscribe(); - subscriber.quit(); - }); + redisClient.on('message', onRedisMessage); const main = new MainStreamConnection(connection, ev, user, app); connection.once('close', () => { ev.removeAllListeners(); main.dispose(); + redisClient.off('message', onRedisMessage); }); connection.on('message', async (data) => { |