summaryrefslogtreecommitdiff
path: root/packages/backend/src/remote
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-27 11:07:39 +0900
committerGitHub <noreply@github.com>2022-02-27 11:07:39 +0900
commitd071d18dd7a394298d454d4ef6c5ca885164dd47 (patch)
tree1de916def26c5e6a672e2e8efe5c842bd410fd0e /packages/backend/src/remote
parentfix: better language settings (diff)
downloadmisskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.tar.gz
misskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.tar.bz2
misskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.zip
refactor: Use ESM (#8358)
* wip * wip * fix * clean up * Update tsconfig.json * Update activitypub.ts * wip
Diffstat (limited to 'packages/backend/src/remote')
-rw-r--r--packages/backend/src/remote/activitypub/ap-request.ts4
-rw-r--r--packages/backend/src/remote/activitypub/audience.ts10
-rw-r--r--packages/backend/src/remote/activitypub/db-resolver.ts18
-rw-r--r--packages/backend/src/remote/activitypub/deliver-manager.ts6
-rw-r--r--packages/backend/src/remote/activitypub/kernel/accept/follow.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/accept/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/add/index.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/announce/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/announce/note.ts22
-rw-r--r--packages/backend/src/remote/activitypub/kernel/block/index.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/create/index.ts12
-rw-r--r--packages/backend/src/remote/activitypub/kernel/create/note.ts14
-rw-r--r--packages/backend/src/remote/activitypub/kernel/delete/actor.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/delete/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/delete/note.ts12
-rw-r--r--packages/backend/src/remote/activitypub/kernel/flag/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/follow.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/index.ts38
-rw-r--r--packages/backend/src/remote/activitypub/kernel/like.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/read.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/reject/follow.ts12
-rw-r--r--packages/backend/src/remote/activitypub/kernel/reject/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/kernel/remove/index.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/accept.ts12
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/announce.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/block.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/follow.ts12
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/index.ts18
-rw-r--r--packages/backend/src/remote/activitypub/kernel/undo/like.ts8
-rw-r--r--packages/backend/src/remote/activitypub/kernel/update/index.ts12
-rw-r--r--packages/backend/src/remote/activitypub/logger.ts2
-rw-r--r--packages/backend/src/remote/activitypub/misc/get-note-html.ts4
-rw-r--r--packages/backend/src/remote/activitypub/misc/html-to-mfm.ts6
-rw-r--r--packages/backend/src/remote/activitypub/misc/ld-signature.ts6
-rw-r--r--packages/backend/src/remote/activitypub/models/image.ts18
-rw-r--r--packages/backend/src/remote/activitypub/models/mention.ts10
-rw-r--r--packages/backend/src/remote/activitypub/models/note.ts54
-rw-r--r--packages/backend/src/remote/activitypub/models/person.ts56
-rw-r--r--packages/backend/src/remote/activitypub/models/question.ts12
-rw-r--r--packages/backend/src/remote/activitypub/models/tag.ts4
-rw-r--r--packages/backend/src/remote/activitypub/perform.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/accept.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/add.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/announce.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/block.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/create.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/delete.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/document.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/emoji.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/flag.ts8
-rw-r--r--packages/backend/src/remote/activitypub/renderer/follow-relay.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/follow-user.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/follow.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/hashtag.ts2
-rw-r--r--packages/backend/src/remote/activitypub/renderer/image.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/index.ts10
-rw-r--r--packages/backend/src/remote/activitypub/renderer/key.ts8
-rw-r--r--packages/backend/src/remote/activitypub/renderer/like.ts10
-rw-r--r--packages/backend/src/remote/activitypub/renderer/mention.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/note.ts22
-rw-r--r--packages/backend/src/remote/activitypub/renderer/person.ts24
-rw-r--r--packages/backend/src/remote/activitypub/renderer/question.ts8
-rw-r--r--packages/backend/src/remote/activitypub/renderer/read.ts6
-rw-r--r--packages/backend/src/remote/activitypub/renderer/reject.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/remove.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/undo.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/update.ts4
-rw-r--r--packages/backend/src/remote/activitypub/renderer/vote.ts10
-rw-r--r--packages/backend/src/remote/activitypub/request.ts10
-rw-r--r--packages/backend/src/remote/activitypub/resolver.ts16
-rw-r--r--packages/backend/src/remote/logger.ts2
-rw-r--r--packages/backend/src/remote/resolve-user.ts18
-rw-r--r--packages/backend/src/remote/webfinger.ts6
73 files changed, 379 insertions, 379 deletions
diff --git a/packages/backend/src/remote/activitypub/ap-request.ts b/packages/backend/src/remote/activitypub/ap-request.ts
index c75f44f2e6..96bfec3b11 100644
--- a/packages/backend/src/remote/activitypub/ap-request.ts
+++ b/packages/backend/src/remote/activitypub/ap-request.ts
@@ -1,5 +1,5 @@
-import * as crypto from 'crypto';
-import { URL } from 'url';
+import * as crypto from 'node:crypto';
+import { URL } from 'node:url';
type Request = {
url: string;
diff --git a/packages/backend/src/remote/activitypub/audience.ts b/packages/backend/src/remote/activitypub/audience.ts
index e82ed94a68..598a90c431 100644
--- a/packages/backend/src/remote/activitypub/audience.ts
+++ b/packages/backend/src/remote/activitypub/audience.ts
@@ -1,9 +1,9 @@
-import { ApObject, getApIds } from './type';
-import Resolver from './resolver';
-import { resolvePerson } from './models/person';
-import { unique, concat } from '@/prelude/array';
+import { ApObject, getApIds } from './type.js';
+import Resolver from './resolver.js';
+import { resolvePerson } from './models/person.js';
+import { unique, concat } from '@/prelude/array.js';
import * as promiseLimit from 'promise-limit';
-import { User, IRemoteUser } from '@/models/entities/user';
+import { User, IRemoteUser } from '@/models/entities/user.js';
type Visibility = 'public' | 'home' | 'followers' | 'specified';
diff --git a/packages/backend/src/remote/activitypub/db-resolver.ts b/packages/backend/src/remote/activitypub/db-resolver.ts
index f2064cf26d..9281e494d0 100644
--- a/packages/backend/src/remote/activitypub/db-resolver.ts
+++ b/packages/backend/src/remote/activitypub/db-resolver.ts
@@ -1,12 +1,12 @@
-import config from '@/config/index';
-import { Note } from '@/models/entities/note';
-import { User, IRemoteUser } from '@/models/entities/user';
-import { UserPublickey } from '@/models/entities/user-publickey';
-import { MessagingMessage } from '@/models/entities/messaging-message';
-import { Notes, Users, UserPublickeys, MessagingMessages } from '@/models/index';
-import { IObject, getApId } from './type';
-import { resolvePerson } from './models/person';
-import escapeRegexp = require('escape-regexp');
+import config from '@/config/index.js';
+import { Note } from '@/models/entities/note.js';
+import { User, IRemoteUser } from '@/models/entities/user.js';
+import { UserPublickey } from '@/models/entities/user-publickey.js';
+import { MessagingMessage } from '@/models/entities/messaging-message.js';
+import { Notes, Users, UserPublickeys, MessagingMessages } from '@/models/index.js';
+import { IObject, getApId } from './type.js';
+import { resolvePerson } from './models/person.js';
+import escapeRegexp from 'escape-regexp';
export default class DbResolver {
constructor() {
diff --git a/packages/backend/src/remote/activitypub/deliver-manager.ts b/packages/backend/src/remote/activitypub/deliver-manager.ts
index b16f907693..9c4e3418ff 100644
--- a/packages/backend/src/remote/activitypub/deliver-manager.ts
+++ b/packages/backend/src/remote/activitypub/deliver-manager.ts
@@ -1,6 +1,6 @@
-import { Users, Followings } from '@/models/index';
-import { ILocalUser, IRemoteUser, User } from '@/models/entities/user';
-import { deliver } from '@/queue/index';
+import { Users, Followings } from '@/models/index.js';
+import { ILocalUser, IRemoteUser, User } from '@/models/entities/user.js';
+import { deliver } from '@/queue/index.js';
//#region types
interface IRecipe {
diff --git a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts
index 1afb733ab5..393516addf 100644
--- a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts
+++ b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts
@@ -1,8 +1,8 @@
-import { IRemoteUser } from '@/models/entities/user';
-import accept from '@/services/following/requests/accept';
-import { IFollow } from '../../type';
-import DbResolver from '../../db-resolver';
-import { relayAccepted } from '@/services/relay';
+import { IRemoteUser } from '@/models/entities/user.js';
+import accept from '@/services/following/requests/accept.js';
+import { IFollow } from '../../type.js';
+import DbResolver from '../../db-resolver.js';
+import { relayAccepted } from '@/services/relay.js';
export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
// ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある
diff --git a/packages/backend/src/remote/activitypub/kernel/accept/index.ts b/packages/backend/src/remote/activitypub/kernel/accept/index.ts
index 5c6f81b2e3..354bd4f6e1 100644
--- a/packages/backend/src/remote/activitypub/kernel/accept/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/accept/index.ts
@@ -1,8 +1,8 @@
-import Resolver from '../../resolver';
-import { IRemoteUser } from '@/models/entities/user';
-import acceptFollow from './follow';
-import { IAccept, isFollow, getApType } from '../../type';
-import { apLogger } from '../../logger';
+import Resolver from '../../resolver.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import acceptFollow from './follow.js';
+import { IAccept, isFollow, getApType } from '../../type.js';
+import { apLogger } from '../../logger.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/add/index.ts b/packages/backend/src/remote/activitypub/kernel/add/index.ts
index b33be0cc85..9a2fac1e74 100644
--- a/packages/backend/src/remote/activitypub/kernel/add/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/add/index.ts
@@ -1,7 +1,7 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { IAdd } from '../../type';
-import { resolveNote } from '../../models/note';
-import { addPinned } from '@/services/i/pin';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IAdd } from '../../type.js';
+import { resolveNote } from '../../models/note.js';
+import { addPinned } from '@/services/i/pin.js';
export default async (actor: IRemoteUser, activity: IAdd): Promise<void> => {
if ('actor' in activity && actor.uri !== activity.actor) {
diff --git a/packages/backend/src/remote/activitypub/kernel/announce/index.ts b/packages/backend/src/remote/activitypub/kernel/announce/index.ts
index 581357e577..7e2e73bdd5 100644
--- a/packages/backend/src/remote/activitypub/kernel/announce/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/announce/index.ts
@@ -1,8 +1,8 @@
-import Resolver from '../../resolver';
-import { IRemoteUser } from '@/models/entities/user';
-import announceNote from './note';
-import { IAnnounce, getApId } from '../../type';
-import { apLogger } from '../../logger';
+import Resolver from '../../resolver.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import announceNote from './note.js';
+import { IAnnounce, getApId } from '../../type.js';
+import { apLogger } from '../../logger.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/announce/note.ts b/packages/backend/src/remote/activitypub/kernel/announce/note.ts
index eae92d4180..f6068fac79 100644
--- a/packages/backend/src/remote/activitypub/kernel/announce/note.ts
+++ b/packages/backend/src/remote/activitypub/kernel/announce/note.ts
@@ -1,14 +1,14 @@
-import Resolver from '../../resolver';
-import post from '@/services/note/create';
-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 { parseAudience } from '../../audience';
-import { StatusError } from '@/misc/fetch';
+import Resolver from '../../resolver.js';
+import post from '@/services/note/create.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IAnnounce, getApId } from '../../type.js';
+import { fetchNote, resolveNote } from '../../models/note.js';
+import { apLogger } from '../../logger.js';
+import { extractDbHost } from '@/misc/convert-host.js';
+import { fetchMeta } from '@/misc/fetch-meta.js';
+import { getApLock } from '@/misc/app-lock.js';
+import { parseAudience } from '../../audience.js';
+import { StatusError } from '@/misc/fetch.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/block/index.ts b/packages/backend/src/remote/activitypub/kernel/block/index.ts
index 4fd1e07b9b..9e4f1b316e 100644
--- a/packages/backend/src/remote/activitypub/kernel/block/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/block/index.ts
@@ -1,7 +1,7 @@
-import { IBlock } from '../../type';
-import block from '@/services/blocking/create';
-import { IRemoteUser } from '@/models/entities/user';
-import DbResolver from '../../db-resolver';
+import { IBlock } from '../../type.js';
+import block from '@/services/blocking/create.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import DbResolver from '../../db-resolver.js';
export default async (actor: IRemoteUser, activity: IBlock): Promise<string> => {
// ※ activity.objectにブロック対象があり、それは存在するローカルユーザーのはず
diff --git a/packages/backend/src/remote/activitypub/kernel/create/index.ts b/packages/backend/src/remote/activitypub/kernel/create/index.ts
index ce039a363b..1187b95ac6 100644
--- a/packages/backend/src/remote/activitypub/kernel/create/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/create/index.ts
@@ -1,9 +1,9 @@
-import Resolver from '../../resolver';
-import { IRemoteUser } from '@/models/entities/user';
-import createNote from './note';
-import { ICreate, getApId, isPost, getApType } from '../../type';
-import { apLogger } from '../../logger';
-import { toArray, concat, unique } from '@/prelude/array';
+import Resolver from '../../resolver.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import createNote from './note.js';
+import { ICreate, getApId, isPost, getApType } from '../../type.js';
+import { apLogger } from '../../logger.js';
+import { toArray, concat, unique } from '@/prelude/array.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/create/note.ts b/packages/backend/src/remote/activitypub/kernel/create/note.ts
index 14e311e4cd..b5c47990aa 100644
--- a/packages/backend/src/remote/activitypub/kernel/create/note.ts
+++ b/packages/backend/src/remote/activitypub/kernel/create/note.ts
@@ -1,10 +1,10 @@
-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 { StatusError } from '@/misc/fetch';
+import Resolver from '../../resolver.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { createNote, fetchNote } from '../../models/note.js';
+import { getApId, IObject, ICreate } from '../../type.js';
+import { getApLock } from '@/misc/app-lock.js';
+import { extractDbHost } from '@/misc/convert-host.js';
+import { StatusError } from '@/misc/fetch.js';
/**
* 投稿作成アクティビティを捌きます
diff --git a/packages/backend/src/remote/activitypub/kernel/delete/actor.ts b/packages/backend/src/remote/activitypub/kernel/delete/actor.ts
index 502f8d5ab5..2f75841e52 100644
--- a/packages/backend/src/remote/activitypub/kernel/delete/actor.ts
+++ b/packages/backend/src/remote/activitypub/kernel/delete/actor.ts
@@ -1,7 +1,7 @@
-import { apLogger } from '../../logger';
-import { createDeleteAccountJob } from '@/queue';
-import { IRemoteUser } from '@/models/entities/user';
-import { Users } from '@/models/index';
+import { apLogger } from '../../logger.js';
+import { createDeleteAccountJob } from '@/queue/index.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { Users } from '@/models/index.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/delete/index.ts b/packages/backend/src/remote/activitypub/kernel/delete/index.ts
index 86a452de76..b6d5e96d03 100644
--- a/packages/backend/src/remote/activitypub/kernel/delete/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/delete/index.ts
@@ -1,8 +1,8 @@
-import deleteNote from './note';
-import { IRemoteUser } from '@/models/entities/user';
-import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type';
-import { toSingle } from '@/prelude/array';
-import { deleteActor } from './actor';
+import deleteNote from './note.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type.js';
+import { toSingle } from '@/prelude/array.js';
+import { deleteActor } from './actor.js';
/**
* 削除アクティビティを捌きます
diff --git a/packages/backend/src/remote/activitypub/kernel/delete/note.ts b/packages/backend/src/remote/activitypub/kernel/delete/note.ts
index 3875a33d13..ad5e1a2edc 100644
--- a/packages/backend/src/remote/activitypub/kernel/delete/note.ts
+++ b/packages/backend/src/remote/activitypub/kernel/delete/note.ts
@@ -1,9 +1,9 @@
-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 { deleteMessage } from '@/services/messages/delete';
+import { IRemoteUser } from '@/models/entities/user.js';
+import deleteNode from '@/services/note/delete.js';
+import { apLogger } from '../../logger.js';
+import DbResolver from '../../db-resolver.js';
+import { getApLock } from '@/misc/app-lock.js';
+import { deleteMessage } from '@/services/messages/delete.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/flag/index.ts b/packages/backend/src/remote/activitypub/kernel/flag/index.ts
index d910e2ebe2..e80e632786 100644
--- a/packages/backend/src/remote/activitypub/kernel/flag/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/flag/index.ts
@@ -1,9 +1,9 @@
-import { IRemoteUser } from '@/models/entities/user';
-import config from '@/config/index';
-import { IFlag, getApIds } from '../../type';
-import { AbuseUserReports, Users } from '@/models/index';
+import { IRemoteUser } from '@/models/entities/user.js';
+import config from '@/config/index.js';
+import { IFlag, getApIds } from '../../type.js';
+import { AbuseUserReports, Users } from '@/models/index.js';
import { In } from 'typeorm';
-import { genId } from '@/misc/gen-id';
+import { genId } from '@/misc/gen-id.js';
export default async (actor: IRemoteUser, activity: IFlag): Promise<string> => {
// objectは `(User|Note) | (User|Note)[]` だけど、全パターンDBスキーマと対応させられないので
diff --git a/packages/backend/src/remote/activitypub/kernel/follow.ts b/packages/backend/src/remote/activitypub/kernel/follow.ts
index 3183207afa..49c1a7ee01 100644
--- a/packages/backend/src/remote/activitypub/kernel/follow.ts
+++ b/packages/backend/src/remote/activitypub/kernel/follow.ts
@@ -1,7 +1,7 @@
-import { IRemoteUser } from '@/models/entities/user';
-import follow from '@/services/following/create';
-import { IFollow } from '../type';
-import DbResolver from '../db-resolver';
+import { IRemoteUser } from '@/models/entities/user.js';
+import follow from '@/services/following/create.js';
+import { IFollow } from '../type.js';
+import DbResolver from '../db-resolver.js';
export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
const dbResolver = new DbResolver();
diff --git a/packages/backend/src/remote/activitypub/kernel/index.ts b/packages/backend/src/remote/activitypub/kernel/index.ts
index a103e5a1be..6aea8e57cf 100644
--- a/packages/backend/src/remote/activitypub/kernel/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/index.ts
@@ -1,22 +1,22 @@
-import { IObject, isCreate, isDelete, isUpdate, isRead, isFollow, isAccept, isReject, isAdd, isRemove, isAnnounce, isLike, isUndo, isBlock, isCollectionOrOrderedCollection, isCollection, isFlag } from '../type';
-import { IRemoteUser } from '@/models/entities/user';
-import create from './create/index';
-import performDeleteActivity from './delete/index';
-import performUpdateActivity from './update/index';
-import { performReadActivity } from './read';
-import follow from './follow';
-import undo from './undo/index';
-import like from './like';
-import announce from './announce/index';
-import accept from './accept/index';
-import reject from './reject/index';
-import add from './add/index';
-import remove from './remove/index';
-import block from './block/index';
-import flag from './flag/index';
-import { apLogger } from '../logger';
-import Resolver from '../resolver';
-import { toArray } from '@/prelude/array';
+import { IObject, isCreate, isDelete, isUpdate, isRead, isFollow, isAccept, isReject, isAdd, isRemove, isAnnounce, isLike, isUndo, isBlock, isCollectionOrOrderedCollection, isCollection, isFlag } from '../type.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import create from './create/index.js';
+import performDeleteActivity from './delete/index.js';
+import performUpdateActivity from './update/index.js';
+import { performReadActivity } from './read.js';
+import follow from './follow.js';
+import undo from './undo/index.js';
+import like from './like.js';
+import announce from './announce/index.js';
+import accept from './accept/index.js';
+import reject from './reject/index.js';
+import add from './add/index.js';
+import remove from './remove/index.js';
+import block from './block/index.js';
+import flag from './flag/index.js';
+import { apLogger } from '../logger.js';
+import Resolver from '../resolver.js';
+import { toArray } from '@/prelude/array.js';
export async function performActivity(actor: IRemoteUser, activity: IObject) {
if (isCollectionOrOrderedCollection(activity)) {
diff --git a/packages/backend/src/remote/activitypub/kernel/like.ts b/packages/backend/src/remote/activitypub/kernel/like.ts
index 58d5aefefc..715cc379b9 100644
--- a/packages/backend/src/remote/activitypub/kernel/like.ts
+++ b/packages/backend/src/remote/activitypub/kernel/like.ts
@@ -1,7 +1,7 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { ILike, getApId } from '../type';
-import create from '@/services/note/reaction/create';
-import { fetchNote, extractEmojis } from '../models/note';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { ILike, getApId } from '../type.js';
+import create from '@/services/note/reaction/create.js';
+import { fetchNote, extractEmojis } from '../models/note.js';
export default async (actor: IRemoteUser, activity: ILike) => {
const targetUri = getApId(activity.object);
diff --git a/packages/backend/src/remote/activitypub/kernel/read.ts b/packages/backend/src/remote/activitypub/kernel/read.ts
index 11a1731869..93cc36ec46 100644
--- a/packages/backend/src/remote/activitypub/kernel/read.ts
+++ b/packages/backend/src/remote/activitypub/kernel/read.ts
@@ -1,8 +1,8 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { IRead, getApId } from '../type';
-import { isSelfHost, extractDbHost } from '@/misc/convert-host';
-import { MessagingMessages } from '@/models/index';
-import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IRead, getApId } from '../type.js';
+import { isSelfHost, extractDbHost } from '@/misc/convert-host.js';
+import { MessagingMessages } from '@/models/index.js';
+import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message.js';
export const performReadActivity = async (actor: IRemoteUser, activity: IRead): Promise<string> => {
const id = await getApId(activity.object);
diff --git a/packages/backend/src/remote/activitypub/kernel/reject/follow.ts b/packages/backend/src/remote/activitypub/kernel/reject/follow.ts
index 049437b18f..72751e83c0 100644
--- a/packages/backend/src/remote/activitypub/kernel/reject/follow.ts
+++ b/packages/backend/src/remote/activitypub/kernel/reject/follow.ts
@@ -1,9 +1,9 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { remoteReject } from '@/services/following/reject';
-import { IFollow } from '../../type';
-import DbResolver from '../../db-resolver';
-import { relayRejected } from '@/services/relay';
-import { Users } from '@/models';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { remoteReject } from '@/services/following/reject.js';
+import { IFollow } from '../../type.js';
+import DbResolver from '../../db-resolver.js';
+import { relayRejected } from '@/services/relay.js';
+import { Users } from '@/models/index.js';
export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
// ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある
diff --git a/packages/backend/src/remote/activitypub/kernel/reject/index.ts b/packages/backend/src/remote/activitypub/kernel/reject/index.ts
index d0de9c329b..ed86a4aa2f 100644
--- a/packages/backend/src/remote/activitypub/kernel/reject/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/reject/index.ts
@@ -1,8 +1,8 @@
-import Resolver from '../../resolver';
-import { IRemoteUser } from '@/models/entities/user';
-import rejectFollow from './follow';
-import { IReject, isFollow, getApType } from '../../type';
-import { apLogger } from '../../logger';
+import Resolver from '../../resolver.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import rejectFollow from './follow.js';
+import { IReject, isFollow, getApType } from '../../type.js';
+import { apLogger } from '../../logger.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/remove/index.ts b/packages/backend/src/remote/activitypub/kernel/remove/index.ts
index d59953e653..7d7b3386c0 100644
--- a/packages/backend/src/remote/activitypub/kernel/remove/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/remove/index.ts
@@ -1,7 +1,7 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { IRemove } from '../../type';
-import { resolveNote } from '../../models/note';
-import { removePinned } from '@/services/i/pin';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IRemove } from '../../type.js';
+import { resolveNote } from '../../models/note.js';
+import { removePinned } from '@/services/i/pin.js';
export default async (actor: IRemoteUser, activity: IRemove): Promise<void> => {
if ('actor' in activity && actor.uri !== activity.actor) {
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts b/packages/backend/src/remote/activitypub/kernel/undo/accept.ts
index 10c8a9c9d9..2383eea5bd 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/accept.ts
@@ -1,9 +1,9 @@
-import unfollow from '@/services/following/delete';
-import cancelRequest from '@/services/following/requests/cancel';
-import {IAccept} from '../../type';
-import { IRemoteUser } from '@/models/entities/user';
-import { Followings } from '@/models/index';
-import DbResolver from '../../db-resolver';
+import unfollow from '@/services/following/delete.js';
+import cancelRequest from '@/services/following/requests/cancel.js';
+import {IAccept} from '../../type.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { Followings } from '@/models/index.js';
+import DbResolver from '../../db-resolver.js';
export default async (actor: IRemoteUser, activity: IAccept): Promise<string> => {
const dbResolver = new DbResolver();
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/announce.ts b/packages/backend/src/remote/activitypub/kernel/undo/announce.ts
index 7f302a616d..822c1e4948 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/announce.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/announce.ts
@@ -1,7 +1,7 @@
-import { Notes } from '@/models/index';
-import { IRemoteUser } from '@/models/entities/user';
-import { IAnnounce, getApId } from '../../type';
-import deleteNote from '@/services/note/delete';
+import { Notes } from '@/models/index.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { IAnnounce, getApId } from '../../type.js';
+import deleteNote from '@/services/note/delete.js';
export const undoAnnounce = async (actor: IRemoteUser, activity: IAnnounce): Promise<string> => {
const uri = getApId(activity);
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/block.ts b/packages/backend/src/remote/activitypub/kernel/undo/block.ts
index 61940486be..844b067e2b 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/block.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/block.ts
@@ -1,7 +1,7 @@
-import { IBlock } from '../../type';
-import unblock from '@/services/blocking/delete';
-import { IRemoteUser } from '@/models/entities/user';
-import DbResolver from '../../db-resolver';
+import { IBlock } from '../../type.js';
+import unblock from '@/services/blocking/delete.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import DbResolver from '../../db-resolver.js';
export default async (actor: IRemoteUser, activity: IBlock): Promise<string> => {
const dbResolver = new DbResolver();
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/follow.ts b/packages/backend/src/remote/activitypub/kernel/undo/follow.ts
index 783e5acf15..6715adcf76 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/follow.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/follow.ts
@@ -1,9 +1,9 @@
-import unfollow from '@/services/following/delete';
-import cancelRequest from '@/services/following/requests/cancel';
-import { IFollow } from '../../type';
-import { IRemoteUser } from '@/models/entities/user';
-import { FollowRequests, Followings } from '@/models/index';
-import DbResolver from '../../db-resolver';
+import unfollow from '@/services/following/delete.js';
+import cancelRequest from '@/services/following/requests/cancel.js';
+import { IFollow } from '../../type.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { FollowRequests, Followings } from '@/models/index.js';
+import DbResolver from '../../db-resolver.js';
export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
const dbResolver = new DbResolver();
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/index.ts b/packages/backend/src/remote/activitypub/kernel/undo/index.ts
index 8de78420e3..05937c6855 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/index.ts
@@ -1,12 +1,12 @@
-import { IRemoteUser } from '@/models/entities/user';
-import {IUndo, isFollow, isBlock, isLike, isAnnounce, getApType, isAccept} from '../../type';
-import unfollow from './follow';
-import unblock from './block';
-import undoLike from './like';
-import undoAccept from './accept';
-import { undoAnnounce } from './announce';
-import Resolver from '../../resolver';
-import { apLogger } from '../../logger';
+import { IRemoteUser } from '@/models/entities/user.js';
+import {IUndo, isFollow, isBlock, isLike, isAnnounce, getApType, isAccept} from '../../type.js';
+import unfollow from './follow.js';
+import unblock from './block.js';
+import undoLike from './like.js';
+import undoAccept from './accept.js';
+import { undoAnnounce } from './announce.js';
+import Resolver from '../../resolver.js';
+import { apLogger } from '../../logger.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/kernel/undo/like.ts b/packages/backend/src/remote/activitypub/kernel/undo/like.ts
index 107d3053e3..08ac630351 100644
--- a/packages/backend/src/remote/activitypub/kernel/undo/like.ts
+++ b/packages/backend/src/remote/activitypub/kernel/undo/like.ts
@@ -1,7 +1,7 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { ILike, getApId } from '../../type';
-import deleteReaction from '@/services/note/reaction/delete';
-import { fetchNote } from '../../models/note';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { ILike, getApId } from '../../type.js';
+import deleteReaction from '@/services/note/reaction/delete.js';
+import { fetchNote } from '../../models/note.js';
/**
* Process Undo.Like activity
diff --git a/packages/backend/src/remote/activitypub/kernel/update/index.ts b/packages/backend/src/remote/activitypub/kernel/update/index.ts
index 52bfc5002e..7888c698e3 100644
--- a/packages/backend/src/remote/activitypub/kernel/update/index.ts
+++ b/packages/backend/src/remote/activitypub/kernel/update/index.ts
@@ -1,9 +1,9 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { getApType, IUpdate, isActor } from '../../type';
-import { apLogger } from '../../logger';
-import { updateQuestion } from '../../models/question';
-import Resolver from '../../resolver';
-import { updatePerson } from '../../models/person';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { getApType, IUpdate, isActor } from '../../type.js';
+import { apLogger } from '../../logger.js';
+import { updateQuestion } from '../../models/question.js';
+import Resolver from '../../resolver.js';
+import { updatePerson } from '../../models/person.js';
/**
* Updateアクティビティを捌きます
diff --git a/packages/backend/src/remote/activitypub/logger.ts b/packages/backend/src/remote/activitypub/logger.ts
index e13add01db..cab51b3bf5 100644
--- a/packages/backend/src/remote/activitypub/logger.ts
+++ b/packages/backend/src/remote/activitypub/logger.ts
@@ -1,3 +1,3 @@
-import { remoteLogger } from '../logger';
+import { remoteLogger } from '../logger.js';
export const apLogger = remoteLogger.createSubLogger('ap', 'magenta');
diff --git a/packages/backend/src/remote/activitypub/misc/get-note-html.ts b/packages/backend/src/remote/activitypub/misc/get-note-html.ts
index 043335a5be..3800b40608 100644
--- a/packages/backend/src/remote/activitypub/misc/get-note-html.ts
+++ b/packages/backend/src/remote/activitypub/misc/get-note-html.ts
@@ -1,6 +1,6 @@
import * as mfm from 'mfm-js';
-import { Note } from '@/models/entities/note';
-import { toHtml } from '../../../mfm/to-html';
+import { Note } from '@/models/entities/note.js';
+import { toHtml } from '../../../mfm/to-html.js';
export default function(note: Note) {
let html = note.text ? toHtml(mfm.parse(note.text), JSON.parse(note.mentionedRemoteUsers)) : null;
diff --git a/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts b/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts
index 5cca04df21..bb1ba7925c 100644
--- a/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts
+++ b/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts
@@ -1,6 +1,6 @@
-import { IObject } from '../type';
-import { extractApHashtagObjects } from '../models/tag';
-import { fromHtml } from '../../../mfm/from-html';
+import { IObject } from '../type.js';
+import { extractApHashtagObjects } from '../models/tag.js';
+import { fromHtml } from '../../../mfm/from-html.js';
export function htmlToMfm(html: string, tag?: IObject | IObject[]) {
const hashtagNames = extractApHashtagObjects(tag).map(x => x.name).filter((x): x is string => x != null);
diff --git a/packages/backend/src/remote/activitypub/misc/ld-signature.ts b/packages/backend/src/remote/activitypub/misc/ld-signature.ts
index 3b799c755c..34294c935d 100644
--- a/packages/backend/src/remote/activitypub/misc/ld-signature.ts
+++ b/packages/backend/src/remote/activitypub/misc/ld-signature.ts
@@ -1,8 +1,8 @@
-import * as crypto from 'crypto';
+import * as crypto from 'node:crypto';
import * as jsonld from 'jsonld';
-import { CONTEXTS } from './contexts';
+import { CONTEXTS } from './contexts.js';
import fetch from 'node-fetch';
-import { httpAgent, httpsAgent } from '@/misc/fetch';
+import { httpAgent, httpsAgent } from '@/misc/fetch.js';
// RsaSignature2017 based from https://github.com/transmute-industries/RsaSignature2017
diff --git a/packages/backend/src/remote/activitypub/models/image.ts b/packages/backend/src/remote/activitypub/models/image.ts
index 6f60b7827d..b5e9181d30 100644
--- a/packages/backend/src/remote/activitypub/models/image.ts
+++ b/packages/backend/src/remote/activitypub/models/image.ts
@@ -1,12 +1,12 @@
-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 { apLogger } from '../logger';
-import { DriveFile } from '@/models/entities/drive-file';
-import { DriveFiles } from '@/models/index';
-import { truncate } from '@/misc/truncate';
-import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits';
+import { uploadFromUrl } from '@/services/drive/upload-from-url.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import Resolver from '../resolver.js';
+import { fetchMeta } from '@/misc/fetch-meta.js';
+import { apLogger } from '../logger.js';
+import { DriveFile } from '@/models/entities/drive-file.js';
+import { DriveFiles } from '@/models/index.js';
+import { truncate } from '@/misc/truncate.js';
+import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/models/mention.ts b/packages/backend/src/remote/activitypub/models/mention.ts
index ade9c90806..a75f9ce980 100644
--- a/packages/backend/src/remote/activitypub/models/mention.ts
+++ b/packages/backend/src/remote/activitypub/models/mention.ts
@@ -1,9 +1,9 @@
-import { toArray, unique } from '@/prelude/array';
-import { IObject, isMention, IApMention } from '../type';
-import { resolvePerson } from './person';
+import { toArray, unique } from '@/prelude/array.js';
+import { IObject, isMention, IApMention } from '../type.js';
+import { resolvePerson } from './person.js';
import * as promiseLimit from 'promise-limit';
-import Resolver from '../resolver';
-import { User } from '@/models/entities/user';
+import Resolver from '../resolver.js';
+import { User } from '@/models/entities/user.js';
export async function extractApMentions(tags: IObject | IObject[] | null | undefined) {
const hrefs = unique(extractApMentionObjects(tags).map(x => x.href as string));
diff --git a/packages/backend/src/remote/activitypub/models/note.ts b/packages/backend/src/remote/activitypub/models/note.ts
index 6847925a51..8ef480ed7a 100644
--- a/packages/backend/src/remote/activitypub/models/note.ts
+++ b/packages/backend/src/remote/activitypub/models/note.ts
@@ -1,32 +1,32 @@
import * as promiseLimit from 'promise-limit';
-import config from '@/config/index';
-import Resolver from '../resolver';
-import post from '@/services/note/create';
-import { resolvePerson, updatePerson } from './person';
-import { resolveImage } from './image';
-import { IRemoteUser } from '@/models/entities/user';
-import { htmlToMfm } from '../misc/html-to-mfm';
-import { extractApHashtags } from './tag';
-import { unique, toArray, toSingle } from '@/prelude/array';
-import { extractPollFromQuestion } from './question';
-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 { Emojis, Polls, MessagingMessages } from '@/models/index';
-import { Note } from '@/models/entities/note';
-import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji, getApType } 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 { createMessage } from '@/services/messages/create';
-import { parseAudience } from '../audience';
-import { extractApMentions } from './mention';
-import DbResolver from '../db-resolver';
-import { StatusError } from '@/misc/fetch';
+import config from '@/config/index.js';
+import Resolver from '../resolver.js';
+import post from '@/services/note/create.js';
+import { resolvePerson, updatePerson } from './person.js';
+import { resolveImage } from './image.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { htmlToMfm } from '../misc/html-to-mfm.js';
+import { extractApHashtags } from './tag.js';
+import { unique, toArray, toSingle } from '@/prelude/array.js';
+import { extractPollFromQuestion } from './question.js';
+import vote from '@/services/note/polls/vote.js';
+import { apLogger } from '../logger.js';
+import { DriveFile } from '@/models/entities/drive-file.js';
+import { deliverQuestionUpdate } from '@/services/note/polls/update.js';
+import { extractDbHost, toPuny } from '@/misc/convert-host.js';
+import { Emojis, Polls, MessagingMessages } from '@/models/index.js';
+import { Note } from '@/models/entities/note.js';
+import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji, getApType } from '../type.js';
+import { Emoji } from '@/models/entities/emoji.js';
+import { genId } from '@/misc/gen-id.js';
+import { fetchMeta } from '@/misc/fetch-meta.js';
+import { getApLock } from '@/misc/app-lock.js';
+import { createMessage } from '@/services/messages/create.js';
+import { parseAudience } from '../audience.js';
+import { extractApMentions } from './mention.js';
+import DbResolver from '../db-resolver.js';
+import { StatusError } from '@/misc/fetch.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/models/person.ts b/packages/backend/src/remote/activitypub/models/person.ts
index 12660a5441..1c03bddccc 100644
--- a/packages/backend/src/remote/activitypub/models/person.ts
+++ b/packages/backend/src/remote/activitypub/models/person.ts
@@ -1,35 +1,35 @@
-import { URL } from 'url';
+import { URL } from 'node:url';
import * as promiseLimit from 'promise-limit';
import $, { Context } from 'cafy';
-import config from '@/config/index';
-import Resolver from '../resolver';
-import { resolveImage } from './image';
-import { isCollectionOrOrderedCollection, isCollection, IActor, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue, getApType, isActor } from '../type';
-import { fromHtml } from '../../../mfm/from-html';
-import { htmlToMfm } from '../misc/html-to-mfm';
-import { resolveNote, extractEmojis } from './note';
-import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc';
-import { extractApHashtags } from './tag';
-import { apLogger } from '../logger';
-import { Note } from '@/models/entities/note';
-import { updateUsertags } from '@/services/update-hashtag';
-import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '@/models/index';
-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 { instanceChart, usersChart } from '@/services/chart/index';
-import { UserPublickey } from '@/models/entities/user-publickey';
-import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error';
-import { toPuny } from '@/misc/convert-host';
-import { UserProfile } from '@/models/entities/user-profile';
+import config from '@/config/index.js';
+import Resolver from '../resolver.js';
+import { resolveImage } from './image.js';
+import { isCollectionOrOrderedCollection, isCollection, IActor, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue, getApType, isActor } from '../type.js';
+import { fromHtml } from '../../../mfm/from-html.js';
+import { htmlToMfm } from '../misc/html-to-mfm.js';
+import { resolveNote, extractEmojis } from './note.js';
+import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc.js';
+import { extractApHashtags } from './tag.js';
+import { apLogger } from '../logger.js';
+import { Note } from '@/models/entities/note.js';
+import { updateUsertags } from '@/services/update-hashtag.js';
+import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '@/models/index.js';
+import { User, IRemoteUser } from '@/models/entities/user.js';
+import { Emoji } from '@/models/entities/emoji.js';
+import { UserNotePining } from '@/models/entities/user-note-pining.js';
+import { genId } from '@/misc/gen-id.js';
+import { instanceChart, usersChart } from '@/services/chart/index.js';
+import { UserPublickey } from '@/models/entities/user-publickey.js';
+import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js';
+import { toPuny } from '@/misc/convert-host.js';
+import { UserProfile } from '@/models/entities/user-profile.js';
import { getConnection } from 'typeorm';
-import { toArray } from '@/prelude/array';
-import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata';
-import { normalizeForSearch } from '@/misc/normalize-for-search';
-import { truncate } from '@/misc/truncate';
-import { StatusError } from '@/misc/fetch';
+import { toArray } from '@/prelude/array.js';
+import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata.js';
+import { normalizeForSearch } from '@/misc/normalize-for-search.js';
+import { truncate } from '@/misc/truncate.js';
+import { StatusError } from '@/misc/fetch.js';
const logger = apLogger;
diff --git a/packages/backend/src/remote/activitypub/models/question.ts b/packages/backend/src/remote/activitypub/models/question.ts
index 3e48e598e6..0a77465e31 100644
--- a/packages/backend/src/remote/activitypub/models/question.ts
+++ b/packages/backend/src/remote/activitypub/models/question.ts
@@ -1,9 +1,9 @@
-import config from '@/config/index';
-import Resolver from '../resolver';
-import { IObject, IQuestion, isQuestion } from '../type';
-import { apLogger } from '../logger';
-import { Notes, Polls } from '@/models/index';
-import { IPoll } from '@/models/entities/poll';
+import config from '@/config/index.js';
+import Resolver from '../resolver.js';
+import { IObject, IQuestion, isQuestion } from '../type.js';
+import { apLogger } from '../logger.js';
+import { Notes, Polls } from '@/models/index.js';
+import { IPoll } from '@/models/entities/poll.js';
export async function extractPollFromQuestion(source: string | IObject, resolver?: Resolver): Promise<IPoll> {
if (resolver == null) resolver = new Resolver();
diff --git a/packages/backend/src/remote/activitypub/models/tag.ts b/packages/backend/src/remote/activitypub/models/tag.ts
index fbc6b9b428..964dabad04 100644
--- a/packages/backend/src/remote/activitypub/models/tag.ts
+++ b/packages/backend/src/remote/activitypub/models/tag.ts
@@ -1,5 +1,5 @@
-import { toArray } from '@/prelude/array';
-import { IObject, isHashtag, IApHashtag } from '../type';
+import { toArray } from '@/prelude/array.js';
+import { IObject, isHashtag, IApHashtag } from '../type.js';
export function extractApHashtags(tags: IObject | IObject[] | null | undefined) {
if (tags == null) return [];
diff --git a/packages/backend/src/remote/activitypub/perform.ts b/packages/backend/src/remote/activitypub/perform.ts
index 01f0e3676e..3e18815586 100644
--- a/packages/backend/src/remote/activitypub/perform.ts
+++ b/packages/backend/src/remote/activitypub/perform.ts
@@ -1,6 +1,6 @@
-import { IObject } from './type';
-import { IRemoteUser } from '@/models/entities/user';
-import { performActivity } from './kernel/index';
+import { IObject } from './type.js';
+import { IRemoteUser } from '@/models/entities/user.js';
+import { performActivity } from './kernel/index.js';
export default async (actor: IRemoteUser, activity: IObject): Promise<void> => {
await performActivity(actor, activity);
diff --git a/packages/backend/src/remote/activitypub/renderer/accept.ts b/packages/backend/src/remote/activitypub/renderer/accept.ts
index 3bce2165cd..cb01f6a91b 100644
--- a/packages/backend/src/remote/activitypub/renderer/accept.ts
+++ b/packages/backend/src/remote/activitypub/renderer/accept.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
export default (object: any, user: { id: User['id']; host: null }) => ({
type: 'Accept',
diff --git a/packages/backend/src/remote/activitypub/renderer/add.ts b/packages/backend/src/remote/activitypub/renderer/add.ts
index 960daf8424..ec47884291 100644
--- a/packages/backend/src/remote/activitypub/renderer/add.ts
+++ b/packages/backend/src/remote/activitypub/renderer/add.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { ILocalUser } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { ILocalUser } from '@/models/entities/user.js';
export default (user: ILocalUser, target: any, object: any) => ({
type: 'Add',
diff --git a/packages/backend/src/remote/activitypub/renderer/announce.ts b/packages/backend/src/remote/activitypub/renderer/announce.ts
index ab113b48e6..2709fea51d 100644
--- a/packages/backend/src/remote/activitypub/renderer/announce.ts
+++ b/packages/backend/src/remote/activitypub/renderer/announce.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { Note } from '@/models/entities/note';
+import config from '@/config/index.js';
+import { Note } from '@/models/entities/note.js';
export default (object: any, note: Note) => {
const attributedTo = `${config.url}/users/${note.userId}`;
diff --git a/packages/backend/src/remote/activitypub/renderer/block.ts b/packages/backend/src/remote/activitypub/renderer/block.ts
index bfb831daa8..10a4fde517 100644
--- a/packages/backend/src/remote/activitypub/renderer/block.ts
+++ b/packages/backend/src/remote/activitypub/renderer/block.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { ILocalUser, IRemoteUser } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { ILocalUser, IRemoteUser } from '@/models/entities/user.js';
export default (blocker: ILocalUser, blockee: IRemoteUser) => ({
type: 'Block',
diff --git a/packages/backend/src/remote/activitypub/renderer/create.ts b/packages/backend/src/remote/activitypub/renderer/create.ts
index ac9e69af20..281a3cb2af 100644
--- a/packages/backend/src/remote/activitypub/renderer/create.ts
+++ b/packages/backend/src/remote/activitypub/renderer/create.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { Note } from '@/models/entities/note';
+import config from '@/config/index.js';
+import { Note } from '@/models/entities/note.js';
export default (object: any, note: Note) => {
const activity = {
diff --git a/packages/backend/src/remote/activitypub/renderer/delete.ts b/packages/backend/src/remote/activitypub/renderer/delete.ts
index 176a6f7e27..4edd3a8807 100644
--- a/packages/backend/src/remote/activitypub/renderer/delete.ts
+++ b/packages/backend/src/remote/activitypub/renderer/delete.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
export default (object: any, user: { id: User['id']; host: null }) => ({
type: 'Delete',
diff --git a/packages/backend/src/remote/activitypub/renderer/document.ts b/packages/backend/src/remote/activitypub/renderer/document.ts
index a9d86dea15..c973de4c4c 100644
--- a/packages/backend/src/remote/activitypub/renderer/document.ts
+++ b/packages/backend/src/remote/activitypub/renderer/document.ts
@@ -1,5 +1,5 @@
-import { DriveFile } from '@/models/entities/drive-file';
-import { DriveFiles } from '@/models/index';
+import { DriveFile } from '@/models/entities/drive-file.js';
+import { DriveFiles } from '@/models/index.js';
export default (file: DriveFile) => ({
type: 'Document',
diff --git a/packages/backend/src/remote/activitypub/renderer/emoji.ts b/packages/backend/src/remote/activitypub/renderer/emoji.ts
index e7ae7d959a..0bf15eefd9 100644
--- a/packages/backend/src/remote/activitypub/renderer/emoji.ts
+++ b/packages/backend/src/remote/activitypub/renderer/emoji.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { Emoji } from '@/models/entities/emoji';
+import config from '@/config/index.js';
+import { Emoji } from '@/models/entities/emoji.js';
export default (emoji: Emoji) => ({
id: `${config.url}/emojis/${emoji.name}`,
diff --git a/packages/backend/src/remote/activitypub/renderer/flag.ts b/packages/backend/src/remote/activitypub/renderer/flag.ts
index 60ac496509..6fbc11580f 100644
--- a/packages/backend/src/remote/activitypub/renderer/flag.ts
+++ b/packages/backend/src/remote/activitypub/renderer/flag.ts
@@ -1,7 +1,7 @@
-import config from '@/config/index';
-import { IObject, IActivity } from '@/remote/activitypub/type';
-import { ILocalUser, IRemoteUser } from '@/models/entities/user';
-import { getInstanceActor } from '@/services/instance-actor';
+import config from '@/config/index.js';
+import { IObject, IActivity } from '@/remote/activitypub/type.js';
+import { ILocalUser, IRemoteUser } from '@/models/entities/user.js';
+import { getInstanceActor } from '@/services/instance-actor.js';
// to anonymise reporters, the reporting actor must be a system user
// object has to be a uri or array of uris
diff --git a/packages/backend/src/remote/activitypub/renderer/follow-relay.ts b/packages/backend/src/remote/activitypub/renderer/follow-relay.ts
index 38800267bf..2c9678090f 100644
--- a/packages/backend/src/remote/activitypub/renderer/follow-relay.ts
+++ b/packages/backend/src/remote/activitypub/renderer/follow-relay.ts
@@ -1,6 +1,6 @@
-import config from '@/config/index';
-import { Relay } from '@/models/entities/relay';
-import { ILocalUser } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { Relay } from '@/models/entities/relay.js';
+import { ILocalUser } from '@/models/entities/user.js';
export function renderFollowRelay(relay: Relay, relayActor: ILocalUser) {
const follow = {
diff --git a/packages/backend/src/remote/activitypub/renderer/follow-user.ts b/packages/backend/src/remote/activitypub/renderer/follow-user.ts
index e3dde7f7fe..ad1d63b933 100644
--- a/packages/backend/src/remote/activitypub/renderer/follow-user.ts
+++ b/packages/backend/src/remote/activitypub/renderer/follow-user.ts
@@ -1,6 +1,6 @@
-import config from '@/config/index';
-import { Users } from '@/models/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { Users } from '@/models/index.js';
+import { User } from '@/models/entities/user.js';
/**
* Convert (local|remote)(Follower|Followee)ID to URL
diff --git a/packages/backend/src/remote/activitypub/renderer/follow.ts b/packages/backend/src/remote/activitypub/renderer/follow.ts
index 5258df7e97..9e9692b77a 100644
--- a/packages/backend/src/remote/activitypub/renderer/follow.ts
+++ b/packages/backend/src/remote/activitypub/renderer/follow.ts
@@ -1,6 +1,6 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
-import { Users } from '@/models/index';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
+import { Users } from '@/models/index.js';
export default (follower: { id: User['id']; host: User['host']; uri: User['host'] }, followee: { id: User['id']; host: User['host']; uri: User['host'] }, requestId?: string) => {
const follow = {
diff --git a/packages/backend/src/remote/activitypub/renderer/hashtag.ts b/packages/backend/src/remote/activitypub/renderer/hashtag.ts
index d83a8e68b1..a7b441e006 100644
--- a/packages/backend/src/remote/activitypub/renderer/hashtag.ts
+++ b/packages/backend/src/remote/activitypub/renderer/hashtag.ts
@@ -1,4 +1,4 @@
-import config from '@/config/index';
+import config from '@/config/index.js';
export default (tag: string) => ({
type: 'Hashtag',
diff --git a/packages/backend/src/remote/activitypub/renderer/image.ts b/packages/backend/src/remote/activitypub/renderer/image.ts
index ee3860be8c..c7d5a31a27 100644
--- a/packages/backend/src/remote/activitypub/renderer/image.ts
+++ b/packages/backend/src/remote/activitypub/renderer/image.ts
@@ -1,5 +1,5 @@
-import { DriveFile } from '@/models/entities/drive-file';
-import { DriveFiles } from '@/models/index';
+import { DriveFile } from '@/models/entities/drive-file.js';
+import { DriveFiles } from '@/models/index.js';
export default (file: DriveFile) => ({
type: 'Image',
diff --git a/packages/backend/src/remote/activitypub/renderer/index.ts b/packages/backend/src/remote/activitypub/renderer/index.ts
index cffc9bfe04..5f69332266 100644
--- a/packages/backend/src/remote/activitypub/renderer/index.ts
+++ b/packages/backend/src/remote/activitypub/renderer/index.ts
@@ -1,9 +1,9 @@
-import config from '@/config/index';
+import config from '@/config/index.js';
import { v4 as uuid } from 'uuid';
-import { IActivity } from '../type';
-import { LdSignature } from '../misc/ld-signature';
-import { getUserKeypair } from '@/misc/keypair-store';
-import { User } from '@/models/entities/user';
+import { IActivity } from '../type.js';
+import { LdSignature } from '../misc/ld-signature.js';
+import { getUserKeypair } from '@/misc/keypair-store.js';
+import { User } from '@/models/entities/user.js';
export const renderActivity = (x: any): IActivity | null => {
if (x == null) return null;
diff --git a/packages/backend/src/remote/activitypub/renderer/key.ts b/packages/backend/src/remote/activitypub/renderer/key.ts
index 51bc888dd7..c4f3d464f8 100644
--- a/packages/backend/src/remote/activitypub/renderer/key.ts
+++ b/packages/backend/src/remote/activitypub/renderer/key.ts
@@ -1,7 +1,7 @@
-import config from '@/config/index';
-import { ILocalUser } from '@/models/entities/user';
-import { UserKeypair } from '@/models/entities/user-keypair';
-import { createPublicKey } from 'crypto';
+import config from '@/config/index.js';
+import { ILocalUser } from '@/models/entities/user.js';
+import { UserKeypair } from '@/models/entities/user-keypair.js';
+import { createPublicKey } from 'node:crypto';
export default (user: ILocalUser, key: UserKeypair, postfix?: string) => ({
id: `${config.url}/users/${user.id}${postfix || '/publickey'}`,
diff --git a/packages/backend/src/remote/activitypub/renderer/like.ts b/packages/backend/src/remote/activitypub/renderer/like.ts
index 2e4da9d26f..1bf36d4708 100644
--- a/packages/backend/src/remote/activitypub/renderer/like.ts
+++ b/packages/backend/src/remote/activitypub/renderer/like.ts
@@ -1,8 +1,8 @@
-import config from '@/config/index';
-import { NoteReaction } from '@/models/entities/note-reaction';
-import { Note } from '@/models/entities/note';
-import { Emojis } from '@/models/index';
-import renderEmoji from './emoji';
+import config from '@/config/index.js';
+import { NoteReaction } from '@/models/entities/note-reaction.js';
+import { Note } from '@/models/entities/note.js';
+import { Emojis } from '@/models/index.js';
+import renderEmoji from './emoji.js';
export const renderLike = async (noteReaction: NoteReaction, note: Note) => {
const reaction = noteReaction.reaction;
diff --git a/packages/backend/src/remote/activitypub/renderer/mention.ts b/packages/backend/src/remote/activitypub/renderer/mention.ts
index 06d2d33e59..c7e62e8840 100644
--- a/packages/backend/src/remote/activitypub/renderer/mention.ts
+++ b/packages/backend/src/remote/activitypub/renderer/mention.ts
@@ -1,6 +1,6 @@
-import config from '@/config/index';
-import { User, ILocalUser } from '@/models/entities/user';
-import { Users } from '@/models/index';
+import config from '@/config/index.js';
+import { User, ILocalUser } from '@/models/entities/user.js';
+import { Users } from '@/models/index.js';
export default (mention: User) => ({
type: 'Mention',
diff --git a/packages/backend/src/remote/activitypub/renderer/note.ts b/packages/backend/src/remote/activitypub/renderer/note.ts
index 654ab68123..c3d9e120d6 100644
--- a/packages/backend/src/remote/activitypub/renderer/note.ts
+++ b/packages/backend/src/remote/activitypub/renderer/note.ts
@@ -1,15 +1,15 @@
-import renderDocument from './document';
-import renderHashtag from './hashtag';
-import renderMention from './mention';
-import renderEmoji from './emoji';
-import config from '@/config/index';
-import toHtml from '../misc/get-note-html';
-import { Note, IMentionedRemoteUsers } from '@/models/entities/note';
-import { DriveFile } from '@/models/entities/drive-file';
-import { DriveFiles, Notes, Users, Emojis, Polls } from '@/models/index';
+import renderDocument from './document.js';
+import renderHashtag from './hashtag.js';
+import renderMention from './mention.js';
+import renderEmoji from './emoji.js';
+import config from '@/config/index.js';
+import toHtml from '../misc/get-note-html.js';
+import { Note, IMentionedRemoteUsers } from '@/models/entities/note.js';
+import { DriveFile } from '@/models/entities/drive-file.js';
+import { DriveFiles, Notes, Users, Emojis, Polls } from '@/models/index.js';
import { In } from 'typeorm';
-import { Emoji } from '@/models/entities/emoji';
-import { Poll } from '@/models/entities/poll';
+import { Emoji } from '@/models/entities/emoji.js';
+import { Poll } from '@/models/entities/poll.js';
export default async function renderNote(note: Note, dive = true, isTalk = false): Promise<Record<string, unknown>> {
const getPromisedFiles = async (ids: string[]) => {
diff --git a/packages/backend/src/remote/activitypub/renderer/person.ts b/packages/backend/src/remote/activitypub/renderer/person.ts
index d1c4c0040b..3d86e37cca 100644
--- a/packages/backend/src/remote/activitypub/renderer/person.ts
+++ b/packages/backend/src/remote/activitypub/renderer/person.ts
@@ -1,16 +1,16 @@
-import { URL } from 'url';
+import { URL } from 'node:url';
import * as mfm from 'mfm-js';
-import renderImage from './image';
-import renderKey from './key';
-import config from '@/config/index';
-import { ILocalUser } from '@/models/entities/user';
-import { toHtml } from '../../../mfm/to-html';
-import { getEmojis } from './note';
-import renderEmoji from './emoji';
-import { IIdentifier } from '../models/identifier';
-import renderHashtag from './hashtag';
-import { DriveFiles, UserProfiles } from '@/models/index';
-import { getUserKeypair } from '@/misc/keypair-store';
+import renderImage from './image.js';
+import renderKey from './key.js';
+import config from '@/config/index.js';
+import { ILocalUser } from '@/models/entities/user.js';
+import { toHtml } from '../../../mfm/to-html.js';
+import { getEmojis } from './note.js';
+import renderEmoji from './emoji.js';
+import { IIdentifier } from '../models/identifier.js';
+import renderHashtag from './hashtag.js';
+import { DriveFiles, UserProfiles } from '@/models/index.js';
+import { getUserKeypair } from '@/misc/keypair-store.js';
export async function renderPerson(user: ILocalUser) {
const id = `${config.url}/users/${user.id}`;
diff --git a/packages/backend/src/remote/activitypub/renderer/question.ts b/packages/backend/src/remote/activitypub/renderer/question.ts
index 3cbff33abc..d4d1b590af 100644
--- a/packages/backend/src/remote/activitypub/renderer/question.ts
+++ b/packages/backend/src/remote/activitypub/renderer/question.ts
@@ -1,7 +1,7 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
-import { Note } from '@/models/entities/note';
-import { Poll } from '@/models/entities/poll';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
+import { Note } from '@/models/entities/note.js';
+import { Poll } from '@/models/entities/poll.js';
export default async function renderQuestion(user: { id: User['id'] }, note: Note, poll: Poll) {
const question = {
diff --git a/packages/backend/src/remote/activitypub/renderer/read.ts b/packages/backend/src/remote/activitypub/renderer/read.ts
index 2fe3b8e5e0..a30e649f64 100644
--- a/packages/backend/src/remote/activitypub/renderer/read.ts
+++ b/packages/backend/src/remote/activitypub/renderer/read.ts
@@ -1,6 +1,6 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
-import { MessagingMessage } from '@/models/entities/messaging-message';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
+import { MessagingMessage } from '@/models/entities/messaging-message.js';
export const renderReadActivity = (user: { id: User['id'] }, message: MessagingMessage) => ({
type: 'Read',
diff --git a/packages/backend/src/remote/activitypub/renderer/reject.ts b/packages/backend/src/remote/activitypub/renderer/reject.ts
index 575ef52ab8..ab4cc1646a 100644
--- a/packages/backend/src/remote/activitypub/renderer/reject.ts
+++ b/packages/backend/src/remote/activitypub/renderer/reject.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
export default (object: any, user: { id: User['id'] }) => ({
type: 'Reject',
diff --git a/packages/backend/src/remote/activitypub/renderer/remove.ts b/packages/backend/src/remote/activitypub/renderer/remove.ts
index 8afaf199cc..1be3edc5d5 100644
--- a/packages/backend/src/remote/activitypub/renderer/remove.ts
+++ b/packages/backend/src/remote/activitypub/renderer/remove.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
export default (user: { id: User['id'] }, target: any, object: any) => ({
type: 'Remove',
diff --git a/packages/backend/src/remote/activitypub/renderer/undo.ts b/packages/backend/src/remote/activitypub/renderer/undo.ts
index 14115b788d..d28778e22e 100644
--- a/packages/backend/src/remote/activitypub/renderer/undo.ts
+++ b/packages/backend/src/remote/activitypub/renderer/undo.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { ILocalUser, User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { ILocalUser, User } from '@/models/entities/user.js';
export default (object: any, user: { id: User['id'] }) => {
if (object == null) return null;
diff --git a/packages/backend/src/remote/activitypub/renderer/update.ts b/packages/backend/src/remote/activitypub/renderer/update.ts
index 8bb415d117..cf880f03fc 100644
--- a/packages/backend/src/remote/activitypub/renderer/update.ts
+++ b/packages/backend/src/remote/activitypub/renderer/update.ts
@@ -1,5 +1,5 @@
-import config from '@/config/index';
-import { User } from '@/models/entities/user';
+import config from '@/config/index.js';
+import { User } from '@/models/entities/user.js';
export default (object: any, user: { id: User['id'] }) => {
const activity = {
diff --git a/packages/backend/src/remote/activitypub/renderer/vote.ts b/packages/backend/src/remote/activitypub/renderer/vote.ts
index fd7bc9dbed..b6eb8e095d 100644
--- a/packages/backend/src/remote/activitypub/renderer/vote.ts
+++ b/packages/backend/src/remote/activitypub/renderer/vote.ts
@@ -1,8 +1,8 @@
-import config from '@/config/index';
-import { Note } from '@/models/entities/note';
-import { IRemoteUser, User } from '@/models/entities/user';
-import { PollVote } from '@/models/entities/poll-vote';
-import { Poll } from '@/models/entities/poll';
+import config from '@/config/index.js';
+import { Note } from '@/models/entities/note.js';
+import { IRemoteUser, User } from '@/models/entities/user.js';
+import { PollVote } from '@/models/entities/poll-vote.js';
+import { Poll } from '@/models/entities/poll.js';
export default async function renderVote(user: { id: User['id'] }, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise<any> {
return {
diff --git a/packages/backend/src/remote/activitypub/request.ts b/packages/backend/src/remote/activitypub/request.ts
index 715937e2a7..5cbfd8c259 100644
--- a/packages/backend/src/remote/activitypub/request.ts
+++ b/packages/backend/src/remote/activitypub/request.ts
@@ -1,8 +1,8 @@
-import config from '@/config/index';
-import { getUserKeypair } from '@/misc/keypair-store';
-import { User } from '@/models/entities/user';
-import { getResponse } from '../../misc/fetch';
-import { createSignedPost, createSignedGet } from './ap-request';
+import config from '@/config/index.js';
+import { getUserKeypair } from '@/misc/keypair-store.js';
+import { User } from '@/models/entities/user.js';
+import { getResponse } from '../../misc/fetch.js';
+import { createSignedPost, createSignedGet } from './ap-request.js';
export default async (user: { id: User['id'] }, url: string, object: any) => {
const body = JSON.stringify(object);
diff --git a/packages/backend/src/remote/activitypub/resolver.ts b/packages/backend/src/remote/activitypub/resolver.ts
index f392a65e3a..c1269c75c5 100644
--- a/packages/backend/src/remote/activitypub/resolver.ts
+++ b/packages/backend/src/remote/activitypub/resolver.ts
@@ -1,11 +1,11 @@
-import config from '@/config/index';
-import { getJson } from '@/misc/fetch';
-import { ILocalUser } from '@/models/entities/user';
-import { getInstanceActor } from '@/services/instance-actor';
-import { signedGet } from './request';
-import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type';
-import { fetchMeta } from '@/misc/fetch-meta';
-import { extractDbHost } from '@/misc/convert-host';
+import config from '@/config/index.js';
+import { getJson } from '@/misc/fetch.js';
+import { ILocalUser } from '@/models/entities/user.js';
+import { getInstanceActor } from '@/services/instance-actor.js';
+import { signedGet } from './request.js';
+import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type.js';
+import { fetchMeta } from '@/misc/fetch-meta.js';
+import { extractDbHost } from '@/misc/convert-host.js';
export default class Resolver {
private history: Set<string>;
diff --git a/packages/backend/src/remote/logger.ts b/packages/backend/src/remote/logger.ts
index 9ffad4d716..4921f53bd8 100644
--- a/packages/backend/src/remote/logger.ts
+++ b/packages/backend/src/remote/logger.ts
@@ -1,3 +1,3 @@
-import Logger from '@/services/logger';
+import Logger from '@/services/logger.js';
export const remoteLogger = new Logger('remote', 'cyan');
diff --git a/packages/backend/src/remote/resolve-user.ts b/packages/backend/src/remote/resolve-user.ts
index 747735ecaa..8cbf02e68d 100644
--- a/packages/backend/src/remote/resolve-user.ts
+++ b/packages/backend/src/remote/resolve-user.ts
@@ -1,12 +1,12 @@
-import { URL } from 'url';
-import webFinger from './webfinger';
-import config from '@/config/index';
-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/index';
-import { toPuny } from '@/misc/convert-host';
+import { URL } from 'node:url';
+import webFinger from './webfinger.js';
+import config from '@/config/index.js';
+import { createPerson, updatePerson } from './activitypub/models/person.js';
+import { remoteLogger } from './logger.js';
+import chalk from 'chalk';
+import { User, IRemoteUser } from '@/models/entities/user.js';
+import { Users } from '@/models/index.js';
+import { toPuny } from '@/misc/convert-host.js';
const logger = remoteLogger.createSubLogger('resolve-user');
diff --git a/packages/backend/src/remote/webfinger.ts b/packages/backend/src/remote/webfinger.ts
index f63fd03628..9d3bfab24b 100644
--- a/packages/backend/src/remote/webfinger.ts
+++ b/packages/backend/src/remote/webfinger.ts
@@ -1,6 +1,6 @@
-import { URL } from 'url';
-import { getJson } from '@/misc/fetch';
-import { query as urlQuery } from '@/prelude/url';
+import { URL } from 'node:url';
+import { getJson } from '@/misc/fetch.js';
+import { query as urlQuery } from '@/prelude/url.js';
type ILink = {
href: string;