diff --git a/src/boot/master.ts b/src/boot/master.ts
index 4cd91dc66a12c2b5570819f5245f09db052f41c9..03a28c339b2e83eaa390c9e9f63d868cf05c973c 100644
--- a/src/boot/master.ts
+++ b/src/boot/master.ts
@@ -7,7 +7,7 @@ import { getConnection } from 'typeorm';
 import Logger from '@/services/logger';
 import loadConfig from '@/config/load';
 import { Config } from '@/config/types';
-import { lessThan } from '../prelude/array';
+import { lessThan } from '@/prelude/array';
 import { program } from '../argv';
 import { showMachineInfo } from '@/misc/show-machine-info';
 import { initDb } from '../db/postgre';
diff --git a/src/games/reversi/core.ts b/src/games/reversi/core.ts
index e7ae1af7a258d6c480409248b5dbe74590547f91..9bfce9834af94715efac07c283641ac21f5170ba 100644
--- a/src/games/reversi/core.ts
+++ b/src/games/reversi/core.ts
@@ -1,4 +1,4 @@
-import { count, concat } from '../../prelude/array';
+import { count, concat } from '@/prelude/array';
 
 // MISSKEY REVERSI ENGINE
 
diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts
index 6dbcc17d29a199fe4e250cb6a627fe83c042af5e..b3678a0dda35c066651cc0e37ca4682beee2e0b2 100644
--- a/src/mfm/to-html.ts
+++ b/src/mfm/to-html.ts
@@ -1,7 +1,7 @@
 import { JSDOM } from 'jsdom';
 import * as mfm from 'mfm-js';
 import config from '@/config/index';
-import { intersperse } from '../prelude/array';
+import { intersperse } from '@/prelude/array';
 import { IMentionedRemoteUsers } from '@/models/entities/note';
 import { wellKnownServices } from '../well-known-services';
 
diff --git a/src/models/repositories/abuse-user-report.ts b/src/models/repositories/abuse-user-report.ts
index a8c63449669a6394cd000bd43401007f3267f882..039a9924d2f8391d0d77892c7ddcaa45ec177823 100644
--- a/src/models/repositories/abuse-user-report.ts
+++ b/src/models/repositories/abuse-user-report.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../index';
-import { AbuseUserReport } from '../entities/abuse-user-report';
-import { awaitAll } from '../../prelude/await-all';
+import { AbuseUserReport } from '@/models/entities/abuse-user-report';
+import { awaitAll } from '@/prelude/await-all';
 
 @EntityRepository(AbuseUserReport)
 export class AbuseUserReportRepository extends Repository<AbuseUserReport> {
diff --git a/src/models/repositories/antenna.ts b/src/models/repositories/antenna.ts
index afda5ccaaa5c6e02353ec813df37d70822ae7060..e61eed5e08dced0ffb778c3321b9566933561459 100644
--- a/src/models/repositories/antenna.ts
+++ b/src/models/repositories/antenna.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Antenna } from '../entities/antenna';
+import { Antenna } from '@/models/entities/antenna';
 import { SchemaType } from '@/misc/schema';
 import { AntennaNotes, UserGroupJoinings } from '../index';
 
diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts
index 698191de7e9f2ce4cd270222d280cf7cd9328096..2287bd43909ad119933c274a419bf58e7ae9fa11 100644
--- a/src/models/repositories/app.ts
+++ b/src/models/repositories/app.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { App } from '../entities/app';
+import { App } from '@/models/entities/app';
 import { AccessTokens } from '../index';
 import { SchemaType } from '@/misc/schema';
 
diff --git a/src/models/repositories/auth-session.ts b/src/models/repositories/auth-session.ts
index aa1cddebcfd3514bc26d66a520310430ccc17387..c8f4c10f2a8681c6d5ea80b22b61f23e923ff8d3 100644
--- a/src/models/repositories/auth-session.ts
+++ b/src/models/repositories/auth-session.ts
@@ -1,8 +1,8 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Apps } from '../index';
-import { AuthSession } from '../entities/auth-session';
-import { awaitAll } from '../../prelude/await-all';
-import { User } from '../entities/user';
+import { AuthSession } from '@/models/entities/auth-session';
+import { awaitAll } from '@/prelude/await-all';
+import { User } from '@/models/entities/user';
 
 @EntityRepository(AuthSession)
 export class AuthSessionRepository extends Repository<AuthSession> {
diff --git a/src/models/repositories/blocking.ts b/src/models/repositories/blocking.ts
index 3349a54ae9b7a4dd8671a9fdfbed7404551f0ccc..dd3a10905c80862d20b374b2652221fc0963c61e 100644
--- a/src/models/repositories/blocking.ts
+++ b/src/models/repositories/blocking.ts
@@ -1,9 +1,9 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../index';
-import { Blocking } from '../entities/blocking';
-import { awaitAll } from '../../prelude/await-all';
+import { Blocking } from '@/models/entities/blocking';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 export type PackedBlocking = SchemaType<typeof packedBlockingSchema>;
 
diff --git a/src/models/repositories/channel.ts b/src/models/repositories/channel.ts
index 1b1a30e7a209f48c26822727c7988960ad4922e4..4bb829f570e4994668e9c26732f2eee534dac0d1 100644
--- a/src/models/repositories/channel.ts
+++ b/src/models/repositories/channel.ts
@@ -1,8 +1,8 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Channel } from '../entities/channel';
+import { Channel } from '@/models/entities/channel';
 import { SchemaType } from '@/misc/schema';
 import { DriveFiles, ChannelFollowings, NoteUnreads } from '../index';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 export type PackedChannel = SchemaType<typeof packedChannelSchema>;
 
diff --git a/src/models/repositories/clip.ts b/src/models/repositories/clip.ts
index 608101d34bfb9fa0b9a7996eca6b54a71f3a384f..49dc3a332effc2eb28b3e8d1aa73452d7a9169d2 100644
--- a/src/models/repositories/clip.ts
+++ b/src/models/repositories/clip.ts
@@ -1,8 +1,8 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Clip } from '../entities/clip';
+import { Clip } from '@/models/entities/clip';
 import { SchemaType } from '@/misc/schema';
 import { Users } from '../index';
-import { awaitAll } from '../../prelude/await-all';
+import { awaitAll } from '@/prelude/await-all';
 
 export type PackedClip = SchemaType<typeof packedClipSchema>;
 
diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts
index eecb477ac0f515d2c124c7523e46b28810bb3f19..42a60ff03c26c54f592d1442e36de91f5be4109a 100644
--- a/src/models/repositories/drive-file.ts
+++ b/src/models/repositories/drive-file.ts
@@ -1,13 +1,13 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { DriveFile } from '../entities/drive-file';
+import { DriveFile } from '@/models/entities/drive-file';
 import { Users, DriveFolders } from '../index';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 import { toPuny } from '@/misc/convert-host';
-import { awaitAll } from '../../prelude/await-all';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
 import config from '@/config/index';
-import { query, appendQuery } from '../../prelude/url';
-import { Meta } from '../entities/meta';
+import { query, appendQuery } from '@/prelude/url';
+import { Meta } from '@/models/entities/meta';
 import { fetchMeta } from '@/misc/fetch-meta';
 
 export type PackedDriveFile = SchemaType<typeof packedDriveFileSchema>;
diff --git a/src/models/repositories/drive-folder.ts b/src/models/repositories/drive-folder.ts
index de286ba218aa15b6fe01b69c12c094fb9ef77bca..4228284f82306b1b55ae441047e3b52bdba8a4b7 100644
--- a/src/models/repositories/drive-folder.ts
+++ b/src/models/repositories/drive-folder.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { DriveFolders, DriveFiles } from '../index';
-import { DriveFolder } from '../entities/drive-folder';
-import { awaitAll } from '../../prelude/await-all';
+import { DriveFolder } from '@/models/entities/drive-folder';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
 
 export type PackedDriveFolder = SchemaType<typeof packedDriveFolderSchema>;
diff --git a/src/models/repositories/emoji.ts b/src/models/repositories/emoji.ts
index 3490a6ac86ebad2c434ccc788d0639511789267a..c3d7184ec9ed0538d9af059a70a4a727ba97aa1b 100644
--- a/src/models/repositories/emoji.ts
+++ b/src/models/repositories/emoji.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Emoji } from '../entities/emoji';
+import { Emoji } from '@/models/entities/emoji';
 
 @EntityRepository(Emoji)
 export class EmojiRepository extends Repository<Emoji> {
diff --git a/src/models/repositories/follow-request.ts b/src/models/repositories/follow-request.ts
index 253e03ca7b551f0e6d8972fe4c842ff5520c9b68..d6ee58e235cab60c137cb414088d0e54e977783a 100644
--- a/src/models/repositories/follow-request.ts
+++ b/src/models/repositories/follow-request.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { FollowRequest } from '../entities/follow-request';
+import { FollowRequest } from '@/models/entities/follow-request';
 import { Users } from '../index';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 @EntityRepository(FollowRequest)
 export class FollowRequestRepository extends Repository<FollowRequest> {
diff --git a/src/models/repositories/following.ts b/src/models/repositories/following.ts
index dbbb0e6c75ebeb67188bfb20ed7719c77a40ea3c..3bb120bc4bc83e85d981f26b9dc72bc08ef726c2 100644
--- a/src/models/repositories/following.ts
+++ b/src/models/repositories/following.ts
@@ -1,9 +1,9 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../index';
-import { Following } from '../entities/following';
-import { awaitAll } from '../../prelude/await-all';
+import { Following } from '@/models/entities/following';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 type LocalFollowerFollowing = Following & {
 	followerHost: null;
diff --git a/src/models/repositories/gallery-like.ts b/src/models/repositories/gallery-like.ts
index d0de01d8fdbe09c0b7cdf582b58a78bd3d91b7b3..79123e5eec75200c8579da7d35adcec56fa9ca61 100644
--- a/src/models/repositories/gallery-like.ts
+++ b/src/models/repositories/gallery-like.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { GalleryLike } from '../entities/gallery-like';
+import { GalleryLike } from '@/models/entities/gallery-like';
 import { GalleryPosts } from '../index';
 
 @EntityRepository(GalleryLike)
diff --git a/src/models/repositories/gallery-post.ts b/src/models/repositories/gallery-post.ts
index fe44d7c93ee885ad3fc322c2e3fcbb0555cd781d..03edb352132a97b220db33c2f79de178696cd01e 100644
--- a/src/models/repositories/gallery-post.ts
+++ b/src/models/repositories/gallery-post.ts
@@ -1,9 +1,9 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { GalleryPost } from '../entities/gallery-post';
+import { GalleryPost } from '@/models/entities/gallery-post';
 import { SchemaType } from '../../misc/schema';
 import { Users, DriveFiles, GalleryLikes } from '../index';
-import { awaitAll } from '../../prelude/await-all';
-import { User } from '../entities/user';
+import { awaitAll } from '@/prelude/await-all';
+import { User } from '@/models/entities/user';
 
 export type PackedGalleryPost = SchemaType<typeof packedGalleryPostSchema>;
 
diff --git a/src/models/repositories/games/reversi/game.ts b/src/models/repositories/games/reversi/game.ts
index 021eba1da3937220b848a1de76480dab9bbeab48..dc91ad51b863b835d3a9a4a5c2e864c895630a66 100644
--- a/src/models/repositories/games/reversi/game.ts
+++ b/src/models/repositories/games/reversi/game.ts
@@ -1,7 +1,7 @@
 import { User } from '@/models/entities/user';
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../../../index';
-import { ReversiGame } from '../../../entities/games/reversi/game';
+import { ReversiGame } from '@/models/entities/games/reversi/game';
 
 @EntityRepository(ReversiGame)
 export class ReversiGameRepository extends Repository<ReversiGame> {
diff --git a/src/models/repositories/games/reversi/matching.ts b/src/models/repositories/games/reversi/matching.ts
index f8ee646cb779ad6f9a933b2c77c2ac3f38d5d137..148221dee512a8802f58fd022e0a3b3119fec2cd 100644
--- a/src/models/repositories/games/reversi/matching.ts
+++ b/src/models/repositories/games/reversi/matching.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { ReversiMatching } from '../../../entities/games/reversi/matching';
+import { ReversiMatching } from '@/models/entities/games/reversi/matching';
 import { Users } from '../../../index';
-import { awaitAll } from '../../../../prelude/await-all';
+import { awaitAll } from '@/prelude/await-all';
 import { User } from '@/models/entities/user';
 
 @EntityRepository(ReversiMatching)
diff --git a/src/models/repositories/hashtag.ts b/src/models/repositories/hashtag.ts
index 3fee2f771df001dd89b1710b71fdbb63e5b718c9..ee42ad16b62b169214311a79b2a63378645cc8f8 100644
--- a/src/models/repositories/hashtag.ts
+++ b/src/models/repositories/hashtag.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Hashtag } from '../entities/hashtag';
+import { Hashtag } from '@/models/entities/hashtag';
 import { SchemaType } from '@/misc/schema';
 
 export type PackedHashtag = SchemaType<typeof packedHashtagSchema>;
diff --git a/src/models/repositories/messaging-message.ts b/src/models/repositories/messaging-message.ts
index 47f6d4227a7eee0f92b7cf6023604ac408fb75b3..1a4a8eecc46ff040a98d4392c8b2e37eb7516bc6 100644
--- a/src/models/repositories/messaging-message.ts
+++ b/src/models/repositories/messaging-message.ts
@@ -1,8 +1,8 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { MessagingMessage } from '../entities/messaging-message';
+import { MessagingMessage } from '@/models/entities/messaging-message';
 import { Users, DriveFiles, UserGroups } from '../index';
 import { SchemaType } from '@/misc/schema';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 export type PackedMessagingMessage = SchemaType<typeof packedMessagingMessageSchema>;
 
diff --git a/src/models/repositories/moderation-logs.ts b/src/models/repositories/moderation-logs.ts
index 4e9ef1b31b663ef2cc3ea414787aceb9c331db15..c7df3afdc9eaee401c1da35acf40478d663c1624 100644
--- a/src/models/repositories/moderation-logs.ts
+++ b/src/models/repositories/moderation-logs.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../index';
-import { ModerationLog } from '../entities/moderation-log';
-import { awaitAll } from '../../prelude/await-all';
+import { ModerationLog } from '@/models/entities/moderation-log';
+import { awaitAll } from '@/prelude/await-all';
 
 @EntityRepository(ModerationLog)
 export class ModerationLogRepository extends Repository<ModerationLog> {
diff --git a/src/models/repositories/muting.ts b/src/models/repositories/muting.ts
index 806a7accd295e1faf99a69a57db8a1cb662ec8fc..e46f4ae448ad8445c766cb52b7adf4021d8ce7e5 100644
--- a/src/models/repositories/muting.ts
+++ b/src/models/repositories/muting.ts
@@ -1,9 +1,9 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '../index';
-import { Muting } from '../entities/muting';
-import { awaitAll } from '../../prelude/await-all';
+import { Muting } from '@/models/entities/muting';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 export type PackedMuting = SchemaType<typeof packedMutingSchema>;
 
diff --git a/src/models/repositories/note-favorite.ts b/src/models/repositories/note-favorite.ts
index 624e125ddf945c24c6224d1f5f2bf542bf89c022..3248c32ded13d4ea66abf13ea1b76317d950b45e 100644
--- a/src/models/repositories/note-favorite.ts
+++ b/src/models/repositories/note-favorite.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { NoteFavorite } from '../entities/note-favorite';
+import { NoteFavorite } from '@/models/entities/note-favorite';
 import { Notes } from '../index';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 @EntityRepository(NoteFavorite)
 export class NoteFavoriteRepository extends Repository<NoteFavorite> {
diff --git a/src/models/repositories/note-reaction.ts b/src/models/repositories/note-reaction.ts
index 6671b0cd75bd5a94302144b455a5c7520729e83b..c349edf1822179164c41d0a6ce3e0db30c23d2c4 100644
--- a/src/models/repositories/note-reaction.ts
+++ b/src/models/repositories/note-reaction.ts
@@ -1,9 +1,9 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { NoteReaction } from '../entities/note-reaction';
+import { NoteReaction } from '@/models/entities/note-reaction';
 import { Users } from '../index';
 import { SchemaType } from '@/misc/schema';
 import { convertLegacyReaction } from '@/misc/reaction-lib';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 export type PackedNoteReaction = SchemaType<typeof packedNoteReactionSchema>;
 
diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts
index f178c091f1a1783d1c70ade290880118c5898ac6..a8e356abf260c559d795f5ff410f3cd505556535 100644
--- a/src/models/repositories/note.ts
+++ b/src/models/repositories/note.ts
@@ -1,13 +1,13 @@
 import { EntityRepository, Repository, In } from 'typeorm';
 import * as mfm from 'mfm-js';
-import { Note } from '../entities/note';
-import { User } from '../entities/user';
+import { Note } from '@/models/entities/note';
+import { User } from '@/models/entities/user';
 import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '../index';
 import { SchemaType } from '@/misc/schema';
 import { nyaize } from '@/misc/nyaize';
-import { awaitAll } from '../../prelude/await-all';
+import { awaitAll } from '@/prelude/await-all';
 import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '@/misc/reaction-lib';
-import { NoteReaction } from '../entities/note-reaction';
+import { NoteReaction } from '@/models/entities/note-reaction';
 import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '@/misc/populate-emojis';
 
 export type PackedNote = SchemaType<typeof packedNoteSchema>;
diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts
index 2b2ae22602200b79cfb20f3ff92ae7b979e2daff..55af96b6d779357d94c6d83750796afb295deb00 100644
--- a/src/models/repositories/notification.ts
+++ b/src/models/repositories/notification.ts
@@ -1,11 +1,11 @@
 import { EntityRepository, In, Repository } from 'typeorm';
 import { Users, Notes, UserGroupInvitations, AccessTokens, NoteReactions } from '../index';
-import { Notification } from '../entities/notification';
-import { awaitAll } from '../../prelude/await-all';
+import { Notification } from '@/models/entities/notification';
+import { awaitAll } from '@/prelude/await-all';
 import { SchemaType } from '@/misc/schema';
-import { Note } from '../entities/note';
-import { NoteReaction } from '../entities/note-reaction';
-import { User } from '../entities/user';
+import { Note } from '@/models/entities/note';
+import { NoteReaction } from '@/models/entities/note-reaction';
+import { User } from '@/models/entities/user';
 import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis';
 
 export type PackedNotification = SchemaType<typeof packedNotificationSchema>;
diff --git a/src/models/repositories/page-like.ts b/src/models/repositories/page-like.ts
index 2f9977de93c077af2e11f4543603c68066a9efa5..28f34254d9ddbac370d8aaad8774576f9c80f01b 100644
--- a/src/models/repositories/page-like.ts
+++ b/src/models/repositories/page-like.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { PageLike } from '../entities/page-like';
+import { PageLike } from '@/models/entities/page-like';
 import { Pages } from '../index';
-import { User } from '../entities/user';
+import { User } from '@/models/entities/user';
 
 @EntityRepository(PageLike)
 export class PageLikeRepository extends Repository<PageLike> {
diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts
index cac1a9545fa5acfa54b0e30cef5d8f52e42d6f0a..757aaa5a3fb2ed3017e6a44cfe66413e32e6c58a 100644
--- a/src/models/repositories/page.ts
+++ b/src/models/repositories/page.ts
@@ -1,10 +1,10 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Page } from '../entities/page';
+import { Page } from '@/models/entities/page';
 import { SchemaType } from '@/misc/schema';
 import { Users, DriveFiles, PageLikes } from '../index';
-import { awaitAll } from '../../prelude/await-all';
-import { DriveFile } from '../entities/drive-file';
-import { User } from '../entities/user';
+import { awaitAll } from '@/prelude/await-all';
+import { DriveFile } from '@/models/entities/drive-file';
+import { User } from '@/models/entities/user';
 
 export type PackedPage = SchemaType<typeof packedPageSchema>;
 
diff --git a/src/models/repositories/relay.ts b/src/models/repositories/relay.ts
index 601bb5eb39ceb3fbb31cdd1dd0103c0b5fa9fefe..72ead899f1b8425074b56babc38b79f896fbc855 100644
--- a/src/models/repositories/relay.ts
+++ b/src/models/repositories/relay.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Relay } from '../entities/relay';
+import { Relay } from '@/models/entities/relay';
 
 @EntityRepository(Relay)
 export class RelayRepository extends Repository<Relay> {
diff --git a/src/models/repositories/signin.ts b/src/models/repositories/signin.ts
index f5b90c0e9ebbf86dc46dc918051b928f369a50ad..9942d2d9626c844af6899eba5902024527effb60 100644
--- a/src/models/repositories/signin.ts
+++ b/src/models/repositories/signin.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { Signin } from '../entities/signin';
+import { Signin } from '@/models/entities/signin';
 
 @EntityRepository(Signin)
 export class SigninRepository extends Repository<Signin> {
diff --git a/src/models/repositories/user-group-invitation.ts b/src/models/repositories/user-group-invitation.ts
index fb34dc9c29d086e86735c93f4fd2e2321d672484..638603d6ea3e02bf4fbe573311ac47911e43a44d 100644
--- a/src/models/repositories/user-group-invitation.ts
+++ b/src/models/repositories/user-group-invitation.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { UserGroupInvitation } from '../entities/user-group-invitation';
+import { UserGroupInvitation } from '@/models/entities/user-group-invitation';
 import { UserGroups } from '../index';
 
 @EntityRepository(UserGroupInvitation)
diff --git a/src/models/repositories/user-group.ts b/src/models/repositories/user-group.ts
index ad144290ab15cdd0f70b12ba0fbe9de26db53c8b..a76ac7b9d366ce83035fe424851a2cbcdeb38fe0 100644
--- a/src/models/repositories/user-group.ts
+++ b/src/models/repositories/user-group.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { UserGroup } from '../entities/user-group';
+import { UserGroup } from '@/models/entities/user-group';
 import { UserGroupJoinings } from '../index';
 import { SchemaType } from '@/misc/schema';
 
diff --git a/src/models/repositories/user-list.ts b/src/models/repositories/user-list.ts
index 38b8c2f1b715e42472c8639ca563c952a1243c45..809dbe0268a098b04d5bcd1e299fa9d32ba53848 100644
--- a/src/models/repositories/user-list.ts
+++ b/src/models/repositories/user-list.ts
@@ -1,5 +1,5 @@
 import { EntityRepository, Repository } from 'typeorm';
-import { UserList } from '../entities/user-list';
+import { UserList } from '@/models/entities/user-list';
 import { UserListJoinings } from '../index';
 import { SchemaType } from '@/misc/schema';
 
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts
index a4e5a43a00564c19fd7e83632a6e4595375e93b7..f56090bb8208eedd1eab3fb913a92f17def901b2 100644
--- a/src/models/repositories/user.ts
+++ b/src/models/repositories/user.ts
@@ -1,10 +1,10 @@
 import $ from 'cafy';
 import { EntityRepository, Repository, In, Not } from 'typeorm';
-import { User, ILocalUser, IRemoteUser } from '../entities/user';
+import { User, ILocalUser, IRemoteUser } from '@/models/entities/user';
 import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '../index';
 import config from '@/config/index';
 import { SchemaType } from '@/misc/schema';
-import { awaitAll } from '../../prelude/await-all';
+import { awaitAll } from '@/prelude/await-all';
 import { populateEmojis } from '@/misc/populate-emojis';
 import { getAntennas } from '@/misc/antenna-cache';
 import { USER_ACTIVE_THRESHOLD, USER_ONLINE_THRESHOLD } from '@/const';
diff --git a/src/remote/activitypub/audience.ts b/src/remote/activitypub/audience.ts
index 7feef5ee7a686216271da97da517868adf70d275..3d2dab14590959663efedc11cac4562881a22360 100644
--- a/src/remote/activitypub/audience.ts
+++ b/src/remote/activitypub/audience.ts
@@ -1,7 +1,7 @@
 import { ApObject, getApIds } from './type';
 import Resolver from './resolver';
 import { resolvePerson } from './models/person';
-import { unique, concat } from '../../prelude/array';
+import { unique, concat } from '@/prelude/array';
 import * as promiseLimit from 'promise-limit';
 import { User, IRemoteUser } from '@/models/entities/user';
 
diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts
index a44a6ced2bec1191bc503e583b999c3eb969937f..ce039a363baa29659bdab7504c2dd945d993940a 100644
--- a/src/remote/activitypub/kernel/create/index.ts
+++ b/src/remote/activitypub/kernel/create/index.ts
@@ -3,7 +3,7 @@ import { IRemoteUser } from '@/models/entities/user';
 import createNote from './note';
 import { ICreate, getApId, isPost, getApType } from '../../type';
 import { apLogger } from '../../logger';
-import { toArray, concat, unique } from '../../../../prelude/array';
+import { toArray, concat, unique } from '@/prelude/array';
 
 const logger = apLogger;
 
diff --git a/src/remote/activitypub/kernel/delete/index.ts b/src/remote/activitypub/kernel/delete/index.ts
index fe919975e78fda60b6b6dcd4945d30b22f24ba0b..474f3f6d606ec0da99d3a2b391ab15ff4b4556f6 100644
--- a/src/remote/activitypub/kernel/delete/index.ts
+++ b/src/remote/activitypub/kernel/delete/index.ts
@@ -1,7 +1,7 @@
 import deleteNote from './note';
 import { IRemoteUser } from '@/models/entities/user';
 import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type';
-import { toSingle } from '../../../../prelude/array';
+import { toSingle } from '@/prelude/array';
 
 /**
  * 削除アクティビティを捌きます
diff --git a/src/remote/activitypub/kernel/index.ts b/src/remote/activitypub/kernel/index.ts
index 0bd0814340c6fd176f4506e70dada763130467a7..20df28eec62455bdf8df61b03b8658c78fa3ae24 100644
--- a/src/remote/activitypub/kernel/index.ts
+++ b/src/remote/activitypub/kernel/index.ts
@@ -16,7 +16,7 @@ import block from './block/index';
 import flag from './flag/index';
 import { apLogger } from '../logger';
 import Resolver from '../resolver';
-import { toArray } from '../../../prelude/array';
+import { toArray } from '@/prelude/array';
 
 export async function performActivity(actor: IRemoteUser, activity: IObject) {
 	if (isCollectionOrOrderedCollection(activity)) {
diff --git a/src/remote/activitypub/models/mention.ts b/src/remote/activitypub/models/mention.ts
index 0db0324aba482b77f1fc4592782198619d537d88..ade9c90806c73191d7863735eae91cb259173e23 100644
--- a/src/remote/activitypub/models/mention.ts
+++ b/src/remote/activitypub/models/mention.ts
@@ -1,4 +1,4 @@
-import { toArray, unique } from '../../../prelude/array';
+import { toArray, unique } from '@/prelude/array';
 import { IObject, isMention, IApMention } from '../type';
 import { resolvePerson } from './person';
 import * as promiseLimit from 'promise-limit';
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts
index d28d642a0ae84fde66008c7aa8c102a98b8b8843..25004cb4d28b1b77812b2bb916461768faaf6ab0 100644
--- a/src/remote/activitypub/models/note.ts
+++ b/src/remote/activitypub/models/note.ts
@@ -8,7 +8,7 @@ import { resolveImage } from './image';
 import { IRemoteUser } from '@/models/entities/user';
 import { htmlToMfm } from '../misc/html-to-mfm';
 import { extractApHashtags } from './tag';
-import { unique, toArray, toSingle } from '../../../prelude/array';
+import { unique, toArray, toSingle } from '@/prelude/array';
 import { extractPollFromQuestion } from './question';
 import vote from '@/services/note/polls/vote';
 import { apLogger } from '../logger';
diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts
index 3ae13135e3ddbf54f0af30df034fc9a6cd7e61c2..4823def7cb27b8f0a732ca0e0ef30dc4459ff733 100644
--- a/src/remote/activitypub/models/person.ts
+++ b/src/remote/activitypub/models/person.ts
@@ -25,7 +25,7 @@ import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
 import { toPuny } from '@/misc/convert-host';
 import { UserProfile } from '@/models/entities/user-profile';
 import { getConnection } from 'typeorm';
-import { toArray } from '../../../prelude/array';
+import { toArray } from '@/prelude/array';
 import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata';
 import { normalizeForSearch } from '@/misc/normalize-for-search';
 
diff --git a/src/remote/activitypub/models/tag.ts b/src/remote/activitypub/models/tag.ts
index d25cb463fed02c7de28c8e49a4e51a70b4982a85..fbc6b9b4289a82b7c6b5c22ecf28a7ca2cd133c2 100644
--- a/src/remote/activitypub/models/tag.ts
+++ b/src/remote/activitypub/models/tag.ts
@@ -1,4 +1,4 @@
-import { toArray } from '../../../prelude/array';
+import { toArray } from '@/prelude/array';
 import { IObject, isHashtag, IApHashtag } from '../type';
 
 export function extractApHashtags(tags: IObject | IObject[] | null | undefined) {
diff --git a/src/remote/webfinger.ts b/src/remote/webfinger.ts
index 744ab3639a84cbfd731979ce752b3582130ab05c..f63fd036283cc3442f5d75483b6b832429fbb4b6 100644
--- a/src/remote/webfinger.ts
+++ b/src/remote/webfinger.ts
@@ -1,6 +1,6 @@
 import { URL } from 'url';
 import { getJson } from '@/misc/fetch';
-import { query as urlQuery } from '../prelude/url';
+import { query as urlQuery } from '@/prelude/url';
 
 type ILink = {
 	href: string;
diff --git a/src/server/activitypub/followers.ts b/src/server/activitypub/followers.ts
index 0fad6b13c19596dac6021fd78066b55857d0c268..8b6a066bf00d141ec0aff58b1488f6f52bf45504 100644
--- a/src/server/activitypub/followers.ts
+++ b/src/server/activitypub/followers.ts
@@ -2,7 +2,7 @@ import * as Router from '@koa/router';
 import config from '@/config/index';
 import $ from 'cafy';
 import { ID } from '@/misc/cafy-id';
-import * as url from '../../prelude/url';
+import * as url from '@/prelude/url';
 import { renderActivity } from '@/remote/activitypub/renderer/index';
 import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection';
 import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page';
diff --git a/src/server/activitypub/following.ts b/src/server/activitypub/following.ts
index e7316d3e4dc07d9c537a5a05a131479bc742bab1..5fc5d68a9c185a0e83cf9ba7b8e1814c59512d03 100644
--- a/src/server/activitypub/following.ts
+++ b/src/server/activitypub/following.ts
@@ -2,7 +2,7 @@ import * as Router from '@koa/router';
 import config from '@/config/index';
 import $ from 'cafy';
 import { ID } from '@/misc/cafy-id';
-import * as url from '../../prelude/url';
+import * as url from '@/prelude/url';
 import { renderActivity } from '@/remote/activitypub/renderer/index';
 import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection';
 import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page';
diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts
index c6cf10de5e1347fb992d6bd8eb1b50c5db8db200..df528e8b5a2296a91a527f2abd8b3d9d28b747cd 100644
--- a/src/server/activitypub/outbox.ts
+++ b/src/server/activitypub/outbox.ts
@@ -9,8 +9,8 @@ import { setResponseType } from '../activitypub';
 import renderNote from '@/remote/activitypub/renderer/note';
 import renderCreate from '@/remote/activitypub/renderer/create';
 import renderAnnounce from '@/remote/activitypub/renderer/announce';
-import { countIf } from '../../prelude/array';
-import * as url from '../../prelude/url';
+import { countIf } from '@/prelude/array';
+import * as url from '@/prelude/url';
 import { Users, Notes } from '@/models/index';
 import { makePaginationQuery } from '../api/common/make-pagination-query';
 import { Brackets } from 'typeorm';
diff --git a/src/server/api/common/read-messaging-message.ts b/src/server/api/common/read-messaging-message.ts
index 8e030faa3de1d3c00b7b53b8aed4899c10f1d3a1..1dce76d2a99ec125252a9c2c793b30a65a0bf24a 100644
--- a/src/server/api/common/read-messaging-message.ts
+++ b/src/server/api/common/read-messaging-message.ts
@@ -7,7 +7,7 @@ import { MessagingMessages, UserGroupJoinings, Users } from '@/models/index';
 import { In } from 'typeorm';
 import { IdentifiableError } from '@/misc/identifiable-error';
 import { UserGroup } from '@/models/entities/user-group';
-import { toArray } from '../../../prelude/array';
+import { toArray } from '@/prelude/array';
 import { renderReadActivity } from '@/remote/activitypub/renderer/read';
 import { renderActivity } from '@/remote/activitypub/renderer/index';
 import { deliver } from '@/queue/index';
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index 5dbafa07eecb61330550b055d61ba19e2b41e444..c2ce943dcc0f7baf27de89b1815e1dc6f6055ff0 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -2,7 +2,7 @@ import $ from 'cafy';
 import define from '../../define';
 import { Apps } from '@/models/index';
 import { genId } from '@/misc/gen-id';
-import { unique } from '../../../../prelude/array';
+import { unique } from '@/prelude/array';
 import { secureRndstr } from '@/misc/secure-rndstr';
 
 export const meta = {
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 921d30c82ea03255958885be383dd25401bf4705..32ebfd683a7626dc795e59c2d4bbae71eb69246e 100644
--- a/src/server/api/endpoints/users/get-frequently-replied-users.ts
+++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts
@@ -1,7 +1,7 @@
 import $ from 'cafy';
 import { ID } from '@/misc/cafy-id';
 import define from '../../define';
-import { maximum } from '../../../../prelude/array';
+import { maximum } from '@/prelude/array';
 import { ApiError } from '../../error';
 import { getUser } from '../../common/getters';
 import { Not, In, IsNull } from 'typeorm';
diff --git a/src/server/index.ts b/src/server/index.ts
index a9904accb4e56269b2e4decde05373ecac8a5400..fb4e48c1c6f48a06929e82723d9686faec452615 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -18,7 +18,7 @@ import nodeinfo from './nodeinfo';
 import wellKnown from './well-known';
 import config from '@/config/index';
 import apiServer from './api/index';
-import { sum } from '../prelude/array';
+import { sum } from '@/prelude/array';
 import Logger from '@/services/logger';
 import { program } from '../argv';
 import { UserProfiles, Users } from '@/models/index';
diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts
index 619335634c58d17e5f9ac63e2ac4850d0ead7ec8..1375420c0ad690eb70cf1945d3904b06d40db10f 100644
--- a/src/server/web/url-preview.ts
+++ b/src/server/web/url-preview.ts
@@ -3,7 +3,7 @@ import summaly from 'summaly';
 import { fetchMeta } from '@/misc/fetch-meta';
 import Logger from '@/services/logger';
 import config from '@/config/index';
-import { query } from '../../prelude/url';
+import { query } from '@/prelude/url';
 import { getJson } from '@/misc/fetch';
 
 const logger = new Logger('url-preview');
diff --git a/src/server/well-known.ts b/src/server/well-known.ts
index 11ad22c5806a81dc3eb6a63beb5f4efa3420b312..a2e6bc0bc4c421d478538db9cdb848f4b8f8c711 100644
--- a/src/server/well-known.ts
+++ b/src/server/well-known.ts
@@ -3,7 +3,7 @@ import * as Router from '@koa/router';
 import config from '@/config/index';
 import { parseAcct, Acct } from '@/misc/acct';
 import { links } from './nodeinfo';
-import { escapeAttribute, escapeValue } from '../prelude/xml';
+import { escapeAttribute, escapeValue } from '@/prelude/xml';
 import { Users } from '@/models/index';
 import { User } from '@/models/entities/user';
 
diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts
index 3c0526d2e57d37c46a0fc8a1da8f1fbf95c9a324..eee7d20efbeb1878a4fa063018fd31ac931e9d7f 100644
--- a/src/services/chart/core.ts
+++ b/src/services/chart/core.ts
@@ -9,7 +9,7 @@ import autobind from 'autobind-decorator';
 import Logger from '../logger';
 import { Schema } from '@/misc/schema';
 import { EntitySchema, getRepository, Repository, LessThan, Between } from 'typeorm';
-import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '../../prelude/time';
+import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '@/prelude/time';
 import { getChartInsertLock } from '@/misc/app-lock';
 
 const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test');
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index 56cdec4a519ee493abafb57db1a1d2f7e14b995b..8c996bdba661dd26512805076a13ebed3594d619 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -9,7 +9,7 @@ import { renderActivity } from '@/remote/activitypub/renderer/index';
 import { resolveUser } from '@/remote/resolve-user';
 import config from '@/config/index';
 import { updateHashtags } from '../update-hashtag';
-import { concat } from '../../prelude/array';
+import { concat } from '@/prelude/array';
 import insertNoteUnread from './unread';
 import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc';
 import { extractMentions } from '@/misc/extract-mentions';