From c74fe3c6e2aae3df4624b9b3a55b45293223ebf5 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Tue, 23 Mar 2021 17:43:07 +0900
Subject: [PATCH] refactor: Use path alias

---
 src/argv.ts                                   |  2 +-
 src/boot/master.ts                            |  6 ++---
 src/client/components/autocomplete.vue        |  4 ++--
 src/client/components/emoji-picker.vue        |  2 +-
 src/client/components/notification.vue        |  2 +-
 src/client/components/poll-editor.vue         |  2 +-
 src/client/components/post-form.vue           |  6 ++---
 .../components/token-generate-window.vue      |  2 +-
 src/client/components/user-info.vue           |  2 +-
 src/client/components/user-preview.vue        |  2 +-
 src/client/filters/user.ts                    |  4 ++--
 src/client/i18n.ts                            |  2 +-
 src/client/pages/follow.vue                   |  2 +-
 src/client/pages/instance/abuses.vue          |  2 +-
 src/client/pages/instance/settings.vue        |  2 +-
 src/client/pages/instance/users.vue           |  2 +-
 src/client/pages/messaging/index.vue          |  2 +-
 .../pages/messaging/messaging-room.form.vue   |  2 +-
 src/client/pages/messaging/messaging-room.vue |  2 +-
 .../pages/my-antennas/index.antenna.vue       |  2 +-
 src/client/pages/room/room.vue                |  2 +-
 src/client/pages/user/index.vue               |  2 +-
 src/client/scripts/gen-search-query.ts        |  2 +-
 src/client/scripts/get-user-menu.ts           |  2 +-
 src/client/sw/compose-notification.ts         |  4 ++--
 src/client/sw/sw.ts                           |  2 +-
 src/client/ui/chat/post-form.vue              |  6 ++---
 src/db/elasticsearch.ts                       |  2 +-
 src/db/postgre.ts                             |  2 +-
 src/db/redis.ts                               |  2 +-
 src/mfm/language.ts                           |  4 ++--
 src/mfm/to-html.ts                            |  2 +-
 src/mfm/to-string.ts                          |  2 +-
 src/misc/captcha.ts                           |  2 +-
 src/misc/convert-host.ts                      |  2 +-
 src/misc/download-url.ts                      |  2 +-
 src/misc/fetch.ts                             |  2 +-
 src/misc/gen-id.ts                            |  2 +-
 src/models/repositories/antenna.ts            |  2 +-
 src/models/repositories/app.ts                |  2 +-
 src/models/repositories/blocking.ts           |  2 +-
 src/models/repositories/channel.ts            |  2 +-
 src/models/repositories/clip.ts               |  2 +-
 src/models/repositories/drive-file.ts         |  8 +++----
 src/models/repositories/drive-folder.ts       |  2 +-
 .../repositories/federation-instance.ts       |  2 +-
 src/models/repositories/following.ts          |  2 +-
 src/models/repositories/hashtag.ts            |  2 +-
 src/models/repositories/messaging-message.ts  |  2 +-
 src/models/repositories/muting.ts             |  2 +-
 src/models/repositories/note-reaction.ts      |  4 ++--
 src/models/repositories/note.ts               |  6 ++---
 src/models/repositories/notification.ts       |  4 ++--
 src/models/repositories/page.ts               |  2 +-
 src/models/repositories/user-group.ts         |  2 +-
 src/models/repositories/user-list.ts          |  2 +-
 src/models/repositories/user.ts               |  8 +++----
 src/queue/index.ts                            |  2 +-
 src/queue/initialize.ts                       |  2 +-
 src/queue/processors/db/export-blocking.ts    |  2 +-
 src/queue/processors/db/export-following.ts   |  2 +-
 src/queue/processors/db/export-mute.ts        |  2 +-
 src/queue/processors/db/export-user-lists.ts  |  2 +-
 src/queue/processors/db/import-following.ts   |  6 ++---
 src/queue/processors/db/import-user-lists.ts  |  8 +++----
 src/queue/processors/deliver.ts               |  6 ++---
 src/queue/processors/inbox.ts                 |  4 ++--
 src/queue/queues.ts                           |  2 +-
 src/remote/activitypub/db-resolver.ts         |  2 +-
 .../activitypub/kernel/announce/note.ts       |  6 ++---
 src/remote/activitypub/kernel/create/note.ts  |  4 ++--
 src/remote/activitypub/kernel/delete/note.ts  |  2 +-
 src/remote/activitypub/kernel/flag/index.ts   |  4 ++--
 src/remote/activitypub/kernel/read.ts         |  2 +-
 src/remote/activitypub/misc/ld-signature.ts   |  2 +-
 src/remote/activitypub/models/image.ts        |  2 +-
 src/remote/activitypub/models/note.ts         | 10 ++++-----
 src/remote/activitypub/models/person.ts       | 10 ++++-----
 src/remote/activitypub/models/question.ts     |  2 +-
 src/remote/activitypub/renderer/accept.ts     |  2 +-
 src/remote/activitypub/renderer/add.ts        |  2 +-
 src/remote/activitypub/renderer/announce.ts   |  2 +-
 src/remote/activitypub/renderer/block.ts      |  2 +-
 src/remote/activitypub/renderer/create.ts     |  2 +-
 src/remote/activitypub/renderer/delete.ts     |  2 +-
 src/remote/activitypub/renderer/emoji.ts      |  2 +-
 .../activitypub/renderer/follow-relay.ts      |  2 +-
 .../activitypub/renderer/follow-user.ts       |  2 +-
 src/remote/activitypub/renderer/follow.ts     |  2 +-
 src/remote/activitypub/renderer/hashtag.ts    |  2 +-
 src/remote/activitypub/renderer/index.ts      |  4 ++--
 src/remote/activitypub/renderer/key.ts        |  2 +-
 src/remote/activitypub/renderer/like.ts       |  2 +-
 src/remote/activitypub/renderer/mention.ts    |  2 +-
 src/remote/activitypub/renderer/note.ts       |  2 +-
 src/remote/activitypub/renderer/person.ts     |  4 ++--
 src/remote/activitypub/renderer/question.ts   |  2 +-
 src/remote/activitypub/renderer/read.ts       |  2 +-
 src/remote/activitypub/renderer/reject.ts     |  2 +-
 src/remote/activitypub/renderer/remove.ts     |  2 +-
 src/remote/activitypub/renderer/undo.ts       |  2 +-
 src/remote/activitypub/renderer/update.ts     |  2 +-
 src/remote/activitypub/renderer/vote.ts       |  2 +-
 src/remote/activitypub/request.ts             |  6 ++---
 src/remote/activitypub/resolver.ts            |  4 ++--
 src/remote/resolve-user.ts                    |  4 ++--
 src/remote/webfinger.ts                       |  2 +-
 src/server/activitypub.ts                     |  4 ++--
 src/server/activitypub/featured.ts            |  2 +-
 src/server/activitypub/followers.ts           |  4 ++--
 src/server/activitypub/following.ts           |  4 ++--
 src/server/activitypub/outbox.ts              |  4 ++--
 src/server/api/2fa.ts                         |  2 +-
 src/server/api/authenticate.ts                |  2 +-
 .../api/common/generate-native-user-token.ts  |  2 +-
 src/server/api/common/getters.ts              |  2 +-
 .../api/common/read-messaging-message.ts      |  2 +-
 src/server/api/common/signin.ts               |  4 ++--
 src/server/api/common/signup.ts               |  4 ++--
 src/server/api/define.ts                      |  2 +-
 src/server/api/endpoints.ts                   |  2 +-
 .../api/endpoints/admin/abuse-user-reports.ts |  2 +-
 .../endpoints/admin/announcements/create.ts   |  2 +-
 .../endpoints/admin/announcements/delete.ts   |  2 +-
 .../api/endpoints/admin/announcements/list.ts |  2 +-
 .../endpoints/admin/announcements/update.ts   |  2 +-
 .../admin/delete-all-files-of-a-user.ts       |  2 +-
 src/server/api/endpoints/admin/drive/files.ts |  2 +-
 .../api/endpoints/admin/drive/show-file.ts    |  2 +-
 src/server/api/endpoints/admin/emoji/add.ts   |  4 ++--
 src/server/api/endpoints/admin/emoji/copy.ts  |  4 ++--
 .../api/endpoints/admin/emoji/list-remote.ts  |  4 ++--
 src/server/api/endpoints/admin/emoji/list.ts  |  2 +-
 .../api/endpoints/admin/emoji/remove.ts       |  2 +-
 .../api/endpoints/admin/emoji/update.ts       |  2 +-
 .../refresh-remote-instance-metadata.ts       |  2 +-
 .../admin/federation/update-instance.ts       |  2 +-
 src/server/api/endpoints/admin/invite.ts      |  2 +-
 .../api/endpoints/admin/moderators/add.ts     |  2 +-
 .../api/endpoints/admin/moderators/remove.ts  |  2 +-
 .../api/endpoints/admin/promo/create.ts       |  2 +-
 .../api/endpoints/admin/reset-password.ts     |  2 +-
 .../admin/resolve-abuse-user-report.ts        |  2 +-
 .../endpoints/admin/show-moderation-logs.ts   |  2 +-
 src/server/api/endpoints/admin/show-user.ts   |  2 +-
 .../api/endpoints/admin/silence-user.ts       |  2 +-
 .../api/endpoints/admin/suspend-user.ts       |  2 +-
 .../api/endpoints/admin/unsilence-user.ts     |  2 +-
 .../api/endpoints/admin/unsuspend-user.ts     |  2 +-
 src/server/api/endpoints/admin/update-meta.ts |  4 ++--
 .../api/endpoints/admin/update-remote-user.ts |  2 +-
 src/server/api/endpoints/announcements.ts     |  2 +-
 src/server/api/endpoints/antennas/create.ts   |  4 ++--
 src/server/api/endpoints/antennas/delete.ts   |  2 +-
 src/server/api/endpoints/antennas/notes.ts    |  2 +-
 src/server/api/endpoints/antennas/show.ts     |  2 +-
 src/server/api/endpoints/antennas/update.ts   |  2 +-
 src/server/api/endpoints/ap/show.ts           |  6 ++---
 src/server/api/endpoints/app/create.ts        |  4 ++--
 src/server/api/endpoints/app/show.ts          |  2 +-
 src/server/api/endpoints/auth/accept.ts       |  4 ++--
 .../api/endpoints/auth/session/generate.ts    |  4 ++--
 src/server/api/endpoints/blocking/create.ts   |  2 +-
 src/server/api/endpoints/blocking/delete.ts   |  2 +-
 src/server/api/endpoints/blocking/list.ts     |  2 +-
 src/server/api/endpoints/channels/create.ts   |  4 ++--
 src/server/api/endpoints/channels/follow.ts   |  4 ++--
 src/server/api/endpoints/channels/followed.ts |  2 +-
 src/server/api/endpoints/channels/owned.ts    |  2 +-
 src/server/api/endpoints/channels/show.ts     |  2 +-
 src/server/api/endpoints/channels/timeline.ts |  2 +-
 src/server/api/endpoints/channels/unfollow.ts |  2 +-
 src/server/api/endpoints/channels/update.ts   |  2 +-
 src/server/api/endpoints/charts/user/drive.ts |  2 +-
 .../api/endpoints/charts/user/following.ts    |  2 +-
 src/server/api/endpoints/charts/user/notes.ts |  2 +-
 .../api/endpoints/charts/user/reactions.ts    |  2 +-
 src/server/api/endpoints/clips/add-note.ts    |  4 ++--
 src/server/api/endpoints/clips/create.ts      |  2 +-
 src/server/api/endpoints/clips/delete.ts      |  2 +-
 src/server/api/endpoints/clips/notes.ts       |  2 +-
 src/server/api/endpoints/clips/show.ts        |  2 +-
 src/server/api/endpoints/clips/update.ts      |  2 +-
 src/server/api/endpoints/drive.ts             |  2 +-
 src/server/api/endpoints/drive/files.ts       |  2 +-
 .../endpoints/drive/files/attached-notes.ts   |  2 +-
 .../api/endpoints/drive/files/create.ts       |  2 +-
 .../api/endpoints/drive/files/delete.ts       |  2 +-
 src/server/api/endpoints/drive/files/find.ts  |  2 +-
 src/server/api/endpoints/drive/files/show.ts  |  2 +-
 .../api/endpoints/drive/files/update.ts       |  2 +-
 .../endpoints/drive/files/upload-from-url.ts  |  2 +-
 src/server/api/endpoints/drive/folders.ts     |  2 +-
 .../api/endpoints/drive/folders/create.ts     |  4 ++--
 .../api/endpoints/drive/folders/delete.ts     |  2 +-
 .../api/endpoints/drive/folders/find.ts       |  2 +-
 .../api/endpoints/drive/folders/show.ts       |  2 +-
 .../api/endpoints/drive/folders/update.ts     |  2 +-
 src/server/api/endpoints/drive/stream.ts      |  2 +-
 .../api/endpoints/federation/followers.ts     |  2 +-
 .../api/endpoints/federation/following.ts     |  2 +-
 .../api/endpoints/federation/instances.ts     |  4 ++--
 .../api/endpoints/federation/show-instance.ts |  4 ++--
 src/server/api/endpoints/federation/users.ts  |  2 +-
 src/server/api/endpoints/following/create.ts  |  2 +-
 src/server/api/endpoints/following/delete.ts  |  2 +-
 .../endpoints/following/requests/accept.ts    |  2 +-
 .../endpoints/following/requests/cancel.ts    |  2 +-
 .../endpoints/following/requests/reject.ts    |  2 +-
 .../api/endpoints/games/reversi/games.ts      |  2 +-
 .../api/endpoints/games/reversi/games/show.ts |  2 +-
 .../games/reversi/games/surrender.ts          |  2 +-
 .../api/endpoints/games/reversi/match.ts      |  4 ++--
 .../api/endpoints/get-online-users-count.ts   |  2 +-
 src/server/api/endpoints/hashtags/show.ts     |  2 +-
 src/server/api/endpoints/hashtags/trend.ts    |  6 ++---
 src/server/api/endpoints/hashtags/users.ts    |  2 +-
 src/server/api/endpoints/i/2fa/key-done.ts    |  2 +-
 .../api/endpoints/i/2fa/register-key.ts       |  2 +-
 src/server/api/endpoints/i/2fa/register.ts    |  2 +-
 src/server/api/endpoints/i/favorites.ts       |  2 +-
 .../api/endpoints/i/import-following.ts       |  2 +-
 .../api/endpoints/i/import-user-lists.ts      |  2 +-
 src/server/api/endpoints/i/notifications.ts   |  2 +-
 src/server/api/endpoints/i/page-likes.ts      |  2 +-
 src/server/api/endpoints/i/pages.ts           |  2 +-
 src/server/api/endpoints/i/pin.ts             |  2 +-
 .../api/endpoints/i/read-announcement.ts      |  4 ++--
 src/server/api/endpoints/i/registry/set.ts    |  2 +-
 src/server/api/endpoints/i/revoke-token.ts    |  2 +-
 src/server/api/endpoints/i/signin-history.ts  |  2 +-
 src/server/api/endpoints/i/unpin.ts           |  2 +-
 src/server/api/endpoints/i/update-email.ts    |  2 +-
 src/server/api/endpoints/i/update.ts          |  8 +++----
 .../api/endpoints/i/user-group-invites.ts     |  2 +-
 .../api/endpoints/messaging/messages.ts       |  2 +-
 .../endpoints/messaging/messages/create.ts    |  2 +-
 .../endpoints/messaging/messages/delete.ts    |  2 +-
 .../api/endpoints/messaging/messages/read.ts  |  2 +-
 src/server/api/endpoints/meta.ts              |  6 ++---
 src/server/api/endpoints/miauth/gen-token.ts  |  4 ++--
 src/server/api/endpoints/mute/create.ts       |  4 ++--
 src/server/api/endpoints/mute/delete.ts       |  2 +-
 src/server/api/endpoints/mute/list.ts         |  2 +-
 src/server/api/endpoints/notes.ts             |  2 +-
 src/server/api/endpoints/notes/children.ts    |  2 +-
 src/server/api/endpoints/notes/clips.ts       |  2 +-
 .../api/endpoints/notes/conversation.ts       |  2 +-
 src/server/api/endpoints/notes/create.ts      |  6 ++---
 src/server/api/endpoints/notes/delete.ts      |  2 +-
 .../api/endpoints/notes/favorites/create.ts   |  4 ++--
 .../api/endpoints/notes/favorites/delete.ts   |  2 +-
 .../api/endpoints/notes/global-timeline.ts    |  4 ++--
 .../api/endpoints/notes/hybrid-timeline.ts    |  4 ++--
 .../api/endpoints/notes/local-timeline.ts     |  4 ++--
 src/server/api/endpoints/notes/mentions.ts    |  2 +-
 src/server/api/endpoints/notes/polls/vote.ts  |  4 ++--
 src/server/api/endpoints/notes/reactions.ts   |  2 +-
 .../api/endpoints/notes/reactions/create.ts   |  2 +-
 .../api/endpoints/notes/reactions/delete.ts   |  2 +-
 src/server/api/endpoints/notes/renotes.ts     |  2 +-
 src/server/api/endpoints/notes/replies.ts     |  2 +-
 .../api/endpoints/notes/search-by-tag.ts      |  6 ++---
 src/server/api/endpoints/notes/search.ts      |  4 ++--
 src/server/api/endpoints/notes/show.ts        |  2 +-
 src/server/api/endpoints/notes/state.ts       |  2 +-
 src/server/api/endpoints/notes/timeline.ts    |  2 +-
 src/server/api/endpoints/notes/unrenote.ts    |  2 +-
 .../api/endpoints/notes/user-list-timeline.ts |  2 +-
 .../api/endpoints/notes/watching/create.ts    |  2 +-
 .../api/endpoints/notes/watching/delete.ts    |  2 +-
 src/server/api/endpoints/page-push.ts         |  2 +-
 src/server/api/endpoints/pages/create.ts      |  4 ++--
 src/server/api/endpoints/pages/delete.ts      |  2 +-
 src/server/api/endpoints/pages/like.ts        |  4 ++--
 src/server/api/endpoints/pages/show.ts        |  2 +-
 src/server/api/endpoints/pages/unlike.ts      |  2 +-
 src/server/api/endpoints/pages/update.ts      |  2 +-
 src/server/api/endpoints/pinned-users.ts      |  4 ++--
 src/server/api/endpoints/promo/read.ts        |  4 ++--
 src/server/api/endpoints/room/show.ts         |  4 ++--
 src/server/api/endpoints/sw/register.ts       |  4 ++--
 src/server/api/endpoints/users/clips.ts       |  2 +-
 src/server/api/endpoints/users/followers.ts   |  4 ++--
 src/server/api/endpoints/users/following.ts   |  4 ++--
 .../users/get-frequently-replied-users.ts     |  2 +-
 .../api/endpoints/users/groups/create.ts      |  2 +-
 .../api/endpoints/users/groups/delete.ts      |  2 +-
 .../users/groups/invitations/accept.ts        |  4 ++--
 .../users/groups/invitations/reject.ts        |  2 +-
 .../api/endpoints/users/groups/invite.ts      |  4 ++--
 src/server/api/endpoints/users/groups/pull.ts |  2 +-
 src/server/api/endpoints/users/groups/show.ts |  2 +-
 .../api/endpoints/users/groups/transfer.ts    |  2 +-
 .../api/endpoints/users/groups/update.ts      |  2 +-
 .../api/endpoints/users/lists/create.ts       |  2 +-
 .../api/endpoints/users/lists/delete.ts       |  2 +-
 src/server/api/endpoints/users/lists/pull.ts  |  2 +-
 src/server/api/endpoints/users/lists/push.ts  |  2 +-
 src/server/api/endpoints/users/lists/show.ts  |  2 +-
 .../api/endpoints/users/lists/update.ts       |  2 +-
 src/server/api/endpoints/users/notes.ts       |  2 +-
 src/server/api/endpoints/users/pages.ts       |  2 +-
 src/server/api/endpoints/users/relation.ts    |  2 +-
 .../api/endpoints/users/report-abuse.ts       |  4 ++--
 src/server/api/endpoints/users/show.ts        |  2 +-
 src/server/api/endpoints/users/stats.ts       |  2 +-
 src/server/api/limiter.ts                     |  2 +-
 src/server/api/openapi/description.ts         |  2 +-
 src/server/api/openapi/gen-spec.ts            |  2 +-
 src/server/api/openapi/schemas.ts             |  2 +-
 src/server/api/private/signin.ts              |  4 ++--
 src/server/api/private/signup.ts              |  4 ++--
 src/server/api/service/discord.ts             |  6 ++---
 src/server/api/service/github.ts              |  6 ++---
 src/server/api/service/twitter.ts             |  4 ++--
 src/server/api/stream/channels/antenna.ts     |  2 +-
 src/server/api/stream/channels/channel.ts     |  2 +-
 .../api/stream/channels/global-timeline.ts    |  6 ++---
 src/server/api/stream/channels/hashtag.ts     |  4 ++--
 .../api/stream/channels/home-timeline.ts      |  4 ++--
 .../api/stream/channels/hybrid-timeline.ts    |  6 ++---
 .../api/stream/channels/local-timeline.ts     |  6 ++---
 src/server/api/stream/channels/user-list.ts   |  2 +-
 src/server/file/send-drive-file.ts            |  6 ++---
 src/server/index.ts                           |  6 ++---
 src/server/nodeinfo.ts                        |  4 ++--
 src/server/proxy/proxy-media.ts               |  6 ++---
 src/server/web/feed.ts                        |  2 +-
 src/server/web/index.ts                       |  8 +++----
 src/server/web/manifest.ts                    |  2 +-
 src/server/web/url-preview.ts                 |  6 ++---
 src/server/well-known.ts                      |  6 ++---
 src/services/add-note-to-antenna.ts           |  4 ++--
 src/services/blocking/create.ts               |  2 +-
 .../chart/charts/classes/active-users.ts      |  2 +-
 src/services/chart/charts/classes/drive.ts    |  2 +-
 .../chart/charts/classes/federation.ts        |  2 +-
 src/services/chart/charts/classes/hashtag.ts  |  2 +-
 src/services/chart/charts/classes/instance.ts |  4 ++--
 src/services/chart/charts/classes/network.ts  |  2 +-
 src/services/chart/charts/classes/notes.ts    |  2 +-
 .../chart/charts/classes/per-user-drive.ts    |  2 +-
 .../charts/classes/per-user-following.ts      |  2 +-
 .../chart/charts/classes/per-user-notes.ts    |  2 +-
 .../charts/classes/per-user-reactions.ts      |  2 +-
 .../chart/charts/classes/test-grouped.ts      |  2 +-
 .../chart/charts/classes/test-unique.ts       |  2 +-
 src/services/chart/charts/classes/test.ts     |  2 +-
 src/services/chart/charts/classes/users.ts    |  2 +-
 src/services/chart/core.ts                    |  4 ++--
 src/services/chart/index.ts                   |  2 +-
 src/services/create-notification.ts           |  2 +-
 src/services/create-system-user.ts            |  4 ++--
 src/services/drive/add-file.ts                | 10 ++++-----
 src/services/drive/delete-file.ts             |  4 ++--
 src/services/drive/internal-storage.ts        |  2 +-
 src/services/drive/s3.ts                      |  2 +-
 src/services/drive/upload-from-url.ts         |  4 ++--
 src/services/fetch-instance-metadata.ts       |  4 ++--
 src/services/following/create.ts              |  6 ++---
 src/services/following/requests/accept.ts     |  2 +-
 src/services/following/requests/cancel.ts     |  2 +-
 src/services/following/requests/create.ts     |  2 +-
 src/services/i/pin.ts                         |  6 ++---
 src/services/insert-moderation-log.ts         |  2 +-
 src/services/instance-actor.ts                |  2 +-
 src/services/logger.ts                        |  4 ++--
 src/services/messages/create.ts               |  2 +-
 src/services/messages/delete.ts               |  2 +-
 src/services/note/create.ts                   | 22 +++++++++----------
 src/services/note/delete.ts                   |  4 ++--
 src/services/note/polls/vote.ts               |  2 +-
 src/services/note/reaction/create.ts          |  6 ++---
 src/services/note/reaction/delete.ts          |  4 ++--
 src/services/note/read.ts                     |  4 ++--
 src/services/note/unread.ts                   |  2 +-
 src/services/note/watch.ts                    |  2 +-
 src/services/push-notification.ts             |  4 ++--
 .../register-or-fetch-instance-doc.ts         |  6 ++---
 src/services/relay.ts                         |  2 +-
 src/services/send-email-notification.ts       |  2 +-
 src/services/send-email.ts                    |  4 ++--
 src/services/stream.ts                        |  2 +-
 src/services/suspend-user.ts                  |  2 +-
 src/services/unsuspend-user.ts                |  2 +-
 src/services/update-hashtag.ts                |  4 ++--
 src/services/user-list/push.ts                |  4 ++--
 src/tools/accept-migration.ts                 |  2 +-
 src/tools/add-emoji.ts                        |  2 +-
 src/tools/resync-remote-user.ts               |  2 +-
 391 files changed, 557 insertions(+), 557 deletions(-)

diff --git a/src/argv.ts b/src/argv.ts
index a92338f867..9c69a450db 100644
--- a/src/argv.ts
+++ b/src/argv.ts
@@ -1,5 +1,5 @@
 import * as program from 'commander';
-import config from './config';
+import config from '@/config';
 
 program
 	.version(config.version)
diff --git a/src/boot/master.ts b/src/boot/master.ts
index 33ccec55d0..ef8692b308 100644
--- a/src/boot/master.ts
+++ b/src/boot/master.ts
@@ -6,11 +6,11 @@ import * as isRoot from 'is-root';
 import { getConnection } from 'typeorm';
 
 import Logger from '../services/logger';
-import loadConfig from '../config/load';
-import { Config } from '../config/types';
+import loadConfig from '@/config/load';
+import { Config } from '@/config/types';
 import { lessThan } from '../prelude/array';
 import { program } from '../argv';
-import { showMachineInfo } from '../misc/show-machine-info';
+import { showMachineInfo } from '@/misc/show-machine-info';
 import { initDb } from '../db/postgre';
 const meta = require('../meta.json');
 
diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue
index 2014c710a5..35cfb77301 100644
--- a/src/client/components/autocomplete.vue
+++ b/src/client/components/autocomplete.vue
@@ -29,9 +29,9 @@
 
 <script lang="ts">
 import { defineComponent, markRaw } from 'vue';
-import { emojilist } from '../../misc/emojilist';
+import { emojilist } from '@/misc/emojilist';
 import contains from '@client/scripts/contains';
-import { twemojiSvgBase } from '../../misc/twemoji-base';
+import { twemojiSvgBase } from '@/misc/twemoji-base';
 import { getStaticImageUrl } from '@client/scripts/get-static-image-url';
 import { acct } from '@client/filters/user';
 import * as os from '@client/os';
diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue
index 4e4468912f..573833b9d3 100644
--- a/src/client/components/emoji-picker.vue
+++ b/src/client/components/emoji-picker.vue
@@ -74,7 +74,7 @@
 
 <script lang="ts">
 import { defineComponent, markRaw } from 'vue';
-import { emojilist } from '../../misc/emojilist';
+import { emojilist } from '@/misc/emojilist';
 import { getStaticImageUrl } from '@client/scripts/get-static-image-url';
 import { faAsterisk, faLeaf, faUtensils, faFutbol, faCity, faDice, faGlobe, faClock, faUser, faChevronDown, faShapes, faBicycle, faHashtag } from '@fortawesome/free-solid-svg-icons';
 import { faHeart, faFlag, faLaugh } from '@fortawesome/free-regular-svg-icons';
diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue
index ac46307352..2b8b440ced 100644
--- a/src/client/components/notification.vue
+++ b/src/client/components/notification.vue
@@ -61,7 +61,7 @@
 import { defineComponent } from 'vue';
 import { faIdCardAlt, faPlus, faQuoteLeft, faQuoteRight, faRetweet, faReply, faAt, faCheck, faPollH } from '@fortawesome/free-solid-svg-icons';
 import { faClock } from '@fortawesome/free-regular-svg-icons';
-import { getNoteSummary } from '../../misc/get-note-summary';
+import { getNoteSummary } from '@/misc/get-note-summary';
 import XReactionIcon from './reaction-icon.vue';
 import MkFollowButton from './follow-button.vue';
 import notePage from '../filters/note';
diff --git a/src/client/components/poll-editor.vue b/src/client/components/poll-editor.vue
index 49454f23c3..3503d3df71 100644
--- a/src/client/components/poll-editor.vue
+++ b/src/client/components/poll-editor.vue
@@ -52,7 +52,7 @@
 import { defineComponent } from 'vue';
 import { faExclamationTriangle, faTimes } from '@fortawesome/free-solid-svg-icons';
 import { addTime } from '../../prelude/time';
-import { formatDateTimeString } from '../../misc/format-time-string';
+import { formatDateTimeString } from '@/misc/format-time-string';
 import MkInput from './ui/input.vue';
 import MkSelect from './ui/select.vue';
 import MkSwitch from './ui/switch.vue';
diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue
index dc24c714b5..7d2355c190 100644
--- a/src/client/components/post-form.vue
+++ b/src/client/components/post-form.vue
@@ -61,9 +61,9 @@ import XNotePreview from './note-preview.vue';
 import { parse } from '../../mfm/parse';
 import { host, url } from '@client/config';
 import { erase, unique } from '../../prelude/array';
-import extractMentions from '../../misc/extract-mentions';
-import getAcct from '../../misc/acct/render';
-import { formatTimeString } from '../../misc/format-time-string';
+import extractMentions from '@/misc/extract-mentions';
+import getAcct from '@/misc/acct/render';
+import { formatTimeString } from '@/misc/format-time-string';
 import { Autocomplete } from '@client/scripts/autocomplete';
 import { noteVisibilities } from '../../types';
 import * as os from '@client/os';
diff --git a/src/client/components/token-generate-window.vue b/src/client/components/token-generate-window.vue
index 9d5b16e03f..87a76931e4 100644
--- a/src/client/components/token-generate-window.vue
+++ b/src/client/components/token-generate-window.vue
@@ -27,7 +27,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import { kinds } from '../../misc/api-permissions';
+import { kinds } from '@/misc/api-permissions';
 import XModalWindow from '@client/components/ui/modal-window.vue';
 import MkInput from './ui/input.vue';
 import MkTextarea from './ui/textarea.vue';
diff --git a/src/client/components/user-info.vue b/src/client/components/user-info.vue
index 711e367411..34ea38c3b4 100644
--- a/src/client/components/user-info.vue
+++ b/src/client/components/user-info.vue
@@ -29,7 +29,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import parseAcct from '../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import MkFollowButton from './follow-button.vue';
 import { userPage } from '../filters/user';
 
diff --git a/src/client/components/user-preview.vue b/src/client/components/user-preview.vue
index 216141347c..b2b3358374 100644
--- a/src/client/components/user-preview.vue
+++ b/src/client/components/user-preview.vue
@@ -33,7 +33,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import parseAcct from '../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import MkFollowButton from './follow-button.vue';
 import { userPage } from '../filters/user';
 import * as os from '@client/os';
diff --git a/src/client/filters/user.ts b/src/client/filters/user.ts
index e3b7e556b0..ad4663cb92 100644
--- a/src/client/filters/user.ts
+++ b/src/client/filters/user.ts
@@ -1,5 +1,5 @@
-import getAcct from '../../misc/acct/render';
-import getUserName from '../../misc/get-user-name';
+import getAcct from '@/misc/acct/render';
+import getUserName from '@/misc/get-user-name';
 import { url } from '@client/config';
 
 export const acct = user => {
diff --git a/src/client/i18n.ts b/src/client/i18n.ts
index d0f4c963ce..dc23676474 100644
--- a/src/client/i18n.ts
+++ b/src/client/i18n.ts
@@ -1,6 +1,6 @@
 import { markRaw } from 'vue';
 import { locale } from '@client/config';
-import { I18n } from '../misc/i18n';
+import { I18n } from '@/misc/i18n';
 
 export const i18n = markRaw(new I18n(locale));
 
diff --git a/src/client/pages/follow.vue b/src/client/pages/follow.vue
index 018901abb4..f5afdf0892 100644
--- a/src/client/pages/follow.vue
+++ b/src/client/pages/follow.vue
@@ -6,7 +6,7 @@
 <script lang="ts">
 import { defineComponent } from 'vue';
 import * as os from '@client/os';
-import parseAcct from '../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 
 export default defineComponent({
 	created() {
diff --git a/src/client/pages/instance/abuses.vue b/src/client/pages/instance/abuses.vue
index b78141eb2e..d7d7697ebd 100644
--- a/src/client/pages/instance/abuses.vue
+++ b/src/client/pages/instance/abuses.vue
@@ -65,7 +65,7 @@
 import { defineComponent } from 'vue';
 import { faPlus, faUsers, faSearch, faBookmark, faMicrophoneSlash, faExclamationCircle } from '@fortawesome/free-solid-svg-icons';
 import { faSnowflake, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import MkButton from '@client/components/ui/button.vue';
 import MkInput from '@client/components/ui/input.vue';
 import MkSelect from '@client/components/ui/select.vue';
diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue
index 93564d42e9..891eba3cf0 100644
--- a/src/client/pages/instance/settings.vue
+++ b/src/client/pages/instance/settings.vue
@@ -258,7 +258,7 @@ import MkTextarea from '@client/components/ui/textarea.vue';
 import MkSwitch from '@client/components/ui/switch.vue';
 import MkInfo from '@client/components/ui/info.vue';
 import { url } from '@client/config';
-import getAcct from '../../../misc/acct/render';
+import getAcct from '@/misc/acct/render';
 import * as os from '@client/os';
 import { fetchInstance } from '@client/instance';
 
diff --git a/src/client/pages/instance/users.vue b/src/client/pages/instance/users.vue
index c88306b55b..013eed3971 100644
--- a/src/client/pages/instance/users.vue
+++ b/src/client/pages/instance/users.vue
@@ -82,7 +82,7 @@
 import { defineComponent } from 'vue';
 import { faPlus, faUsers, faSearch, faBookmark, faMicrophoneSlash } from '@fortawesome/free-solid-svg-icons';
 import { faSnowflake, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import MkButton from '@client/components/ui/button.vue';
 import MkInput from '@client/components/ui/input.vue';
 import MkSelect from '@client/components/ui/select.vue';
diff --git a/src/client/pages/messaging/index.vue b/src/client/pages/messaging/index.vue
index 2dfad3e238..c906b968a4 100644
--- a/src/client/pages/messaging/index.vue
+++ b/src/client/pages/messaging/index.vue
@@ -41,7 +41,7 @@
 <script lang="ts">
 import { defineAsyncComponent, defineComponent } from 'vue';
 import { faUser, faUsers, faComments, faPlus } from '@fortawesome/free-solid-svg-icons';
-import getAcct from '../../../misc/acct/render';
+import getAcct from '@/misc/acct/render';
 import MkButton from '@client/components/ui/button.vue';
 import { acct } from '../../filters/user';
 import * as os from '@client/os';
diff --git a/src/client/pages/messaging/messaging-room.form.vue b/src/client/pages/messaging/messaging-room.form.vue
index a98448553f..5826b8d0d2 100644
--- a/src/client/pages/messaging/messaging-room.form.vue
+++ b/src/client/pages/messaging/messaging-room.form.vue
@@ -26,7 +26,7 @@ import { defineComponent, defineAsyncComponent } from 'vue';
 import { faPaperPlane, faPhotoVideo, faLaughSquint } from '@fortawesome/free-solid-svg-icons';
 import insertTextAtCursor from 'insert-text-at-cursor';
 import * as autosize from 'autosize';
-import { formatTimeString } from '../../../misc/format-time-string';
+import { formatTimeString } from '@/misc/format-time-string';
 import { selectFile } from '@client/scripts/select-file';
 import * as os from '@client/os';
 import { Autocomplete } from '@client/scripts/autocomplete';
diff --git a/src/client/pages/messaging/messaging-room.vue b/src/client/pages/messaging/messaging-room.vue
index 53da13f5a3..8473bb36c2 100644
--- a/src/client/pages/messaging/messaging-room.vue
+++ b/src/client/pages/messaging/messaging-room.vue
@@ -42,7 +42,7 @@ import { faWindowMaximize } from '@fortawesome/free-regular-svg-icons';
 import XList from '@client/components/date-separated-list.vue';
 import XMessage from './messaging-room.message.vue';
 import XForm from './messaging-room.form.vue';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { isBottom, onScrollBottom, scroll } from '@client/scripts/scroll';
 import * as os from '@client/os';
 import { popout } from '@client/scripts/popout';
diff --git a/src/client/pages/my-antennas/index.antenna.vue b/src/client/pages/my-antennas/index.antenna.vue
index 34452e96ac..d7050d08c4 100644
--- a/src/client/pages/my-antennas/index.antenna.vue
+++ b/src/client/pages/my-antennas/index.antenna.vue
@@ -53,7 +53,7 @@ import MkInput from '@client/components/ui/input.vue';
 import MkTextarea from '@client/components/ui/textarea.vue';
 import MkSelect from '@client/components/ui/select.vue';
 import MkSwitch from '@client/components/ui/switch.vue';
-import getAcct from '../../../misc/acct/render';
+import getAcct from '@/misc/acct/render';
 import * as os from '@client/os';
 
 export default defineComponent({
diff --git a/src/client/pages/room/room.vue b/src/client/pages/room/room.vue
index ceb2cc7890..e6e2809725 100644
--- a/src/client/pages/room/room.vue
+++ b/src/client/pages/room/room.vue
@@ -52,7 +52,7 @@
 <script lang="ts">
 import { computed, defineComponent } from 'vue';
 import { Room } from '@client/scripts/room/room';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import XPreview from './preview.vue';
 const storeItems = require('@client/scripts/room/furnitures.json5');
 import { faBoxOpen, faUndo, faArrowsAlt, faBan, faBroom } from '@fortawesome/free-solid-svg-icons';
diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue
index 18c66adbeb..5ca29a3e41 100644
--- a/src/client/pages/user/index.vue
+++ b/src/client/pages/user/index.vue
@@ -228,7 +228,7 @@ import MkFolder from '@client/components/ui/folder.vue';
 import MkRemoteCaution from '@client/components/remote-caution.vue';
 import MkTab from '@client/components/tab.vue';
 import Progress from '@client/scripts/loading';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { getScrollPosition } from '@client/scripts/scroll';
 import { getUserMenu } from '@client/scripts/get-user-menu';
 import number from '../../filters/number';
diff --git a/src/client/scripts/gen-search-query.ts b/src/client/scripts/gen-search-query.ts
index 998d932141..a1db267123 100644
--- a/src/client/scripts/gen-search-query.ts
+++ b/src/client/scripts/gen-search-query.ts
@@ -1,4 +1,4 @@
-import parseAcct from '../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { host as localHost } from '@client/config';
 
 export async function genSearchQuery(v: any, q: string) {
diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts
index 87f7bff942..163eff619c 100644
--- a/src/client/scripts/get-user-menu.ts
+++ b/src/client/scripts/get-user-menu.ts
@@ -3,7 +3,7 @@ import { faSnowflake, faEnvelope } from '@fortawesome/free-regular-svg-icons';
 import { i18n } from '@client/i18n';
 import copyToClipboard from '@client/scripts/copy-to-clipboard';
 import { host } from '@client/config';
-import getAcct from '../../misc/acct/render';
+import getAcct from '@/misc/acct/render';
 import * as os from '@client/os';
 import { userActions } from '@client/store';
 import { router } from '@client/router';
diff --git a/src/client/sw/compose-notification.ts b/src/client/sw/compose-notification.ts
index e9586dd574..7ed0a95359 100644
--- a/src/client/sw/compose-notification.ts
+++ b/src/client/sw/compose-notification.ts
@@ -3,8 +3,8 @@
  */
 declare var self: ServiceWorkerGlobalScope;
 
-import { getNoteSummary } from '../../misc/get-note-summary';
-import getUserName from '../../misc/get-user-name';
+import { getNoteSummary } from '@/misc/get-note-summary';
+import getUserName from '@/misc/get-user-name';
 
 export default async function(type, data, i18n): Promise<[string, NotificationOptions] | null | undefined> {
 	if (!i18n) {
diff --git a/src/client/sw/sw.ts b/src/client/sw/sw.ts
index 26b4efb053..5be4eb9770 100644
--- a/src/client/sw/sw.ts
+++ b/src/client/sw/sw.ts
@@ -5,7 +5,7 @@ declare var self: ServiceWorkerGlobalScope;
 
 import { get, set } from 'idb-keyval';
 import composeNotification from '@client/sw/compose-notification';
-import { I18n } from '../../misc/i18n';
+import { I18n } from '@/misc/i18n';
 
 //#region Variables
 const version = _VERSION_;
diff --git a/src/client/ui/chat/post-form.vue b/src/client/ui/chat/post-form.vue
index 398a5a176b..5bb1a04d58 100644
--- a/src/client/ui/chat/post-form.vue
+++ b/src/client/ui/chat/post-form.vue
@@ -56,9 +56,9 @@ import { toASCII } from 'punycode';
 import { parse } from '../../../mfm/parse';
 import { host, url } from '@client/config';
 import { erase, unique } from '../../../prelude/array';
-import extractMentions from '../../../misc/extract-mentions';
-import getAcct from '../../../misc/acct/render';
-import { formatTimeString } from '../../../misc/format-time-string';
+import extractMentions from '@/misc/extract-mentions';
+import getAcct from '@/misc/acct/render';
+import { formatTimeString } from '@/misc/format-time-string';
 import { Autocomplete } from '@client/scripts/autocomplete';
 import { noteVisibilities } from '../../../types';
 import * as os from '@client/os';
diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts
index 048e399bdf..58455b510d 100644
--- a/src/db/elasticsearch.ts
+++ b/src/db/elasticsearch.ts
@@ -1,5 +1,5 @@
 import * as elasticsearch from '@elastic/elasticsearch';
-import config from '../config';
+import config from '@/config';
 
 const index = {
 	settings: {
diff --git a/src/db/postgre.ts b/src/db/postgre.ts
index 831e5e0592..d53d315f7b 100644
--- a/src/db/postgre.ts
+++ b/src/db/postgre.ts
@@ -3,7 +3,7 @@ const types = require('pg').types;
 types.setTypeParser(20, Number);
 
 import { createConnection, Logger, getConnection } from 'typeorm';
-import config from '../config';
+import config from '@/config';
 import { entities as charts } from '../services/chart/entities';
 import { dbLogger } from './logger';
 import * as highlight from 'cli-highlight';
diff --git a/src/db/redis.ts b/src/db/redis.ts
index 5b6fc05df9..a10422846f 100644
--- a/src/db/redis.ts
+++ b/src/db/redis.ts
@@ -1,5 +1,5 @@
 import * as redis from 'redis';
-import config from '../config';
+import config from '@/config';
 
 export function createConnection() {
 	return redis.createClient(
diff --git a/src/mfm/language.ts b/src/mfm/language.ts
index cf00f06324..bad7b10a0d 100644
--- a/src/mfm/language.ts
+++ b/src/mfm/language.ts
@@ -1,9 +1,9 @@
 import * as P from 'parsimmon';
 import { createLeaf, createTree, urlRegex } from './prelude';
 import { takeWhile, cumulativeSum } from '../prelude/array';
-import parseAcct from '../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { toUnicode } from 'punycode';
-import { emojiRegex } from '../misc/emoji-regex';
+import { emojiRegex } from '@/misc/emoji-regex';
 
 export function removeOrphanedBrackets(s: string): string {
 	const openBrackets = ['(', '「', '['];
diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts
index c09272caad..66015d539f 100644
--- a/src/mfm/to-html.ts
+++ b/src/mfm/to-html.ts
@@ -1,5 +1,5 @@
 import { JSDOM } from 'jsdom';
-import config from '../config';
+import config from '@/config';
 import { intersperse } from '../prelude/array';
 import { MfmForest, MfmTree } from './prelude';
 import { IMentionedRemoteUsers } from '../models/entities/note';
diff --git a/src/mfm/to-string.ts b/src/mfm/to-string.ts
index b70b99cbda..347c94c247 100644
--- a/src/mfm/to-string.ts
+++ b/src/mfm/to-string.ts
@@ -1,5 +1,5 @@
 import { MfmForest, MfmTree } from './prelude';
-import { nyaize } from '../misc/nyaize';
+import { nyaize } from '@/misc/nyaize';
 
 export type RestoreOptions = {
 	doNyaize?: boolean;
diff --git a/src/misc/captcha.ts b/src/misc/captcha.ts
index 87ec143ca8..727c86af0f 100644
--- a/src/misc/captcha.ts
+++ b/src/misc/captcha.ts
@@ -1,7 +1,7 @@
 import fetch from 'node-fetch';
 import { URLSearchParams } from 'url';
 import { getAgentByUrl } from './fetch';
-import config from '../config';
+import config from '@/config';
 
 export async function verifyRecaptcha(secret: string, response: string) {
 	const result = await getCaptchaResponse('https://www.recaptcha.net/recaptcha/api/siteverify', secret, response).catch(e => {
diff --git a/src/misc/convert-host.ts b/src/misc/convert-host.ts
index ad52e12588..ef0ff18fcf 100644
--- a/src/misc/convert-host.ts
+++ b/src/misc/convert-host.ts
@@ -1,4 +1,4 @@
-import config from '../config';
+import config from '@/config';
 import { toASCII } from 'punycode';
 
 export function getFullApAccount(username: string, host: string | null) {
diff --git a/src/misc/download-url.ts b/src/misc/download-url.ts
index aaba302a5c..d3abf9c34f 100644
--- a/src/misc/download-url.ts
+++ b/src/misc/download-url.ts
@@ -4,7 +4,7 @@ import * as util from 'util';
 import fetch from 'node-fetch';
 import { getAgentByUrl } from './fetch';
 import { AbortController } from 'abort-controller';
-import config from '../config';
+import config from '@/config';
 import * as chalk from 'chalk';
 import Logger from '../services/logger';
 
diff --git a/src/misc/fetch.ts b/src/misc/fetch.ts
index 90d89a4392..ee671f59be 100644
--- a/src/misc/fetch.ts
+++ b/src/misc/fetch.ts
@@ -4,7 +4,7 @@ import * as cache from 'lookup-dns-cache';
 import fetch, { HeadersInit } from 'node-fetch';
 import { HttpProxyAgent } from 'http-proxy-agent';
 import { HttpsProxyAgent } from 'https-proxy-agent';
-import config from '../config';
+import config from '@/config';
 import { URL } from 'url';
 
 export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: HeadersInit) {
diff --git a/src/misc/gen-id.ts b/src/misc/gen-id.ts
index 8562767bf8..8e7e0b6113 100644
--- a/src/misc/gen-id.ts
+++ b/src/misc/gen-id.ts
@@ -3,7 +3,7 @@ import { genAid } from './id/aid';
 import { genMeid } from './id/meid';
 import { genMeidg } from './id/meidg';
 import { genObjectId } from './id/object-id';
-import config from '../config';
+import config from '@/config';
 
 const metohd = config.id.toLowerCase();
 
diff --git a/src/models/repositories/antenna.ts b/src/models/repositories/antenna.ts
index 84e082bd25..787e5c8e2b 100644
--- a/src/models/repositories/antenna.ts
+++ b/src/models/repositories/antenna.ts
@@ -1,6 +1,6 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Antenna } from '../entities/antenna';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { AntennaNotes, UserGroupJoinings } from '..';
 
 export type PackedAntenna = SchemaType<typeof packedAntennaSchema>;
diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts
index 33e0f41156..12c78fe87a 100644
--- a/src/models/repositories/app.ts
+++ b/src/models/repositories/app.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { App } from '../entities/app';
 import { AccessTokens } from '..';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedApp = SchemaType<typeof packedAppSchema>;
 
diff --git a/src/models/repositories/blocking.ts b/src/models/repositories/blocking.ts
index 314f459e65..1ecdbd5d05 100644
--- a/src/models/repositories/blocking.ts
+++ b/src/models/repositories/blocking.ts
@@ -2,7 +2,7 @@ import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '..';
 import { Blocking } from '../entities/blocking';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedBlocking = SchemaType<typeof packedBlockingSchema>;
 
diff --git a/src/models/repositories/channel.ts b/src/models/repositories/channel.ts
index 2654c9d6f3..b15cf8b35f 100644
--- a/src/models/repositories/channel.ts
+++ b/src/models/repositories/channel.ts
@@ -1,6 +1,6 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Channel } from '../entities/channel';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { DriveFiles, ChannelFollowings, NoteUnreads } from '..';
 import { User } from '../entities/user';
 
diff --git a/src/models/repositories/clip.ts b/src/models/repositories/clip.ts
index 84891a4372..8d1f63c44b 100644
--- a/src/models/repositories/clip.ts
+++ b/src/models/repositories/clip.ts
@@ -1,6 +1,6 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Clip } from '../entities/clip';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users } from '..';
 import { awaitAll } from '../../prelude/await-all';
 
diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts
index 61d24bd24e..3a036beb88 100644
--- a/src/models/repositories/drive-file.ts
+++ b/src/models/repositories/drive-file.ts
@@ -2,13 +2,13 @@ import { EntityRepository, Repository } from 'typeorm';
 import { DriveFile } from '../entities/drive-file';
 import { Users, DriveFolders } from '..';
 import { User } from '../entities/user';
-import { toPuny } from '../../misc/convert-host';
+import { toPuny } from '@/misc/convert-host';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
-import config from '../../config';
+import { SchemaType } from '@/misc/schema';
+import config from '@/config';
 import { query, appendQuery } from '../../prelude/url';
 import { Meta } from '../entities/meta';
-import { fetchMeta } from '../../misc/fetch-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 2a18220384..cc07c56675 100644
--- a/src/models/repositories/drive-folder.ts
+++ b/src/models/repositories/drive-folder.ts
@@ -2,7 +2,7 @@ import { EntityRepository, Repository } from 'typeorm';
 import { DriveFolders, DriveFiles } from '..';
 import { DriveFolder } from '../entities/drive-folder';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedDriveFolder = SchemaType<typeof packedDriveFolderSchema>;
 
diff --git a/src/models/repositories/federation-instance.ts b/src/models/repositories/federation-instance.ts
index c6b08dc101..15e8023ee9 100644
--- a/src/models/repositories/federation-instance.ts
+++ b/src/models/repositories/federation-instance.ts
@@ -1,4 +1,4 @@
-import config from '../../config';
+import config from '@/config';
 
 export const packedFederationInstanceSchema = {
 	type: 'object' as const,
diff --git a/src/models/repositories/following.ts b/src/models/repositories/following.ts
index 986f107e7d..d754661b2d 100644
--- a/src/models/repositories/following.ts
+++ b/src/models/repositories/following.ts
@@ -2,7 +2,7 @@ import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '..';
 import { Following } from '../entities/following';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 type LocalFollowerFollowing = Following & {
 	followerHost: null;
diff --git a/src/models/repositories/hashtag.ts b/src/models/repositories/hashtag.ts
index fb54a12e13..0089ab50db 100644
--- a/src/models/repositories/hashtag.ts
+++ b/src/models/repositories/hashtag.ts
@@ -1,6 +1,6 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Hashtag } from '../entities/hashtag';
-import { SchemaType } from '../../misc/schema';
+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 0e04c25864..2c78e7fbd3 100644
--- a/src/models/repositories/messaging-message.ts
+++ b/src/models/repositories/messaging-message.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { MessagingMessage } from '../entities/messaging-message';
 import { Users, DriveFiles, UserGroups } from '..';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedMessagingMessage = SchemaType<typeof packedMessagingMessageSchema>;
 
diff --git a/src/models/repositories/muting.ts b/src/models/repositories/muting.ts
index 5fd409df78..8a5c57a38f 100644
--- a/src/models/repositories/muting.ts
+++ b/src/models/repositories/muting.ts
@@ -2,7 +2,7 @@ import { EntityRepository, Repository } from 'typeorm';
 import { Users } from '..';
 import { Muting } from '../entities/muting';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedMuting = SchemaType<typeof packedMutingSchema>;
 
diff --git a/src/models/repositories/note-reaction.ts b/src/models/repositories/note-reaction.ts
index 785a876bf8..e04a493007 100644
--- a/src/models/repositories/note-reaction.ts
+++ b/src/models/repositories/note-reaction.ts
@@ -1,8 +1,8 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { NoteReaction } from '../entities/note-reaction';
 import { Users } from '..';
-import { SchemaType } from '../../misc/schema';
-import { convertLegacyReaction } from '../../misc/reaction-lib';
+import { SchemaType } from '@/misc/schema';
+import { convertLegacyReaction } from '@/misc/reaction-lib';
 
 export type PackedNoteReaction = SchemaType<typeof packedNoteReactionSchema>;
 
diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts
index 73e18f6c5b..aa5f93a5dd 100644
--- a/src/models/repositories/note.ts
+++ b/src/models/repositories/note.ts
@@ -2,13 +2,13 @@ import { EntityRepository, Repository, In } from 'typeorm';
 import { Note } from '../entities/note';
 import { User } from '../entities/user';
 import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '..';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { awaitAll } from '../../prelude/await-all';
-import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '../../misc/reaction-lib';
+import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '@/misc/reaction-lib';
 import { toString } from '../../mfm/to-string';
 import { parse } from '../../mfm/parse';
 import { NoteReaction } from '../entities/note-reaction';
-import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '../../misc/populate-emojis';
+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 83fe11d5f7..7a7ac52018 100644
--- a/src/models/repositories/notification.ts
+++ b/src/models/repositories/notification.ts
@@ -2,11 +2,11 @@ import { EntityRepository, In, Repository } from 'typeorm';
 import { Users, Notes, UserGroupInvitations, AccessTokens, NoteReactions } from '..';
 import { Notification } from '../entities/notification';
 import { awaitAll } from '../../prelude/await-all';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Note } from '../entities/note';
 import { NoteReaction } from '../entities/note-reaction';
 import { User } from '../entities/user';
-import { aggregateNoteEmojis, prefetchEmojis } from '../../misc/populate-emojis';
+import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis';
 
 export type PackedNotification = SchemaType<typeof packedNotificationSchema>;
 
diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts
index 1b30b6645b..3017769d6b 100644
--- a/src/models/repositories/page.ts
+++ b/src/models/repositories/page.ts
@@ -1,6 +1,6 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { Page } from '../entities/page';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users, DriveFiles, PageLikes } from '..';
 import { awaitAll } from '../../prelude/await-all';
 import { DriveFile } from '../entities/drive-file';
diff --git a/src/models/repositories/user-group.ts b/src/models/repositories/user-group.ts
index a1b226f154..9861b23356 100644
--- a/src/models/repositories/user-group.ts
+++ b/src/models/repositories/user-group.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { UserGroup } from '../entities/user-group';
 import { UserGroupJoinings } from '..';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedUserGroup = SchemaType<typeof packedUserGroupSchema>;
 
diff --git a/src/models/repositories/user-list.ts b/src/models/repositories/user-list.ts
index 9421aeb0c7..094abace63 100644
--- a/src/models/repositories/user-list.ts
+++ b/src/models/repositories/user-list.ts
@@ -1,7 +1,7 @@
 import { EntityRepository, Repository } from 'typeorm';
 import { UserList } from '../entities/user-list';
 import { UserListJoinings } from '..';
-import { SchemaType } from '../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 
 export type PackedUserList = SchemaType<typeof packedUserListSchema>;
 
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts
index 3d897e1663..51b67a27ea 100644
--- a/src/models/repositories/user.ts
+++ b/src/models/repositories/user.ts
@@ -2,11 +2,11 @@ import $ from 'cafy';
 import { EntityRepository, Repository, In, Not } from 'typeorm';
 import { User, ILocalUser, IRemoteUser } from '../entities/user';
 import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '..';
-import config from '../../config';
-import { SchemaType } from '../../misc/schema';
+import config from '@/config';
+import { SchemaType } from '@/misc/schema';
 import { awaitAll } from '../../prelude/await-all';
-import { populateEmojis } from '../../misc/populate-emojis';
-import { getAntennas } from '../../misc/antenna-cache';
+import { populateEmojis } from '@/misc/populate-emojis';
+import { getAntennas } from '@/misc/antenna-cache';
 
 export type PackedUser = SchemaType<typeof packedUserSchema>;
 
diff --git a/src/queue/index.ts b/src/queue/index.ts
index 9fb4595a35..6c0dba79c2 100644
--- a/src/queue/index.ts
+++ b/src/queue/index.ts
@@ -1,6 +1,6 @@
 import * as httpSignature from 'http-signature';
 
-import config from '../config';
+import config from '@/config';
 import { ILocalUser } from '../models/entities/user';
 import { program } from '../argv';
 
diff --git a/src/queue/initialize.ts b/src/queue/initialize.ts
index 92579531e4..941fe4bc33 100644
--- a/src/queue/initialize.ts
+++ b/src/queue/initialize.ts
@@ -1,5 +1,5 @@
 import * as Queue from 'bull';
-import config from '../config';
+import config from '@/config';
 
 export function initialize(name: string, limitPerSec = -1) {
 	return new Queue(name, {
diff --git a/src/queue/processors/db/export-blocking.ts b/src/queue/processors/db/export-blocking.ts
index 0504ab8c30..9bbc9b2f12 100644
--- a/src/queue/processors/db/export-blocking.ts
+++ b/src/queue/processors/db/export-blocking.ts
@@ -5,7 +5,7 @@ import * as fs from 'fs';
 import { queueLogger } from '../../logger';
 import addFile from '../../../services/drive/add-file';
 import dateFormat = require('dateformat');
-import { getFullApAccount } from '../../../misc/convert-host';
+import { getFullApAccount } from '@/misc/convert-host';
 import { Users, Blockings } from '../../../models';
 import { MoreThan } from 'typeorm';
 
diff --git a/src/queue/processors/db/export-following.ts b/src/queue/processors/db/export-following.ts
index 996ef6310d..79df2298d8 100644
--- a/src/queue/processors/db/export-following.ts
+++ b/src/queue/processors/db/export-following.ts
@@ -5,7 +5,7 @@ import * as fs from 'fs';
 import { queueLogger } from '../../logger';
 import addFile from '../../../services/drive/add-file';
 import dateFormat = require('dateformat');
-import { getFullApAccount } from '../../../misc/convert-host';
+import { getFullApAccount } from '@/misc/convert-host';
 import { Users, Followings } from '../../../models';
 import { MoreThan } from 'typeorm';
 
diff --git a/src/queue/processors/db/export-mute.ts b/src/queue/processors/db/export-mute.ts
index 5531553220..c10556f882 100644
--- a/src/queue/processors/db/export-mute.ts
+++ b/src/queue/processors/db/export-mute.ts
@@ -5,7 +5,7 @@ import * as fs from 'fs';
 import { queueLogger } from '../../logger';
 import addFile from '../../../services/drive/add-file';
 import dateFormat = require('dateformat');
-import { getFullApAccount } from '../../../misc/convert-host';
+import { getFullApAccount } from '@/misc/convert-host';
 import { Users, Mutings } from '../../../models';
 import { MoreThan } from 'typeorm';
 
diff --git a/src/queue/processors/db/export-user-lists.ts b/src/queue/processors/db/export-user-lists.ts
index 447cdaa174..b6c527fc78 100644
--- a/src/queue/processors/db/export-user-lists.ts
+++ b/src/queue/processors/db/export-user-lists.ts
@@ -5,7 +5,7 @@ import * as fs from 'fs';
 import { queueLogger } from '../../logger';
 import addFile from '../../../services/drive/add-file';
 import dateFormat = require('dateformat');
-import { getFullApAccount } from '../../../misc/convert-host';
+import { getFullApAccount } from '@/misc/convert-host';
 import { Users, UserLists, UserListJoinings } from '../../../models';
 import { In } from 'typeorm';
 
diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts
index ff4ff6b6ab..554337849e 100644
--- a/src/queue/processors/db/import-following.ts
+++ b/src/queue/processors/db/import-following.ts
@@ -2,10 +2,10 @@ import * as Bull from 'bull';
 
 import { queueLogger } from '../../logger';
 import follow from '../../../services/following/create';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { resolveUser } from '../../../remote/resolve-user';
-import { downloadTextFile } from '../../../misc/download-text-file';
-import { isSelfHost, toPuny } from '../../../misc/convert-host';
+import { downloadTextFile } from '@/misc/download-text-file';
+import { isSelfHost, toPuny } from '@/misc/convert-host';
 import { Users, DriveFiles } from '../../../models';
 
 const logger = queueLogger.createSubLogger('import-following');
diff --git a/src/queue/processors/db/import-user-lists.ts b/src/queue/processors/db/import-user-lists.ts
index 4692d8cf49..2fe023da7d 100644
--- a/src/queue/processors/db/import-user-lists.ts
+++ b/src/queue/processors/db/import-user-lists.ts
@@ -1,13 +1,13 @@
 import * as Bull from 'bull';
 
 import { queueLogger } from '../../logger';
-import parseAcct from '../../../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { resolveUser } from '../../../remote/resolve-user';
 import { pushUserToUserList } from '../../../services/user-list/push';
-import { downloadTextFile } from '../../../misc/download-text-file';
-import { isSelfHost, toPuny } from '../../../misc/convert-host';
+import { downloadTextFile } from '@/misc/download-text-file';
+import { isSelfHost, toPuny } from '@/misc/convert-host';
 import { DriveFiles, Users, UserLists, UserListJoinings } from '../../../models';
-import { genId } from '../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 const logger = queueLogger.createSubLogger('import-user-lists');
 
diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts
index a8b4ed4fe3..d1a3eac175 100644
--- a/src/queue/processors/deliver.ts
+++ b/src/queue/processors/deliver.ts
@@ -5,9 +5,9 @@ import Logger from '../../services/logger';
 import { Instances } from '../../models';
 import { instanceChart } from '../../services/chart';
 import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata';
-import { fetchMeta } from '../../misc/fetch-meta';
-import { toPuny } from '../../misc/convert-host';
-import { Cache } from '../../misc/cache';
+import { fetchMeta } from '@/misc/fetch-meta';
+import { toPuny } from '@/misc/convert-host';
+import { Cache } from '@/misc/cache';
 import { Instance } from '../../models/entities/instance';
 
 const logger = new Logger('deliver');
diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts
index a5822ff25f..39ac55758f 100644
--- a/src/queue/processors/inbox.ts
+++ b/src/queue/processors/inbox.ts
@@ -5,8 +5,8 @@ import Logger from '../../services/logger';
 import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc';
 import { Instances } from '../../models';
 import { instanceChart } from '../../services/chart';
-import { fetchMeta } from '../../misc/fetch-meta';
-import { toPuny, extractDbHost } from '../../misc/convert-host';
+import { fetchMeta } from '@/misc/fetch-meta';
+import { toPuny, extractDbHost } from '@/misc/convert-host';
 import { getApId } from '../../remote/activitypub/type';
 import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata';
 import { InboxJobData } from '..';
diff --git a/src/queue/queues.ts b/src/queue/queues.ts
index d589d9f7da..819bcf31d8 100644
--- a/src/queue/queues.ts
+++ b/src/queue/queues.ts
@@ -1,4 +1,4 @@
-import config from '../config';
+import config from '@/config';
 import { initialize as initializeQueue } from './initialize';
 
 export const deliverQueue = initializeQueue('deliver', config.deliverJobPerSec || 128);
diff --git a/src/remote/activitypub/db-resolver.ts b/src/remote/activitypub/db-resolver.ts
index 26162b6b23..dba1f0f0b1 100644
--- a/src/remote/activitypub/db-resolver.ts
+++ b/src/remote/activitypub/db-resolver.ts
@@ -1,4 +1,4 @@
-import config from '../../config';
+import config from '@/config';
 import { Note } from '../../models/entities/note';
 import { User, IRemoteUser } from '../../models/entities/user';
 import { UserPublickey } from '../../models/entities/user-publickey';
diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts
index 765180742a..d5176897bc 100644
--- a/src/remote/activitypub/kernel/announce/note.ts
+++ b/src/remote/activitypub/kernel/announce/note.ts
@@ -4,9 +4,9 @@ import { IRemoteUser } from '../../../../models/entities/user';
 import { IAnnounce, getApId } from '../../type';
 import { fetchNote, resolveNote } from '../../models/note';
 import { apLogger } from '../../logger';
-import { extractDbHost } from '../../../../misc/convert-host';
-import { fetchMeta } from '../../../../misc/fetch-meta';
-import { getApLock } from '../../../../misc/app-lock';
+import { extractDbHost } from '@/misc/convert-host';
+import { fetchMeta } from '@/misc/fetch-meta';
+import { getApLock } from '@/misc/app-lock';
 import { parseAudience } from '../../audience';
 
 const logger = apLogger;
diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts
index f4fb8e5647..69499d303e 100644
--- a/src/remote/activitypub/kernel/create/note.ts
+++ b/src/remote/activitypub/kernel/create/note.ts
@@ -2,8 +2,8 @@ import Resolver from '../../resolver';
 import { IRemoteUser } from '../../../../models/entities/user';
 import { createNote, fetchNote } from '../../models/note';
 import { getApId, IObject, ICreate } from '../../type';
-import { getApLock } from '../../../../misc/app-lock';
-import { extractDbHost } from '../../../../misc/convert-host';
+import { getApLock } from '@/misc/app-lock';
+import { extractDbHost } from '@/misc/convert-host';
 
 /**
  * 投稿作成アクティビティを捌きます
diff --git a/src/remote/activitypub/kernel/delete/note.ts b/src/remote/activitypub/kernel/delete/note.ts
index 8fa2285dba..1a7844f68b 100644
--- a/src/remote/activitypub/kernel/delete/note.ts
+++ b/src/remote/activitypub/kernel/delete/note.ts
@@ -2,7 +2,7 @@ import { IRemoteUser } from '../../../../models/entities/user';
 import deleteNode from '../../../../services/note/delete';
 import { apLogger } from '../../logger';
 import DbResolver from '../../db-resolver';
-import { getApLock } from '../../../../misc/app-lock';
+import { getApLock } from '@/misc/app-lock';
 import { deleteMessage } from '../../../../services/messages/delete';
 
 const logger = apLogger;
diff --git a/src/remote/activitypub/kernel/flag/index.ts b/src/remote/activitypub/kernel/flag/index.ts
index 46ea789b4b..5f5357a3ed 100644
--- a/src/remote/activitypub/kernel/flag/index.ts
+++ b/src/remote/activitypub/kernel/flag/index.ts
@@ -1,9 +1,9 @@
 import { IRemoteUser } from '../../../../models/entities/user';
-import config from '../../../../config';
+import config from '@/config';
 import { IFlag, getApIds } from '../../type';
 import { AbuseUserReports, Users } from '../../../../models';
 import { In } from 'typeorm';
-import { genId } from '../../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 export default async (actor: IRemoteUser, activity: IFlag): Promise<string> => {
 	// objectは `(User|Note) | (User|Note)[]` だけど、全パターンDBスキーマと対応させられないので
diff --git a/src/remote/activitypub/kernel/read.ts b/src/remote/activitypub/kernel/read.ts
index e4049fa7ef..edbc8e68ed 100644
--- a/src/remote/activitypub/kernel/read.ts
+++ b/src/remote/activitypub/kernel/read.ts
@@ -1,6 +1,6 @@
 import { IRemoteUser } from '../../../models/entities/user';
 import { IRead, getApId } from '../type';
-import { isSelfHost, extractDbHost } from '../../../misc/convert-host';
+import { isSelfHost, extractDbHost } from '@/misc/convert-host';
 import { MessagingMessages } from '../../../models';
 import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message';
 
diff --git a/src/remote/activitypub/misc/ld-signature.ts b/src/remote/activitypub/misc/ld-signature.ts
index 070e39edfb..dec07ea81b 100644
--- a/src/remote/activitypub/misc/ld-signature.ts
+++ b/src/remote/activitypub/misc/ld-signature.ts
@@ -2,7 +2,7 @@ import * as crypto from 'crypto';
 import * as jsonld from 'jsonld';
 import { CONTEXTS } from './contexts';
 import fetch from 'node-fetch';
-import { httpAgent, httpsAgent } from '../../../misc/fetch';
+import { httpAgent, httpsAgent } from '@/misc/fetch';
 
 // RsaSignature2017 based from https://github.com/transmute-industries/RsaSignature2017
 
diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts
index dd8086cbeb..79fc2bf4a6 100644
--- a/src/remote/activitypub/models/image.ts
+++ b/src/remote/activitypub/models/image.ts
@@ -1,7 +1,7 @@
 import uploadFromUrl from '../../../services/drive/upload-from-url';
 import { IRemoteUser } from '../../../models/entities/user';
 import Resolver from '../resolver';
-import { fetchMeta } from '../../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { apLogger } from '../logger';
 import { DriveFile } from '../../../models/entities/drive-file';
 import { DriveFiles } from '../../../models';
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts
index e3488800ca..09e066708f 100644
--- a/src/remote/activitypub/models/note.ts
+++ b/src/remote/activitypub/models/note.ts
@@ -1,6 +1,6 @@
 import * as promiseLimit from 'promise-limit';
 
-import config from '../../../config';
+import config from '@/config';
 import Resolver from '../resolver';
 import post from '../../../services/note/create';
 import { resolvePerson, updatePerson } from './person';
@@ -14,14 +14,14 @@ import vote from '../../../services/note/polls/vote';
 import { apLogger } from '../logger';
 import { DriveFile } from '../../../models/entities/drive-file';
 import { deliverQuestionUpdate } from '../../../services/note/polls/update';
-import { extractDbHost, toPuny } from '../../../misc/convert-host';
+import { extractDbHost, toPuny } from '@/misc/convert-host';
 import { Emojis, Polls, MessagingMessages } from '../../../models';
 import { Note } from '../../../models/entities/note';
 import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji } from '../type';
 import { Emoji } from '../../../models/entities/emoji';
-import { genId } from '../../../misc/gen-id';
-import { fetchMeta } from '../../../misc/fetch-meta';
-import { getApLock } from '../../../misc/app-lock';
+import { genId } from '@/misc/gen-id';
+import { fetchMeta } from '@/misc/fetch-meta';
+import { getApLock } from '@/misc/app-lock';
 import { createMessage } from '../../../services/messages/create';
 import { parseAudience } from '../audience';
 import { extractApMentions } from './mention';
diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts
index 93e95df0a4..734275a473 100644
--- a/src/remote/activitypub/models/person.ts
+++ b/src/remote/activitypub/models/person.ts
@@ -1,6 +1,6 @@
 import * as promiseLimit from 'promise-limit';
 
-import config from '../../../config';
+import config from '@/config';
 import Resolver from '../resolver';
 import { resolveImage } from './image';
 import { isCollectionOrOrderedCollection, isCollection, IPerson, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue } from '../type';
@@ -16,17 +16,17 @@ import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys
 import { User, IRemoteUser } from '../../../models/entities/user';
 import { Emoji } from '../../../models/entities/emoji';
 import { UserNotePining } from '../../../models/entities/user-note-pining';
-import { genId } from '../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { instanceChart, usersChart } from '../../../services/chart';
 import { UserPublickey } from '../../../models/entities/user-publickey';
-import { isDuplicateKeyValueError } from '../../../misc/is-duplicate-key-value-error';
-import { toPuny } from '../../../misc/convert-host';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
+import { toPuny } from '@/misc/convert-host';
 import { UserProfile } from '../../../models/entities/user-profile';
 import { validActor } from '../../../remote/activitypub/type';
 import { getConnection } from 'typeorm';
 import { toArray } from '../../../prelude/array';
 import { fetchInstanceMetadata } from '../../../services/fetch-instance-metadata';
-import { normalizeForSearch } from '../../../misc/normalize-for-search';
+import { normalizeForSearch } from '@/misc/normalize-for-search';
 
 const logger = apLogger;
 
diff --git a/src/remote/activitypub/models/question.ts b/src/remote/activitypub/models/question.ts
index 6b6749894a..966b15af11 100644
--- a/src/remote/activitypub/models/question.ts
+++ b/src/remote/activitypub/models/question.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import Resolver from '../resolver';
 import { IObject, IQuestion, isQuestion,  } from '../type';
 import { apLogger } from '../logger';
diff --git a/src/remote/activitypub/renderer/accept.ts b/src/remote/activitypub/renderer/accept.ts
index 21b4629074..03f7b07387 100644
--- a/src/remote/activitypub/renderer/accept.ts
+++ b/src/remote/activitypub/renderer/accept.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (object: any, user: ILocalUser) => ({
diff --git a/src/remote/activitypub/renderer/add.ts b/src/remote/activitypub/renderer/add.ts
index 46f937f61d..18f9ccacf5 100644
--- a/src/remote/activitypub/renderer/add.ts
+++ b/src/remote/activitypub/renderer/add.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (user: ILocalUser, target: any, object: any) => ({
diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts
index d82bf6a693..f577dbbc89 100644
--- a/src/remote/activitypub/renderer/announce.ts
+++ b/src/remote/activitypub/renderer/announce.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Note } from '../../../models/entities/note';
 
 export default (object: any, note: Note) => {
diff --git a/src/remote/activitypub/renderer/block.ts b/src/remote/activitypub/renderer/block.ts
index c29a9aea82..26b7dd580a 100644
--- a/src/remote/activitypub/renderer/block.ts
+++ b/src/remote/activitypub/renderer/block.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser, IRemoteUser } from '../../../models/entities/user';
 
 export default (blocker: ILocalUser, blockee: IRemoteUser) => ({
diff --git a/src/remote/activitypub/renderer/create.ts b/src/remote/activitypub/renderer/create.ts
index e1fc0515c8..ff0840b9e6 100644
--- a/src/remote/activitypub/renderer/create.ts
+++ b/src/remote/activitypub/renderer/create.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Note } from '../../../models/entities/note';
 
 export default (object: any, note: Note) => {
diff --git a/src/remote/activitypub/renderer/delete.ts b/src/remote/activitypub/renderer/delete.ts
index a98c97e6e9..dd49193424 100644
--- a/src/remote/activitypub/renderer/delete.ts
+++ b/src/remote/activitypub/renderer/delete.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (object: any, user: ILocalUser) => ({
diff --git a/src/remote/activitypub/renderer/emoji.ts b/src/remote/activitypub/renderer/emoji.ts
index 947a96df37..b62259c32e 100644
--- a/src/remote/activitypub/renderer/emoji.ts
+++ b/src/remote/activitypub/renderer/emoji.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Emoji } from '../../../models/entities/emoji';
 
 export default (emoji: Emoji) => ({
diff --git a/src/remote/activitypub/renderer/follow-relay.ts b/src/remote/activitypub/renderer/follow-relay.ts
index 58bc0c90c3..d53bd05825 100644
--- a/src/remote/activitypub/renderer/follow-relay.ts
+++ b/src/remote/activitypub/renderer/follow-relay.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Relay } from '../../../models/entities/relay';
 import { ILocalUser } from '../../../models/entities/user';
 
diff --git a/src/remote/activitypub/renderer/follow-user.ts b/src/remote/activitypub/renderer/follow-user.ts
index bfc91bb4cb..744361a24f 100644
--- a/src/remote/activitypub/renderer/follow-user.ts
+++ b/src/remote/activitypub/renderer/follow-user.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Users } from '../../../models';
 import { User } from '../../../models/entities/user';
 
diff --git a/src/remote/activitypub/renderer/follow.ts b/src/remote/activitypub/renderer/follow.ts
index 400b15ec7b..fb8bca52ac 100644
--- a/src/remote/activitypub/renderer/follow.ts
+++ b/src/remote/activitypub/renderer/follow.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { User } from '../../../models/entities/user';
 import { Users } from '../../../models';
 
diff --git a/src/remote/activitypub/renderer/hashtag.ts b/src/remote/activitypub/renderer/hashtag.ts
index 36563c2df5..a739a4b0b6 100644
--- a/src/remote/activitypub/renderer/hashtag.ts
+++ b/src/remote/activitypub/renderer/hashtag.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 
 export default (tag: string) => ({
 	type: 'Hashtag',
diff --git a/src/remote/activitypub/renderer/index.ts b/src/remote/activitypub/renderer/index.ts
index 4c33fdafb1..d96c277881 100644
--- a/src/remote/activitypub/renderer/index.ts
+++ b/src/remote/activitypub/renderer/index.ts
@@ -1,9 +1,9 @@
-import config from '../../../config';
+import config from '@/config';
 import { v4 as uuid } from 'uuid';
 import { IActivity } from '../type';
 import { LdSignature } from '../misc/ld-signature';
 import { ILocalUser } from '../../../models/entities/user';
-import { getUserKeypair } from '../../../misc/keypair-store';
+import { getUserKeypair } from '@/misc/keypair-store';
 
 export const renderActivity = (x: any): IActivity | null => {
 	if (x == null) return null;
diff --git a/src/remote/activitypub/renderer/key.ts b/src/remote/activitypub/renderer/key.ts
index e792f487fd..547059dd3c 100644
--- a/src/remote/activitypub/renderer/key.ts
+++ b/src/remote/activitypub/renderer/key.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 import { UserKeypair } from '../../../models/entities/user-keypair';
 import { createPublicKey } from 'crypto';
diff --git a/src/remote/activitypub/renderer/like.ts b/src/remote/activitypub/renderer/like.ts
index d4dd3663d4..5967836846 100644
--- a/src/remote/activitypub/renderer/like.ts
+++ b/src/remote/activitypub/renderer/like.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { NoteReaction } from '../../../models/entities/note-reaction';
 import { Note } from '../../../models/entities/note';
 import { Emojis } from '../../../models';
diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts
index 3b5e8f27af..14c4c40d47 100644
--- a/src/remote/activitypub/renderer/mention.ts
+++ b/src/remote/activitypub/renderer/mention.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { User, ILocalUser } from '../../../models/entities/user';
 import { Users } from '../../../models';
 
diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts
index 8e3e0e9ba1..54dee07892 100644
--- a/src/remote/activitypub/renderer/note.ts
+++ b/src/remote/activitypub/renderer/note.ts
@@ -2,7 +2,7 @@ import renderDocument from './document';
 import renderHashtag from './hashtag';
 import renderMention from './mention';
 import renderEmoji from './emoji';
-import config from '../../../config';
+import config from '@/config';
 import toHtml from '../misc/get-note-html';
 import { Note, IMentionedRemoteUsers } from '../../../models/entities/note';
 import { DriveFile } from '../../../models/entities/drive-file';
diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts
index 479e6d76bf..894a6edf01 100644
--- a/src/remote/activitypub/renderer/person.ts
+++ b/src/remote/activitypub/renderer/person.ts
@@ -1,6 +1,6 @@
 import renderImage from './image';
 import renderKey from './key';
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 import { toHtml } from '../../../mfm/to-html';
 import { parse } from '../../../mfm/parse';
@@ -9,7 +9,7 @@ import renderEmoji from './emoji';
 import { IIdentifier } from '../models/identifier';
 import renderHashtag from './hashtag';
 import { DriveFiles, UserProfiles } from '../../../models';
-import { getUserKeypair } from '../../../misc/keypair-store';
+import { getUserKeypair } from '@/misc/keypair-store';
 
 export async function renderPerson(user: ILocalUser) {
 	const id = `${config.url}/users/${user.id}`;
diff --git a/src/remote/activitypub/renderer/question.ts b/src/remote/activitypub/renderer/question.ts
index 6ade10d1bf..3b17c7dc9c 100644
--- a/src/remote/activitypub/renderer/question.ts
+++ b/src/remote/activitypub/renderer/question.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 import { Note } from '../../../models/entities/note';
 import { Poll } from '../../../models/entities/poll';
diff --git a/src/remote/activitypub/renderer/read.ts b/src/remote/activitypub/renderer/read.ts
index c53b47859f..1b5fef298d 100644
--- a/src/remote/activitypub/renderer/read.ts
+++ b/src/remote/activitypub/renderer/read.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 import { MessagingMessage } from '../../../models/entities/messaging-message';
 
diff --git a/src/remote/activitypub/renderer/reject.ts b/src/remote/activitypub/renderer/reject.ts
index c4e0ba0d0a..e29057ae9e 100644
--- a/src/remote/activitypub/renderer/reject.ts
+++ b/src/remote/activitypub/renderer/reject.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (object: any, user: ILocalUser) => ({
diff --git a/src/remote/activitypub/renderer/remove.ts b/src/remote/activitypub/renderer/remove.ts
index 1b9a6b8c05..1d5d2ffe70 100644
--- a/src/remote/activitypub/renderer/remove.ts
+++ b/src/remote/activitypub/renderer/remove.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (user: ILocalUser, target: any, object: any) => ({
diff --git a/src/remote/activitypub/renderer/undo.ts b/src/remote/activitypub/renderer/undo.ts
index 2ff6b61b90..0e9998a41d 100644
--- a/src/remote/activitypub/renderer/undo.ts
+++ b/src/remote/activitypub/renderer/undo.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser, User } from '../../../models/entities/user';
 
 export default (object: any, user: ILocalUser | User) => ({
diff --git a/src/remote/activitypub/renderer/update.ts b/src/remote/activitypub/renderer/update.ts
index c1d5ba29b2..636dc5c55c 100644
--- a/src/remote/activitypub/renderer/update.ts
+++ b/src/remote/activitypub/renderer/update.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { ILocalUser } from '../../../models/entities/user';
 
 export default (object: any, user: ILocalUser) => {
diff --git a/src/remote/activitypub/renderer/vote.ts b/src/remote/activitypub/renderer/vote.ts
index 8929c03460..1eb3acc3d5 100644
--- a/src/remote/activitypub/renderer/vote.ts
+++ b/src/remote/activitypub/renderer/vote.ts
@@ -1,4 +1,4 @@
-import config from '../../../config';
+import config from '@/config';
 import { Note } from '../../../models/entities/note';
 import { IRemoteUser, ILocalUser } from '../../../models/entities/user';
 import { PollVote } from '../../../models/entities/poll-vote';
diff --git a/src/remote/activitypub/request.ts b/src/remote/activitypub/request.ts
index 5f15d5480c..fc774bc9a5 100644
--- a/src/remote/activitypub/request.ts
+++ b/src/remote/activitypub/request.ts
@@ -3,13 +3,13 @@ import * as https from 'https';
 import { sign } from 'http-signature';
 import * as crypto from 'crypto';
 
-import config from '../../config';
+import config from '@/config';
 import { ILocalUser } from '../../models/entities/user';
-import { getAgentByUrl } from '../../misc/fetch';
+import { getAgentByUrl } from '@/misc/fetch';
 import { URL } from 'url';
 import got from 'got';
 import * as Got from 'got';
-import { getUserKeypair } from '../../misc/keypair-store';
+import { getUserKeypair } from '@/misc/keypair-store';
 
 export default async (user: ILocalUser, url: string, object: any) => {
 	const timeout = 10 * 1000;
diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts
index 2871c1cb41..066bde0883 100644
--- a/src/remote/activitypub/resolver.ts
+++ b/src/remote/activitypub/resolver.ts
@@ -1,5 +1,5 @@
-import config from '../../config';
-import { getJson } from '../../misc/fetch';
+import config from '@/config';
+import { getJson } from '@/misc/fetch';
 import { ILocalUser } from '../../models/entities/user';
 import { getInstanceActor } from '../../services/instance-actor';
 import { signedGet } from './request';
diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts
index 8149c184fe..eec66bb0e6 100644
--- a/src/remote/resolve-user.ts
+++ b/src/remote/resolve-user.ts
@@ -1,11 +1,11 @@
 import webFinger from './webfinger';
-import config from '../config';
+import config from '@/config';
 import { createPerson, updatePerson } from './activitypub/models/person';
 import { remoteLogger } from './logger';
 import * as chalk from 'chalk';
 import { User, IRemoteUser } from '../models/entities/user';
 import { Users } from '../models';
-import { toPuny } from '../misc/convert-host';
+import { toPuny } from '@/misc/convert-host';
 
 const logger = remoteLogger.createSubLogger('resolve-user');
 
diff --git a/src/remote/webfinger.ts b/src/remote/webfinger.ts
index 04f978a35d..48cfc4d500 100644
--- a/src/remote/webfinger.ts
+++ b/src/remote/webfinger.ts
@@ -1,4 +1,4 @@
-import { getJson } from '../misc/fetch';
+import { getJson } from '@/misc/fetch';
 import { query as urlQuery } from '../prelude/url';
 
 type ILink = {
diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts
index 694807239b..0ddc4683fe 100644
--- a/src/server/activitypub.ts
+++ b/src/server/activitypub.ts
@@ -12,12 +12,12 @@ import Followers from './activitypub/followers';
 import Following from './activitypub/following';
 import Featured from './activitypub/featured';
 import { inbox as processInbox } from '../queue';
-import { isSelfHost } from '../misc/convert-host';
+import { isSelfHost } from '@/misc/convert-host';
 import { Notes, Users, Emojis, NoteReactions } from '../models';
 import { ILocalUser, User } from '../models/entities/user';
 import { In } from 'typeorm';
 import { renderLike } from '../remote/activitypub/renderer/like';
-import { getUserKeypair } from '../misc/keypair-store';
+import { getUserKeypair } from '@/misc/keypair-store';
 
 // Init router
 const router = new Router();
diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts
index 66ad2aa86e..02d4a30a5d 100644
--- a/src/server/activitypub/featured.ts
+++ b/src/server/activitypub/featured.ts
@@ -1,5 +1,5 @@
 import * as Router from '@koa/router';
-import config from '../../config';
+import config from '@/config';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection';
 import { setResponseType } from '../activitypub';
diff --git a/src/server/activitypub/followers.ts b/src/server/activitypub/followers.ts
index d7b5a15b1e..a4f2e666d0 100644
--- a/src/server/activitypub/followers.ts
+++ b/src/server/activitypub/followers.ts
@@ -1,7 +1,7 @@
 import * as Router from '@koa/router';
-import config from '../../config';
+import config from '@/config';
 import $ from 'cafy';
-import { ID } from '../../misc/cafy-id';
+import { ID } from '@/misc/cafy-id';
 import * as url from '../../prelude/url';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection';
diff --git a/src/server/activitypub/following.ts b/src/server/activitypub/following.ts
index d39e680d9e..f5e5c62364 100644
--- a/src/server/activitypub/following.ts
+++ b/src/server/activitypub/following.ts
@@ -1,7 +1,7 @@
 import * as Router from '@koa/router';
-import config from '../../config';
+import config from '@/config';
 import $ from 'cafy';
-import { ID } from '../../misc/cafy-id';
+import { ID } from '@/misc/cafy-id';
 import * as url from '../../prelude/url';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection';
diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts
index 3c1b07a679..338e177370 100644
--- a/src/server/activitypub/outbox.ts
+++ b/src/server/activitypub/outbox.ts
@@ -1,7 +1,7 @@
 import * as Router from '@koa/router';
-import config from '../../config';
+import config from '@/config';
 import $ from 'cafy';
-import { ID } from '../../misc/cafy-id';
+import { ID } from '@/misc/cafy-id';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection';
 import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page';
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-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/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..950ab2b7b4 100644
--- a/src/server/api/common/read-messaging-message.ts
+++ b/src/server/api/common/read-messaging-message.ts
@@ -5,7 +5,7 @@ import { User, ILocalUser, 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';
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..7f6cceab8c 100644
--- a/src/server/api/define.ts
+++ b/src/server/api/define.ts
@@ -2,7 +2,7 @@ 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';
 
 // TODO: defaultが設定されている場合はその型も考慮する
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/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/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..4f83777964 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 = {
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/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/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 7210c992cd..9c8d8adf80 100644
--- a/src/server/api/endpoints/antennas/create.ts
+++ b/src/server/api/endpoints/antennas/create.ts
@@ -1,8 +1,8 @@
 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';
 
diff --git a/src/server/api/endpoints/antennas/delete.ts b/src/server/api/endpoints/antennas/delete.ts
index adaf2d0d85..5d617bb5b5 100644
--- a/src/server/api/endpoints/antennas/delete.ts
+++ b/src/server/api/endpoints/antennas/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 { Antennas } from '../../../../models';
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 22764b7411..e23bff9da9 100644
--- a/src/server/api/endpoints/antennas/update.ts
+++ b/src/server/api/endpoints/antennas/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 { Antennas, UserLists, UserGroupJoinings } from '../../../../models';
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..419e47d077 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';
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..25bc36c6f7 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';
diff --git a/src/server/api/endpoints/blocking/delete.ts b/src/server/api/endpoints/blocking/delete.ts
index 22d2df5970..8391fd82f2 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';
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..5c844bf5cd 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';
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..de01aaa5b3 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 = {
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..a2dd49d329 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 = {
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..218cecff23 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: {
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..ebea14b124 100644
--- a/src/server/api/endpoints/federation/show-instance.ts
+++ b/src/server/api/endpoints/federation/show-instance.ts
@@ -1,8 +1,8 @@
 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';
+import config from '@/config';
 
 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..96ffd31c6f 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';
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..fca4b09641 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';
diff --git a/src/server/api/endpoints/get-online-users-count.ts b/src/server/api/endpoints/get-online-users-count.ts
index 520948ac6b..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 { redisClient } from '../../../db/redis';
-import config from '../../../config';
+import config from '@/config';
 
 export const meta = {
 	tags: ['meta'],
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..a4f3334762 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';
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/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..d0757af6bd 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';
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..8acc38f891 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: {
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 32e71acc05..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';
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..6fbdd5b023 100644
--- a/src/server/api/endpoints/notes/unrenote.ts
+++ b/src/server/api/endpoints/notes/unrenote.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/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..e2b84c9e0d 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';
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..2c397b9cd1 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';
 
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..8b5ee12242 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';
 
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..b1714fc321 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 = {
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..21a0cb747b 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -3,7 +3,7 @@ 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';
 
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 de41158586..b639ef08b9 100644
--- a/src/server/api/limiter.ts
+++ b/src/server/api/limiter.ts
@@ -1,7 +1,7 @@
 import * as Limiter from 'ratelimiter';
 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';
 
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 0ee268e772..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 { 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';
 
diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts
index 7ca95fc112..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 { 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';
 
diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts
index 7985042d27..8520a5656f 100644
--- a/src/server/api/service/twitter.ts
+++ b/src/server/api/service/twitter.ts
@@ -4,9 +4,9 @@ import { v4 as uuid } from 'uuid';
 import autwh from 'autwh';
 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';
 
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/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts
index 8353f45323..e47291de50 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';
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..a370580674 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';
diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts
index 9715e9973f..678554a012 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';
diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts
index e159c72d60..2c70f46954 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';
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/file/send-drive-file.ts b/src/server/file/send-drive-file.ts
index 9dea2df8e7..9745b1201d 100644
--- a/src/server/file/send-drive-file.ts
+++ b/src/server/file/send-drive-file.ts
@@ -4,11 +4,11 @@ import * as rename from 'rename';
 import * as tmp from 'tmp';
 import * as fs from 'fs';
 import { serverLogger } from '..';
-import { contentDisposition } from '../../misc/content-disposition';
+import { contentDisposition } from '@/misc/content-disposition';
 import { DriveFiles } from '../../models';
 import { InternalStorage } from '../../services/drive/internal-storage';
-import { downloadUrl } from '../../misc/download-url';
-import { detectType } from '../../misc/get-file-info';
+import { downloadUrl } from '@/misc/download-url';
+import { detectType } from '@/misc/get-file-info';
 import { convertToJpeg, convertToPngOrJpeg } from '../../services/drive/image-processor';
 import { GenerateVideoThumbnail } from '../../services/drive/generate-video-thumbnail';
 
diff --git a/src/server/index.ts b/src/server/index.ts
index 5a7bb99c63..f46e851baa 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -16,15 +16,15 @@ import * as slow from 'koa-slow';
 import activityPub from './activitypub';
 import nodeinfo from './nodeinfo';
 import wellKnown from './well-known';
-import config from '../config';
+import config from '@/config';
 import apiServer from './api';
 import { sum } from '../prelude/array';
 import Logger from '../services/logger';
 import { program } from '../argv';
 import { UserProfiles, Users } from '../models';
 import { networkChart } from '../services/chart';
-import { genAvatar } from '../misc/gen-avatar';
-import { createTemp } from '../misc/create-temp';
+import { genAvatar } from '@/misc/gen-avatar';
+import { createTemp } from '@/misc/create-temp';
 import { publishMainStream } from '../services/stream';
 
 export const serverLogger = new Logger('server', 'gray', false);
diff --git a/src/server/nodeinfo.ts b/src/server/nodeinfo.ts
index 5c51137c92..7a1d5b6292 100644
--- a/src/server/nodeinfo.ts
+++ b/src/server/nodeinfo.ts
@@ -1,6 +1,6 @@
 import * as Router from '@koa/router';
-import config from '../config';
-import { fetchMeta } from '../misc/fetch-meta';
+import config from '@/config';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { Users } from '../models';
 // import User from '../models/user';
 // import Note from '../models/note';
diff --git a/src/server/proxy/proxy-media.ts b/src/server/proxy/proxy-media.ts
index 4373cc20f5..f91df55624 100644
--- a/src/server/proxy/proxy-media.ts
+++ b/src/server/proxy/proxy-media.ts
@@ -2,9 +2,9 @@ import * as fs from 'fs';
 import * as Koa from 'koa';
 import { serverLogger } from '..';
 import { IImage, convertToPng, convertToJpeg } from '../../services/drive/image-processor';
-import { createTemp } from '../../misc/create-temp';
-import { downloadUrl } from '../../misc/download-url';
-import { detectType } from '../../misc/get-file-info';
+import { createTemp } from '@/misc/create-temp';
+import { downloadUrl } from '@/misc/download-url';
+import { detectType } from '@/misc/get-file-info';
 
 export async function proxyMedia(ctx: Koa.Context) {
 	const url = 'url' in ctx.query ? ctx.query.url : 'https://' + ctx.params.url;
diff --git a/src/server/web/feed.ts b/src/server/web/feed.ts
index 6078fbe0f3..d4792c63aa 100644
--- a/src/server/web/feed.ts
+++ b/src/server/web/feed.ts
@@ -1,5 +1,5 @@
 import { Feed } from 'feed';
-import config from '../../config';
+import config from '@/config';
 import { User } from '../../models/entities/user';
 import { Notes, DriveFiles, UserProfiles } from '../../models';
 import { In } from 'typeorm';
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 6558627437..953f2b47f1 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -14,12 +14,12 @@ import * as glob from 'glob';
 import * as MarkdownIt from 'markdown-it';
 
 import packFeed from './feed';
-import { fetchMeta } from '../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { genOpenapiSpec } from '../api/openapi/gen-spec';
-import config from '../../config';
+import config from '@/config';
 import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../../models';
-import parseAcct from '../../misc/acct/parse';
-import { getNoteSummary } from '../../misc/get-note-summary';
+import parseAcct from '@/misc/acct/parse';
+import { getNoteSummary } from '@/misc/get-note-summary';
 import { getConnection } from 'typeorm';
 import { redisClient } from '../../db/redis';
 import locales = require('../../../locales');
diff --git a/src/server/web/manifest.ts b/src/server/web/manifest.ts
index 167230330a..918fe27c03 100644
--- a/src/server/web/manifest.ts
+++ b/src/server/web/manifest.ts
@@ -1,6 +1,6 @@
 import * as Koa from 'koa';
 import * as manifest from './manifest.json';
-import { fetchMeta } from '../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 
 module.exports = async (ctx: Koa.Context) => {
 	const json = JSON.parse(JSON.stringify(manifest));
diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts
index 4dae6baafb..1ba8e0034a 100644
--- a/src/server/web/url-preview.ts
+++ b/src/server/web/url-preview.ts
@@ -1,10 +1,10 @@
 import * as Koa from 'koa';
 import summaly from 'summaly';
-import { fetchMeta } from '../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import Logger from '../../services/logger';
-import config from '../../config';
+import config from '@/config';
 import { query } from '../../prelude/url';
-import { getJson } from '../../misc/fetch';
+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 ff3c346255..b1b6b2a771 100644
--- a/src/server/well-known.ts
+++ b/src/server/well-known.ts
@@ -1,8 +1,8 @@
 import * as Router from '@koa/router';
 
-import config from '../config';
-import parseAcct from '../misc/acct/parse';
-import Acct from '../misc/acct/type';
+import config from '@/config';
+import parseAcct from '@/misc/acct/parse';
+import Acct from '@/misc/acct/type';
 import { links } from './nodeinfo';
 import { escapeAttribute, escapeValue } from '../prelude/xml';
 import { Users } from '../models';
diff --git a/src/services/add-note-to-antenna.ts b/src/services/add-note-to-antenna.ts
index 3ba3d1eef5..108957a899 100644
--- a/src/services/add-note-to-antenna.ts
+++ b/src/services/add-note-to-antenna.ts
@@ -1,8 +1,8 @@
 import { Antenna } from '../models/entities/antenna';
 import { Note } from '../models/entities/note';
 import { AntennaNotes, Mutings, Notes } from '../models';
-import { genId } from '../misc/gen-id';
-import { isMutedUserRelated } from '../misc/is-muted-user-related';
+import { genId } from '@/misc/gen-id';
+import { isMutedUserRelated } from '@/misc/is-muted-user-related';
 import { publishAntennaStream, publishMainStream } from './stream';
 import { User } from '../models/entities/user';
 
diff --git a/src/services/blocking/create.ts b/src/services/blocking/create.ts
index dec48d26de..be2a62692b 100644
--- a/src/services/blocking/create.ts
+++ b/src/services/blocking/create.ts
@@ -8,7 +8,7 @@ import renderReject from '../../remote/activitypub/renderer/reject';
 import { User } from '../../models/entities/user';
 import { Blockings, Users, FollowRequests, Followings } from '../../models';
 import { perUserFollowingChart } from '../chart';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 export default async function(blocker: User, blockee: User) {
 	await Promise.all([
diff --git a/src/services/chart/charts/classes/active-users.ts b/src/services/chart/charts/classes/active-users.ts
index 4820f8281b..95ed23a55b 100644
--- a/src/services/chart/charts/classes/active-users.ts
+++ b/src/services/chart/charts/classes/active-users.ts
@@ -1,7 +1,7 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
 import { User } from '../../../../models/entities/user';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users } from '../../../../models';
 import { name, schema } from '../schemas/active-users';
 
diff --git a/src/services/chart/charts/classes/drive.ts b/src/services/chart/charts/classes/drive.ts
index 46399a34d8..18537918f0 100644
--- a/src/services/chart/charts/classes/drive.ts
+++ b/src/services/chart/charts/classes/drive.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { DriveFiles } from '../../../../models';
 import { Not, IsNull } from 'typeorm';
 import { DriveFile } from '../../../../models/entities/drive-file';
diff --git a/src/services/chart/charts/classes/federation.ts b/src/services/chart/charts/classes/federation.ts
index ab6ec2d4dd..e593a53cf1 100644
--- a/src/services/chart/charts/classes/federation.ts
+++ b/src/services/chart/charts/classes/federation.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Instances } from '../../../../models';
 import { name, schema } from '../schemas/federation';
 
diff --git a/src/services/chart/charts/classes/hashtag.ts b/src/services/chart/charts/classes/hashtag.ts
index 43db5b0a83..c3eb42497c 100644
--- a/src/services/chart/charts/classes/hashtag.ts
+++ b/src/services/chart/charts/classes/hashtag.ts
@@ -1,7 +1,7 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
 import { User } from '../../../../models/entities/user';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users } from '../../../../models';
 import { name, schema } from '../schemas/hashtag';
 
diff --git a/src/services/chart/charts/classes/instance.ts b/src/services/chart/charts/classes/instance.ts
index c32b864d87..f93da58d61 100644
--- a/src/services/chart/charts/classes/instance.ts
+++ b/src/services/chart/charts/classes/instance.ts
@@ -1,11 +1,11 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { DriveFiles, Followings, Users, Notes } from '../../../../models';
 import { DriveFile } from '../../../../models/entities/drive-file';
 import { name, schema } from '../schemas/instance';
 import { Note } from '../../../../models/entities/note';
-import { toPuny } from '../../../../misc/convert-host';
+import { toPuny } from '@/misc/convert-host';
 
 type InstanceLog = SchemaType<typeof schema>;
 
diff --git a/src/services/chart/charts/classes/network.ts b/src/services/chart/charts/classes/network.ts
index 693af48f73..2ce75e0b34 100644
--- a/src/services/chart/charts/classes/network.ts
+++ b/src/services/chart/charts/classes/network.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { name, schema } from '../schemas/network';
 
 type NetworkLog = SchemaType<typeof schema>;
diff --git a/src/services/chart/charts/classes/notes.ts b/src/services/chart/charts/classes/notes.ts
index 965087bc08..a6eb653b70 100644
--- a/src/services/chart/charts/classes/notes.ts
+++ b/src/services/chart/charts/classes/notes.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Notes } from '../../../../models';
 import { Not, IsNull } from 'typeorm';
 import { Note } from '../../../../models/entities/note';
diff --git a/src/services/chart/charts/classes/per-user-drive.ts b/src/services/chart/charts/classes/per-user-drive.ts
index e778f7bf61..182e5927e8 100644
--- a/src/services/chart/charts/classes/per-user-drive.ts
+++ b/src/services/chart/charts/classes/per-user-drive.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { DriveFiles } from '../../../../models';
 import { DriveFile } from '../../../../models/entities/drive-file';
 import { name, schema } from '../schemas/per-user-drive';
diff --git a/src/services/chart/charts/classes/per-user-following.ts b/src/services/chart/charts/classes/per-user-following.ts
index 8b536009c8..6e069fb0d9 100644
--- a/src/services/chart/charts/classes/per-user-following.ts
+++ b/src/services/chart/charts/classes/per-user-following.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Followings, Users } from '../../../../models';
 import { Not, IsNull } from 'typeorm';
 import { User } from '../../../../models/entities/user';
diff --git a/src/services/chart/charts/classes/per-user-notes.ts b/src/services/chart/charts/classes/per-user-notes.ts
index 8d1fb8d2b0..f29a750192 100644
--- a/src/services/chart/charts/classes/per-user-notes.ts
+++ b/src/services/chart/charts/classes/per-user-notes.ts
@@ -1,7 +1,7 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
 import { User } from '../../../../models/entities/user';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Notes } from '../../../../models';
 import { Note } from '../../../../models/entities/note';
 import { name, schema } from '../schemas/per-user-notes';
diff --git a/src/services/chart/charts/classes/per-user-reactions.ts b/src/services/chart/charts/classes/per-user-reactions.ts
index b4cdced40c..d2d6b42e58 100644
--- a/src/services/chart/charts/classes/per-user-reactions.ts
+++ b/src/services/chart/charts/classes/per-user-reactions.ts
@@ -2,7 +2,7 @@ import autobind from 'autobind-decorator';
 import Chart, { DeepPartial } from '../../core';
 import { User } from '../../../../models/entities/user';
 import { Note } from '../../../../models/entities/note';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users } from '../../../../models';
 import { name, schema } from '../schemas/per-user-reactions';
 
diff --git a/src/services/chart/charts/classes/test-grouped.ts b/src/services/chart/charts/classes/test-grouped.ts
index 92c8df636e..84e6d5e33f 100644
--- a/src/services/chart/charts/classes/test-grouped.ts
+++ b/src/services/chart/charts/classes/test-grouped.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { name, schema } from '../schemas/test-grouped';
 
 type TestGroupedLog = SchemaType<typeof schema>;
diff --git a/src/services/chart/charts/classes/test-unique.ts b/src/services/chart/charts/classes/test-unique.ts
index 5680d713ec..559fda13c9 100644
--- a/src/services/chart/charts/classes/test-unique.ts
+++ b/src/services/chart/charts/classes/test-unique.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { name, schema } from '../schemas/test-unique';
 
 type TestUniqueLog = SchemaType<typeof schema>;
diff --git a/src/services/chart/charts/classes/test.ts b/src/services/chart/charts/classes/test.ts
index d37d298de7..a91d5e1895 100644
--- a/src/services/chart/charts/classes/test.ts
+++ b/src/services/chart/charts/classes/test.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { name, schema } from '../schemas/test';
 
 type TestLog = SchemaType<typeof schema>;
diff --git a/src/services/chart/charts/classes/users.ts b/src/services/chart/charts/classes/users.ts
index 87b19d88f9..d50db17039 100644
--- a/src/services/chart/charts/classes/users.ts
+++ b/src/services/chart/charts/classes/users.ts
@@ -1,6 +1,6 @@
 import autobind from 'autobind-decorator';
 import Chart, { Obj, DeepPartial } from '../../core';
-import { SchemaType } from '../../../../misc/schema';
+import { SchemaType } from '@/misc/schema';
 import { Users } from '../../../../models';
 import { Not, IsNull } from 'typeorm';
 import { User } from '../../../../models/entities/user';
diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts
index 10621be073..d956d33bd7 100644
--- a/src/services/chart/core.ts
+++ b/src/services/chart/core.ts
@@ -7,10 +7,10 @@
 import * as nestedProperty from 'nested-property';
 import autobind from 'autobind-decorator';
 import Logger from '../logger';
-import { Schema } from '../../misc/schema';
+import { Schema } from '@/misc/schema';
 import { EntitySchema, getRepository, Repository, LessThan, Between } from 'typeorm';
 import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '../../prelude/time';
-import { getChartInsertLock } from '../../misc/app-lock';
+import { getChartInsertLock } from '@/misc/app-lock';
 
 const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test');
 
diff --git a/src/services/chart/index.ts b/src/services/chart/index.ts
index dde02bd64d..61eb431ea3 100644
--- a/src/services/chart/index.ts
+++ b/src/services/chart/index.ts
@@ -10,7 +10,7 @@ import PerUserReactionsChart from './charts/classes/per-user-reactions';
 import HashtagChart from './charts/classes/hashtag';
 import PerUserFollowingChart from './charts/classes/per-user-following';
 import PerUserDriveChart from './charts/classes/per-user-drive';
-import { beforeShutdown } from '../../misc/before-shutdown';
+import { beforeShutdown } from '@/misc/before-shutdown';
 
 export const federationChart = new FederationChart();
 export const notesChart = new NotesChart();
diff --git a/src/services/create-notification.ts b/src/services/create-notification.ts
index dedb8eac8d..261b36814c 100644
--- a/src/services/create-notification.ts
+++ b/src/services/create-notification.ts
@@ -1,7 +1,7 @@
 import { publishMainStream } from './stream';
 import pushSw from './push-notification';
 import { Notifications, Mutings, UserProfiles } from '../models';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { User } from '../models/entities/user';
 import { Notification } from '../models/entities/notification';
 import { sendEmailNotification } from './send-email-notification';
diff --git a/src/services/create-system-user.ts b/src/services/create-system-user.ts
index 39ddc92abd..052ceb6c99 100644
--- a/src/services/create-system-user.ts
+++ b/src/services/create-system-user.ts
@@ -1,11 +1,11 @@
 import * as bcrypt from 'bcryptjs';
 import { v4 as uuid } from 'uuid';
 import generateNativeUserToken from '../server/api/common/generate-native-user-token';
-import { genRsaKeyPair } from '../misc/gen-key-pair';
+import { genRsaKeyPair } from '@/misc/gen-key-pair';
 import { User } from '../models/entities/user';
 import { UserProfile } from '../models/entities/user-profile';
 import { getConnection } from 'typeorm';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { UserKeypair } from '../models/entities/user-keypair';
 import { UsedUsername } from '../models/entities/used-username';
 
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts
index b5085ec8e3..f502c63157 100644
--- a/src/services/drive/add-file.ts
+++ b/src/services/drive/add-file.ts
@@ -4,19 +4,19 @@ import { v4 as uuid } from 'uuid';
 
 import { publishMainStream, publishDriveStream } from '../stream';
 import { deleteFile } from './delete-file';
-import { fetchMeta } from '../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { GenerateVideoThumbnail } from './generate-video-thumbnail';
 import { driveLogger } from './logger';
 import { IImage, convertSharpToJpeg, convertSharpToWebp, convertSharpToPng, convertSharpToPngOrJpeg } from './image-processor';
-import { contentDisposition } from '../../misc/content-disposition';
-import { getFileInfo } from '../../misc/get-file-info';
+import { contentDisposition } from '@/misc/content-disposition';
+import { getFileInfo } from '@/misc/get-file-info';
 import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '../../models';
 import { InternalStorage } from './internal-storage';
 import { DriveFile } from '../../models/entities/drive-file';
 import { IRemoteUser, User } from '../../models/entities/user';
 import { driveChart, perUserDriveChart, instanceChart } from '../chart';
-import { genId } from '../../misc/gen-id';
-import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error';
+import { genId } from '@/misc/gen-id';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
 import * as S3 from 'aws-sdk/clients/s3';
 import { getS3 } from './s3';
 import * as sharp from 'sharp';
diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts
index f9141ebaac..bb9c0ae2c3 100644
--- a/src/services/drive/delete-file.ts
+++ b/src/services/drive/delete-file.ts
@@ -3,14 +3,14 @@ import { InternalStorage } from './internal-storage';
 import { DriveFiles, Instances, Notes, Users } from '../../models';
 import { driveChart, perUserDriveChart, instanceChart } from '../chart';
 import { createDeleteObjectStorageFileJob } from '../../queue';
-import { fetchMeta } from '../../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { getS3 } from './s3';
 import { v4 as uuid } from 'uuid';
 import { Note } from '../../models/entities/note';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderDelete from '../../remote/activitypub/renderer/delete';
 import renderTombstone from '../../remote/activitypub/renderer/tombstone';
-import config from '../../config';
+import config from '@/config';
 import { deliverToFollowers } from '../../remote/activitypub/deliver-manager';
 import { Brackets } from 'typeorm';
 import { deliverToRelays } from '../relay';
diff --git a/src/services/drive/internal-storage.ts b/src/services/drive/internal-storage.ts
index f8d7489a22..5ec563584f 100644
--- a/src/services/drive/internal-storage.ts
+++ b/src/services/drive/internal-storage.ts
@@ -1,6 +1,6 @@
 import * as fs from 'fs';
 import * as Path from 'path';
-import config from '../../config';
+import config from '@/config';
 
 export class InternalStorage {
 	private static readonly path = Path.resolve(__dirname, '../../../files');
diff --git a/src/services/drive/s3.ts b/src/services/drive/s3.ts
index f419f09377..8bd51ce027 100644
--- a/src/services/drive/s3.ts
+++ b/src/services/drive/s3.ts
@@ -1,6 +1,6 @@
 import * as S3 from 'aws-sdk/clients/s3';
 import { Meta } from '../../models/entities/meta';
-import { getAgentByUrl } from '../../misc/fetch';
+import { getAgentByUrl } from '@/misc/fetch';
 
 export function getS3(meta: Meta) {
 	const u = meta.objectStorageEndpoint != null
diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts
index 96550f7121..db2c20b3a4 100644
--- a/src/services/drive/upload-from-url.ts
+++ b/src/services/drive/upload-from-url.ts
@@ -1,8 +1,8 @@
 import create from './add-file';
 import { User } from '../../models/entities/user';
 import { driveLogger } from './logger';
-import { createTemp } from '../../misc/create-temp';
-import { downloadUrl } from '../../misc/download-url';
+import { createTemp } from '@/misc/create-temp';
+import { downloadUrl } from '@/misc/download-url';
 import { DriveFolder } from '../../models/entities/drive-folder';
 import { DriveFile } from '../../models/entities/drive-file';
 import { DriveFiles } from '../../models';
diff --git a/src/services/fetch-instance-metadata.ts b/src/services/fetch-instance-metadata.ts
index c1caeef6e3..e016e73a60 100644
--- a/src/services/fetch-instance-metadata.ts
+++ b/src/services/fetch-instance-metadata.ts
@@ -1,9 +1,9 @@
 import { DOMWindow, JSDOM } from 'jsdom';
 import fetch from 'node-fetch';
-import { getJson, getHtml, getAgentByUrl } from '../misc/fetch';
+import { getJson, getHtml, getAgentByUrl } from '@/misc/fetch';
 import { Instance } from '../models/entities/instance';
 import { Instances } from '../models';
-import { getFetchInstanceMetadataLock } from '../misc/app-lock';
+import { getFetchInstanceMetadataLock } from '@/misc/app-lock';
 import Logger from './logger';
 import { URL } from 'url';
 
diff --git a/src/services/following/create.ts b/src/services/following/create.ts
index 1ce75caca0..a759bef0f9 100644
--- a/src/services/following/create.ts
+++ b/src/services/following/create.ts
@@ -7,13 +7,13 @@ import { deliver } from '../../queue';
 import createFollowRequest from './requests/create';
 import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc';
 import Logger from '../logger';
-import { IdentifiableError } from '../../misc/identifiable-error';
+import { IdentifiableError } from '@/misc/identifiable-error';
 import { User } from '../../models/entities/user';
 import { Followings, Users, FollowRequests, Blockings, Instances, UserProfiles } from '../../models';
 import { instanceChart, perUserFollowingChart } from '../chart';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { createNotification } from '../create-notification';
-import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
 
 const logger = new Logger('following/create');
 
diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts
index 6a072126b5..470458d5d4 100644
--- a/src/services/following/requests/accept.ts
+++ b/src/services/following/requests/accept.ts
@@ -6,7 +6,7 @@ import { publishMainStream } from '../../stream';
 import { insertFollowingDoc } from '../create';
 import { User, ILocalUser } from '../../../models/entities/user';
 import { FollowRequests, Users } from '../../../models';
-import { IdentifiableError } from '../../../misc/identifiable-error';
+import { IdentifiableError } from '@/misc/identifiable-error';
 
 export default async function(followee: User, follower: User) {
 	const request = await FollowRequests.findOne({
diff --git a/src/services/following/requests/cancel.ts b/src/services/following/requests/cancel.ts
index 98fec5d331..82f6efc40f 100644
--- a/src/services/following/requests/cancel.ts
+++ b/src/services/following/requests/cancel.ts
@@ -3,7 +3,7 @@ import renderFollow from '../../../remote/activitypub/renderer/follow';
 import renderUndo from '../../../remote/activitypub/renderer/undo';
 import { deliver } from '../../../queue';
 import { publishMainStream } from '../../stream';
-import { IdentifiableError } from '../../../misc/identifiable-error';
+import { IdentifiableError } from '@/misc/identifiable-error';
 import { User, ILocalUser } from '../../../models/entities/user';
 import { Users, FollowRequests } from '../../../models';
 
diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts
index deaeedb9a8..bab47caaa8 100644
--- a/src/services/following/requests/create.ts
+++ b/src/services/following/requests/create.ts
@@ -4,7 +4,7 @@ import renderFollow from '../../../remote/activitypub/renderer/follow';
 import { deliver } from '../../../queue';
 import { User } from '../../../models/entities/user';
 import { Blockings, FollowRequests, Users } from '../../../models';
-import { genId } from '../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { createNotification } from '../../create-notification';
 
 export default async function(follower: User, followee: User, requestId?: string) {
diff --git a/src/services/i/pin.ts b/src/services/i/pin.ts
index f727a10fb6..98e9c22df8 100644
--- a/src/services/i/pin.ts
+++ b/src/services/i/pin.ts
@@ -1,13 +1,13 @@
-import config from '../../config';
+import config from '@/config';
 import renderAdd from '../../remote/activitypub/renderer/add';
 import renderRemove from '../../remote/activitypub/renderer/remove';
 import { renderActivity } from '../../remote/activitypub/renderer';
-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, UserNotePinings, Users } from '../../models';
 import { UserNotePining } from '../../models/entities/user-note-pining';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { deliverToFollowers } from '../../remote/activitypub/deliver-manager';
 import { deliverToRelays } from '../relay';
 
diff --git a/src/services/insert-moderation-log.ts b/src/services/insert-moderation-log.ts
index 87587d3bed..1e04ddf545 100644
--- a/src/services/insert-moderation-log.ts
+++ b/src/services/insert-moderation-log.ts
@@ -1,6 +1,6 @@
 import { ILocalUser } from '../models/entities/user';
 import { ModerationLogs } from '../models';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 export async function insertModerationLog(moderator: ILocalUser, type: string, info?: Record<string, any>) {
 	await ModerationLogs.insert({
diff --git a/src/services/instance-actor.ts b/src/services/instance-actor.ts
index a6dadb0cd6..9b9c746061 100644
--- a/src/services/instance-actor.ts
+++ b/src/services/instance-actor.ts
@@ -1,7 +1,7 @@
 import { createSystemUser } from './create-system-user';
 import { ILocalUser } from '../models/entities/user';
 import { Users } from '../models';
-import { Cache } from '../misc/cache';
+import { Cache } from '@/misc/cache';
 
 const ACTOR_USERNAME = 'instance.actor' as const;
 
diff --git a/src/services/logger.ts b/src/services/logger.ts
index c7483d3faa..de62b3aca9 100644
--- a/src/services/logger.ts
+++ b/src/services/logger.ts
@@ -5,8 +5,8 @@ import * as dateformat from 'dateformat';
 import { program } from '../argv';
 import { getRepository } from 'typeorm';
 import { Log } from '../models/entities/log';
-import { genId } from '../misc/gen-id';
-import config from '../config';
+import { genId } from '@/misc/gen-id';
+import config from '@/config';
 
 const SyslogPro = require('syslog-pro');
 
diff --git a/src/services/messages/create.ts b/src/services/messages/create.ts
index 413266d029..3a5e7a7c97 100644
--- a/src/services/messages/create.ts
+++ b/src/services/messages/create.ts
@@ -2,7 +2,7 @@ import { User } from '../../models/entities/user';
 import { UserGroup } from '../../models/entities/user-group';
 import { DriveFile } from '../../models/entities/drive-file';
 import { MessagingMessages, UserGroupJoinings, Mutings, Users } from '../../models';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { MessagingMessage } from '../../models/entities/messaging-message';
 import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '../stream';
 import pushNotification from '../push-notification';
diff --git a/src/services/messages/delete.ts b/src/services/messages/delete.ts
index c94a7b67db..522815e554 100644
--- a/src/services/messages/delete.ts
+++ b/src/services/messages/delete.ts
@@ -1,4 +1,4 @@
-import config from '../../config';
+import config from '@/config';
 import { MessagingMessages, Users } from '../../models';
 import { MessagingMessage } from '../../models/entities/messaging-message';
 import { publishGroupMessagingStream, publishMessagingStream } from '../stream';
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index b9c1676c58..c5065b3ba4 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -7,33 +7,33 @@ import renderAnnounce from '../../remote/activitypub/renderer/announce';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import { parse } from '../../mfm/parse';
 import { resolveUser } from '../../remote/resolve-user';
-import config from '../../config';
+import config from '@/config';
 import { updateHashtags } from '../update-hashtag';
 import { concat } from '../../prelude/array';
 import insertNoteUnread from './unread';
 import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc';
-import extractMentions from '../../misc/extract-mentions';
-import extractEmojis from '../../misc/extract-emojis';
-import extractHashtags from '../../misc/extract-hashtags';
+import extractMentions from '@/misc/extract-mentions';
+import extractEmojis from '@/misc/extract-emojis';
+import extractHashtags from '@/misc/extract-hashtags';
 import { Note, IMentionedRemoteUsers } from '../../models/entities/note';
 import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings } from '../../models';
 import { DriveFile } from '../../models/entities/drive-file';
 import { App } from '../../models/entities/app';
 import { Not, getConnection, In } from 'typeorm';
 import { User, ILocalUser, IRemoteUser } from '../../models/entities/user';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '../chart';
 import { Poll, IPoll } from '../../models/entities/poll';
 import { createNotification } from '../create-notification';
-import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error';
-import { checkHitAntenna } from '../../misc/check-hit-antenna';
-import { checkWordMute } from '../../misc/check-word-mute';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
+import { checkHitAntenna } from '@/misc/check-hit-antenna';
+import { checkWordMute } from '@/misc/check-word-mute';
 import { addNoteToAntenna } from '../add-note-to-antenna';
-import { countSameRenotes } from '../../misc/count-same-renotes';
+import { countSameRenotes } from '@/misc/count-same-renotes';
 import { deliverToRelays } from '../relay';
 import { Channel } from '../../models/entities/channel';
-import { normalizeForSearch } from '../../misc/normalize-for-search';
-import { getAntennas } from '../../misc/antenna-cache';
+import { normalizeForSearch } from '@/misc/normalize-for-search';
+import { getAntennas } from '@/misc/antenna-cache';
 
 type NotificationType = 'reply' | 'renote' | 'quote' | 'mention';
 
diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts
index 5526302602..3f4f8b404c 100644
--- a/src/services/note/delete.ts
+++ b/src/services/note/delete.ts
@@ -4,14 +4,14 @@ import renderAnnounce from '../../remote/activitypub/renderer/announce';
 import renderUndo from '../../remote/activitypub/renderer/undo';
 import { renderActivity } from '../../remote/activitypub/renderer';
 import renderTombstone from '../../remote/activitypub/renderer/tombstone';
-import config from '../../config';
+import config from '@/config';
 import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc';
 import { User, ILocalUser, IRemoteUser } from '../../models/entities/user';
 import { Note, IMentionedRemoteUsers } from '../../models/entities/note';
 import { Notes, Users, Instances } from '../../models';
 import { notesChart, perUserNotesChart, instanceChart } from '../chart';
 import { deliverToFollowers, deliverToUser } from '../../remote/activitypub/deliver-manager';
-import { countSameRenotes } from '../../misc/count-same-renotes';
+import { countSameRenotes } from '@/misc/count-same-renotes';
 import { deliverToRelays } from '../relay';
 import { Brackets, In } from 'typeorm';
 
diff --git a/src/services/note/polls/vote.ts b/src/services/note/polls/vote.ts
index b4ce03ab60..aea157e558 100644
--- a/src/services/note/polls/vote.ts
+++ b/src/services/note/polls/vote.ts
@@ -3,7 +3,7 @@ import { User } from '../../../models/entities/user';
 import { Note } from '../../../models/entities/note';
 import { PollVotes, NoteWatchings, Polls } from '../../../models';
 import { Not } from 'typeorm';
-import { genId } from '../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { createNotification } from '../../create-notification';
 
 export default async function(user: User, note: Note, choice: number) {
diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts
index 181099cc2d..952927f192 100644
--- a/src/services/note/reaction/create.ts
+++ b/src/services/note/reaction/create.ts
@@ -2,16 +2,16 @@ import { publishNoteStream } from '../../stream';
 import { renderLike } from '../../../remote/activitypub/renderer/like';
 import DeliverManager from '../../../remote/activitypub/deliver-manager';
 import { renderActivity } from '../../../remote/activitypub/renderer';
-import { toDbReaction, decodeReaction } from '../../../misc/reaction-lib';
+import { toDbReaction, decodeReaction } from '@/misc/reaction-lib';
 import { User, IRemoteUser } from '../../../models/entities/user';
 import { Note } from '../../../models/entities/note';
 import { NoteReactions, Users, NoteWatchings, Notes, Emojis } from '../../../models';
 import { Not } from 'typeorm';
 import { perUserReactionsChart } from '../../chart';
-import { genId } from '../../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { createNotification } from '../../create-notification';
 import deleteReaction from './delete';
-import { isDuplicateKeyValueError } from '../../../misc/is-duplicate-key-value-error';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
 import { NoteReaction } from '../../../models/entities/note-reaction';
 
 export default async (user: User, note: Note, reaction?: string) => {
diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts
index 8d2f0682ca..c0787eee70 100644
--- a/src/services/note/reaction/delete.ts
+++ b/src/services/note/reaction/delete.ts
@@ -3,11 +3,11 @@ import { renderLike } from '../../../remote/activitypub/renderer/like';
 import renderUndo from '../../../remote/activitypub/renderer/undo';
 import { renderActivity } from '../../../remote/activitypub/renderer';
 import DeliverManager from '../../../remote/activitypub/deliver-manager';
-import { IdentifiableError } from '../../../misc/identifiable-error';
+import { IdentifiableError } from '@/misc/identifiable-error';
 import { User, IRemoteUser } from '../../../models/entities/user';
 import { Note } from '../../../models/entities/note';
 import { NoteReactions, Users, Notes } from '../../../models';
-import { decodeReaction } from '../../../misc/reaction-lib';
+import { decodeReaction } from '@/misc/reaction-lib';
 
 export default async (user: User, note: Note) => {
 	// if already unreacted
diff --git a/src/services/note/read.ts b/src/services/note/read.ts
index 4e8c76cbee..2bdb859476 100644
--- a/src/services/note/read.ts
+++ b/src/services/note/read.ts
@@ -4,8 +4,8 @@ import { User } from '../../models/entities/user';
 import { NoteUnreads, AntennaNotes, Users, Followings, ChannelFollowings } from '../../models';
 import { Not, IsNull, In } from 'typeorm';
 import { Channel } from '../../models/entities/channel';
-import { checkHitAntenna } from '../../misc/check-hit-antenna';
-import { getAntennas } from '../../misc/antenna-cache';
+import { checkHitAntenna } from '@/misc/check-hit-antenna';
+import { getAntennas } from '@/misc/antenna-cache';
 import { PackedNote } from '../../models/repositories/note';
 
 /**
diff --git a/src/services/note/unread.ts b/src/services/note/unread.ts
index 8e6fb4abe8..5cfba0f342 100644
--- a/src/services/note/unread.ts
+++ b/src/services/note/unread.ts
@@ -2,7 +2,7 @@ import { Note } from '../../models/entities/note';
 import { publishMainStream } from '../stream';
 import { User } from '../../models/entities/user';
 import { Mutings, NoteUnreads } from '../../models';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 export default async function(userId: User['id'], note: Note, params: {
 	// NOTE: isSpecifiedがtrueならisMentionedは必ずfalse
diff --git a/src/services/note/watch.ts b/src/services/note/watch.ts
index 966b7f0054..e333f04286 100644
--- a/src/services/note/watch.ts
+++ b/src/services/note/watch.ts
@@ -1,7 +1,7 @@
 import { User } from '../../models/entities/user';
 import { Note } from '../../models/entities/note';
 import { NoteWatchings } from '../../models';
-import { genId } from '../../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { NoteWatching } from '../../models/entities/note-watching';
 
 export default async (me: User['id'], note: Note) => {
diff --git a/src/services/push-notification.ts b/src/services/push-notification.ts
index d0a0c04d62..6c0b77c31f 100644
--- a/src/services/push-notification.ts
+++ b/src/services/push-notification.ts
@@ -1,7 +1,7 @@
 import * as push from 'web-push';
-import config from '../config';
+import config from '@/config';
 import { SwSubscriptions } from '../models';
-import { fetchMeta } from '../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import { PackedNotification } from '../models/repositories/notification';
 import { PackedMessagingMessage } from '../models/repositories/messaging-message';
 
diff --git a/src/services/register-or-fetch-instance-doc.ts b/src/services/register-or-fetch-instance-doc.ts
index 2c39502288..2edf85fd9f 100644
--- a/src/services/register-or-fetch-instance-doc.ts
+++ b/src/services/register-or-fetch-instance-doc.ts
@@ -1,9 +1,9 @@
 import { Instance } from '../models/entities/instance';
 import { Instances } from '../models';
 import { federationChart } from './chart';
-import { genId } from '../misc/gen-id';
-import { toPuny } from '../misc/convert-host';
-import { Cache } from '../misc/cache';
+import { genId } from '@/misc/gen-id';
+import { toPuny } from '@/misc/convert-host';
+import { Cache } from '@/misc/cache';
 
 const cache = new Cache<Instance>(1000 * 60 * 60);
 
diff --git a/src/services/relay.ts b/src/services/relay.ts
index 0eb3bb41a1..5b1d1c8474 100644
--- a/src/services/relay.ts
+++ b/src/services/relay.ts
@@ -5,7 +5,7 @@ import renderUndo from '../remote/activitypub/renderer/undo';
 import { deliver } from '../queue';
 import { ILocalUser } from '../models/entities/user';
 import { Users, Relays } from '../models';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 const ACTOR_USERNAME = 'relay.actor' as const;
 
diff --git a/src/services/send-email-notification.ts b/src/services/send-email-notification.ts
index 7579d5b674..08cd04289b 100644
--- a/src/services/send-email-notification.ts
+++ b/src/services/send-email-notification.ts
@@ -2,7 +2,7 @@ import { UserProfiles } from '../models';
 import { User } from '../models/entities/user';
 import { sendEmail } from './send-email';
 import * as locales from '../../locales/';
-import { I18n } from '../misc/i18n';
+import { I18n } from '@/misc/i18n';
 
 // TODO: locale ファイルをクライアント用とサーバー用で分けたい
 
diff --git a/src/services/send-email.ts b/src/services/send-email.ts
index 4814808392..4784ba5510 100644
--- a/src/services/send-email.ts
+++ b/src/services/send-email.ts
@@ -1,7 +1,7 @@
 import * as nodemailer from 'nodemailer';
-import { fetchMeta } from '../misc/fetch-meta';
+import { fetchMeta } from '@/misc/fetch-meta';
 import Logger from './logger';
-import config from '../config';
+import config from '@/config';
 
 export const logger = new Logger('email');
 
diff --git a/src/services/stream.ts b/src/services/stream.ts
index 6d7c2c4922..6258dc5a7d 100644
--- a/src/services/stream.ts
+++ b/src/services/stream.ts
@@ -4,7 +4,7 @@ import { Note } from '../models/entities/note';
 import { UserList } from '../models/entities/user-list';
 import { ReversiGame } from '../models/entities/games/reversi/game';
 import { UserGroup } from '../models/entities/user-group';
-import config from '../config';
+import config from '@/config';
 import { Antenna } from '../models/entities/antenna';
 import { Channel } from '../models/entities/channel';
 
diff --git a/src/services/suspend-user.ts b/src/services/suspend-user.ts
index a85188acbe..597433d6de 100644
--- a/src/services/suspend-user.ts
+++ b/src/services/suspend-user.ts
@@ -1,7 +1,7 @@
 import renderDelete from '../remote/activitypub/renderer/delete';
 import { renderActivity } from '../remote/activitypub/renderer';
 import { deliver } from '../queue';
-import config from '../config';
+import config from '@/config';
 import { User } from '../models/entities/user';
 import { Users, Followings } from '../models';
 import { Not, IsNull } from 'typeorm';
diff --git a/src/services/unsuspend-user.ts b/src/services/unsuspend-user.ts
index 6cab375821..5bc4bba423 100644
--- a/src/services/unsuspend-user.ts
+++ b/src/services/unsuspend-user.ts
@@ -2,7 +2,7 @@ import renderDelete from '../remote/activitypub/renderer/delete';
 import renderUndo from '../remote/activitypub/renderer/undo';
 import { renderActivity } from '../remote/activitypub/renderer';
 import { deliver } from '../queue';
-import config from '../config';
+import config from '@/config';
 import { User } from '../models/entities/user';
 import { Users, Followings } from '../models';
 import { Not, IsNull } from 'typeorm';
diff --git a/src/services/update-hashtag.ts b/src/services/update-hashtag.ts
index 3e22846731..e9508be336 100644
--- a/src/services/update-hashtag.ts
+++ b/src/services/update-hashtag.ts
@@ -1,9 +1,9 @@
 import { User } from '../models/entities/user';
 import { Hashtags, Users } from '../models';
 import { hashtagChart } from './chart';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 import { Hashtag } from '../models/entities/hashtag';
-import { normalizeForSearch } from '../misc/normalize-for-search';
+import { normalizeForSearch } from '@/misc/normalize-for-search';
 
 export async function updateHashtags(user: User, tags: string[]) {
 	for (const tag of tags) {
diff --git a/src/services/user-list/push.ts b/src/services/user-list/push.ts
index ba54c04475..3dd9a8576b 100644
--- a/src/services/user-list/push.ts
+++ b/src/services/user-list/push.ts
@@ -3,8 +3,8 @@ import { User } from '../../models/entities/user';
 import { UserList } from '../../models/entities/user-list';
 import { UserListJoinings, Users } from '../../models';
 import { UserListJoining } from '../../models/entities/user-list-joining';
-import { genId } from '../../misc/gen-id';
-import { fetchProxyAccount } from '../../misc/fetch-proxy-account';
+import { genId } from '@/misc/gen-id';
+import { fetchProxyAccount } from '@/misc/fetch-proxy-account';
 import createFollowing from '../following/create';
 
 export async function pushUserToUserList(target: User, list: UserList) {
diff --git a/src/tools/accept-migration.ts b/src/tools/accept-migration.ts
index addce86f1f..0622869398 100644
--- a/src/tools/accept-migration.ts
+++ b/src/tools/accept-migration.ts
@@ -1,7 +1,7 @@
 // ex) node built/tools/accept-migration Yo 1000000000001
 
 import { createConnection } from 'typeorm';
-import config from '../config';
+import config from '@/config';
 
 createConnection({
 	type: 'postgres',
diff --git a/src/tools/add-emoji.ts b/src/tools/add-emoji.ts
index 3745b48889..ca25d1348b 100644
--- a/src/tools/add-emoji.ts
+++ b/src/tools/add-emoji.ts
@@ -1,5 +1,5 @@
 import { Emojis } from '../models';
-import { genId } from '../misc/gen-id';
+import { genId } from '@/misc/gen-id';
 
 async function main(name: string, url: string, alias?: string): Promise<any> {
 	const aliases = alias != null ? [ alias ] : [];
diff --git a/src/tools/resync-remote-user.ts b/src/tools/resync-remote-user.ts
index c9d1ed588c..9897cba9f8 100644
--- a/src/tools/resync-remote-user.ts
+++ b/src/tools/resync-remote-user.ts
@@ -1,4 +1,4 @@
-import parseAcct from '../misc/acct/parse';
+import parseAcct from '@/misc/acct/parse';
 import { resolveUser } from '../remote/resolve-user';
 
 async function main(acct: string): Promise<any> {