Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
026e989
fix(deps): update [backend] update dependencies
renovate[bot] May 26, 2025
aa36ebb
update approve builds
kakkokari-gtyih May 27, 2025
5d043b0
update minimum node version for testing
kakkokari-gtyih May 27, 2025
6c1b175
remove types/bcryptjs
kakkokari-gtyih May 27, 2025
e4f85f5
fix(backend): remove removed type previously exported from file-type
kakkokari-gtyih May 27, 2025
1b999c6
migrate webauthnservice
kakkokari-gtyih May 27, 2025
46edd40
Update Changelog
kakkokari-gtyih May 27, 2025
90e2dfe
update deps (MisskeyIO#889)
u1-liquid Jan 14, 2025
70415bd
use main redis for lock
kakkokari-gtyih May 27, 2025
179b18b
spdx
kakkokari-gtyih May 27, 2025
d381eaa
tweak max retries
kakkokari-gtyih May 27, 2025
7b53b88
[ci skip] dedupe
kakkokari-gtyih May 27, 2025
50a5e7a
Merge remote-tracking branch 'msky/develop' into renovate/major-backe…
kakkokari-gtyih May 27, 2025
5c78dd3
attempt to fix test
kakkokari-gtyih May 27, 2025
c508318
attempt to fix test
kakkokari-gtyih May 27, 2025
263f0a8
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih May 27, 2025
737019c
Revert "attempt to fix test"
kakkokari-gtyih May 27, 2025
54f1fc3
temporarily roll back simonjs/fake-timers to v11.3.1
kakkokari-gtyih May 27, 2025
104505f
Merge branch 'renovate/major-backend-update-dependencies' of https://…
kakkokari-gtyih May 27, 2025
ac61d49
Revert "temporarily roll back simonjs/fake-timers to v11.3.1"
kakkokari-gtyih May 27, 2025
deebcb2
migrate sinonjs/fake-timers
kakkokari-gtyih May 27, 2025
66f7e5a
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih May 29, 2025
c2b1718
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Jun 2, 2025
40cfaf2
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Jun 13, 2025
ec92919
update deps / migrate jest 30
kakkokari-gtyih Jun 13, 2025
3dbeb46
fix test
kakkokari-gtyih Jun 13, 2025
1137287
fix: update node.js min version to 20.18.1
kakkokari-gtyih Jun 13, 2025
335c77e
fix: rollback nsfwjs to 4.2.0
kakkokari-gtyih Jun 13, 2025
7f425dd
fix
kakkokari-gtyih Jun 13, 2025
a629985
attempt to fix test
kakkokari-gtyih Jun 13, 2025
0770ee8
attempt to fix test
kakkokari-gtyih Jun 13, 2025
c306cdb
attempt to fix test
kakkokari-gtyih Jun 13, 2025
cb6d054
attempt to fix test
kakkokari-gtyih Jun 14, 2025
b2edff4
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Jul 17, 2025
e47e6fc
Merge branch 'develop' into renovate/major-backend-update-dependencies
syuilo Aug 9, 2025
37207f6
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Oct 8, 2025
789bdd2
revert jest 30 related changes
kakkokari-gtyih Oct 8, 2025
e6a960e
update deps
kakkokari-gtyih Oct 8, 2025
c524258
fix test
kakkokari-gtyih Oct 8, 2025
71550ea
fix: rollback nsfwjs to 4.2.0
kakkokari-gtyih Oct 8, 2025
e2ca887
fix: rollback sharp to 0.33
kakkokari-gtyih Oct 8, 2025
21d04e2
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Nov 1, 2025
f0d7a9d
update deps
kakkokari-gtyih Nov 1, 2025
689b20b
fix: rollback sharp-read-bmp to 1.2.0
kakkokari-gtyih Nov 1, 2025
de55462
fix: rollback nsfwjs to 4.2.0
kakkokari-gtyih Nov 1, 2025
a49f294
recreate lockfile
kakkokari-gtyih Nov 1, 2025
c1c21e2
update deps
kakkokari-gtyih Nov 25, 2025
9aa3e5d
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Nov 25, 2025
7ae0aa5
fix: rollback sharp-read-bmp to 1.2.0
kakkokari-gtyih Nov 25, 2025
bc63e36
fix: rollback jsdom, parse5
kakkokari-gtyih Nov 25, 2025
3ce3bac
fix: rollback jsdom types
kakkokari-gtyih Nov 25, 2025
707e264
fix [ci skip]
kakkokari-gtyih Nov 25, 2025
607e4ed
Merge branch 'develop' into renovate/major-backend-update-dependencies
kakkokari-gtyih Nov 29, 2025
d8dc7e2
run pnpm dedupe
kakkokari-gtyih Nov 29, 2025
cf88d23
update deps
kakkokari-gtyih Nov 29, 2025
fc43017
Merge remote-tracking branch 'msky/develop' into renovate/major-backe…
kakkokari-gtyih Nov 29, 2025
8b82f88
run pnpm dedupe [ci skip]
kakkokari-gtyih Nov 29, 2025
8429e9f
Update Changelog [ci skip]
kakkokari-gtyih Nov 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
### Server
- Enhance: メモリ使用量を削減しました
- Enhance: ActivityPubアクティビティを送信する際のパフォーマンス向上
- Enhance: 依存関係の更新


## 2025.11.1
Expand Down
89 changes: 44 additions & 45 deletions packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@
},
"optionalDependencies": {
"@swc/core-android-arm64": "1.3.11",
"@swc/core-darwin-arm64": "1.15.2",
"@swc/core-darwin-x64": "1.15.2",
"@swc/core-darwin-arm64": "1.15.3",
"@swc/core-darwin-x64": "1.15.3",
"@swc/core-freebsd-x64": "1.3.11",
"@swc/core-linux-arm-gnueabihf": "1.15.2",
"@swc/core-linux-arm64-gnu": "1.15.2",
"@swc/core-linux-arm64-musl": "1.15.2",
"@swc/core-linux-x64-gnu": "1.15.2",
"@swc/core-linux-x64-musl": "1.15.2",
"@swc/core-win32-arm64-msvc": "1.15.2",
"@swc/core-win32-ia32-msvc": "1.15.2",
"@swc/core-win32-x64-msvc": "1.15.2",
"@swc/core-linux-arm-gnueabihf": "1.15.3",
"@swc/core-linux-arm64-gnu": "1.15.3",
"@swc/core-linux-arm64-musl": "1.15.3",
"@swc/core-linux-x64-gnu": "1.15.3",
"@swc/core-linux-x64-musl": "1.15.3",
"@swc/core-win32-arm64-msvc": "1.15.3",
"@swc/core-win32-ia32-msvc": "1.15.3",
"@swc/core-win32-x64-msvc": "1.15.3",
"@tensorflow/tfjs": "4.22.0",
"@tensorflow/tfjs-node": "4.22.0",
"bufferutil": "4.0.9",
Expand All @@ -70,17 +70,17 @@
"utf-8-validate": "6.0.5"
},
"dependencies": {
"@aws-sdk/client-s3": "3.936.0",
"@aws-sdk/lib-storage": "3.936.0",
"@aws-sdk/client-s3": "3.937.0",
"@aws-sdk/lib-storage": "3.937.0",
"@discordapp/twemoji": "16.0.1",
"@fastify/accepts": "5.0.3",
"@fastify/cookie": "11.0.2",
"@fastify/cors": "10.1.0",
"@fastify/cors": "11.1.0",
"@fastify/express": "4.0.2",
"@fastify/http-proxy": "10.0.2",
"@fastify/http-proxy": "11.3.0",
"@fastify/multipart": "9.3.0",
"@fastify/static": "8.3.0",
"@fastify/view": "10.0.2",
"@fastify/view": "11.1.1",
"@misskey-dev/sharp-read-bmp": "1.2.0",
"@misskey-dev/summaly": "5.2.5",
"@napi-rs/canvas": "0.1.82",
Expand All @@ -90,33 +90,33 @@
"@peertube/http-signature": "1.7.0",
"@sentry/node": "10.26.0",
"@sentry/profiling-node": "10.26.0",
"@simplewebauthn/server": "12.0.0",
"@sinonjs/fake-timers": "11.3.1",
"@smithy/node-http-handler": "2.5.0",
"@simplewebauthn/server": "13.2.2",
"@sinonjs/fake-timers": "15.0.0",
"@smithy/node-http-handler": "4.4.5",
"@swc/cli": "0.7.9",
"@swc/core": "1.15.2",
"@swc/core": "1.15.3",
"@twemoji/parser": "16.0.0",
"@types/redis-info": "3.0.3",
"accepts": "1.3.8",
"ajv": "8.17.1",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"bcryptjs": "2.4.3",
"bcryptjs": "3.0.3",
"blurhash": "2.0.5",
"body-parser": "1.20.3",
"bullmq": "5.63.2",
"body-parser": "2.2.0",
"bullmq": "5.64.1",
"cacheable-lookup": "7.0.0",
"cbor": "9.0.2",
"cbor": "10.0.11",
"chalk": "5.6.2",
"chalk-template": "1.1.2",
"chokidar": "4.0.3",
"color-convert": "2.0.1",
"content-disposition": "0.5.4",
"date-fns": "2.30.0",
"color-convert": "3.1.3",
"content-disposition": "1.0.1",
"date-fns": "4.1.0",
"deep-email-validator": "0.1.21",
"fastify": "5.6.2",
"fastify-raw-body": "5.0.0",
"feed": "4.2.2",
"feed": "5.1.0",
"file-type": "21.1.1",
"fluent-ffmpeg": "2.1.3",
"form-data": "4.0.5",
Expand All @@ -126,16 +126,16 @@
"ioredis": "5.8.2",
"ip-cidr": "4.0.2",
"ipaddr.js": "2.2.0",
"is-svg": "5.1.0",
"is-svg": "6.1.0",
"js-yaml": "4.1.1",
"json5": "2.2.3",
"jsonld": "8.3.3",
"jsonld": "9.0.0",
"jsrsasign": "11.1.0",
"juice": "11.0.3",
"meilisearch": "0.54.0",
"mfm-js": "0.25.0",
"microformats-parser": "2.0.4",
"mime-types": "2.1.35",
"mime-types": "3.0.2",
"misskey-js": "workspace:*",
"misskey-reversi": "workspace:*",
"ms": "3.0.0-canary.202508261828",
Expand All @@ -151,7 +151,7 @@
"os-utils": "0.0.14",
"otpauth": "9.4.1",
"pg": "8.16.3",
"pkce-challenge": "4.1.0",
"pkce-challenge": "5.0.0",
"probe-image-size": "7.2.3",
"promise-limit": "2.7.0",
"pug": "3.0.3",
Expand All @@ -160,13 +160,12 @@
"ratelimiter": "3.4.1",
"re2": "1.22.3",
"redis-info": "3.1.0",
"redis-lock": "0.1.4",
"reflect-metadata": "0.2.2",
"rename": "1.0.4",
"rss-parser": "3.13.0",
"rxjs": "7.8.2",
"sanitize-html": "2.17.0",
"secure-json-parse": "3.0.2",
"secure-json-parse": "4.1.0",
"semver": "7.7.3",
"sharp": "0.33.5",
"slacc": "0.0.10",
Expand All @@ -179,21 +178,20 @@
"tsconfig-paths": "4.2.0",
"typeorm": "0.3.27",
"typescript": "5.9.3",
"ulid": "2.4.0",
"ulid": "3.0.1",
"vary": "1.1.2",
"web-push": "3.6.7",
"ws": "8.18.3",
"xev": "3.0.2"
},
"devDependencies": {
"@jest/globals": "29.7.0",
"@nestjs/platform-express": "10.4.20",
"@nestjs/platform-express": "11.1.9",
"@sentry/vue": "10.26.0",
"@simplewebauthn/types": "12.0.0",
"@swc/jest": "0.2.39",
"@types/accepts": "1.3.7",
"@types/archiver": "6.0.4",
"@types/bcryptjs": "2.4.6",
"@types/archiver": "7.0.0",
"@types/body-parser": "1.19.6",
"@types/color-convert": "2.0.4",
"@types/content-disposition": "0.5.9",
Expand All @@ -203,10 +201,10 @@
"@types/js-yaml": "4.0.9",
"@types/jsonld": "1.5.15",
"@types/jsrsasign": "10.5.15",
"@types/mime-types": "2.1.4",
"@types/ms": "0.7.34",
"@types/mime-types": "3.0.1",
"@types/ms": "2.1.0",
"@types/node": "24.10.1",
"@types/nodemailer": "6.4.21",
"@types/nodemailer": "7.0.4",
"@types/oauth": "0.9.6",
"@types/oauth2orize": "1.11.5",
"@types/oauth2orize-pkce": "0.1.2",
Expand All @@ -219,7 +217,7 @@
"@types/sanitize-html": "2.16.0",
"@types/semver": "7.7.1",
"@types/simple-oauth2": "5.0.7",
"@types/sinonjs__fake-timers": "8.1.5",
"@types/sinonjs__fake-timers": "15.0.1",
"@types/supertest": "6.0.3",
"@types/tinycolor2": "1.4.6",
"@types/tmp": "0.2.6",
Expand All @@ -229,14 +227,15 @@
"@typescript-eslint/eslint-plugin": "8.47.0",
"@typescript-eslint/parser": "8.47.0",
"aws-sdk-client-mock": "4.1.0",
"cross-env": "7.0.3",
"cross-env": "10.1.0",
"eslint-plugin-import": "2.32.0",
"execa": "8.0.1",
"fkill": "9.0.0",
"execa": "9.6.0",
"fkill": "10.0.1",
"jest": "29.7.0",
"jest-mock": "29.7.0",
"jest-util": "29.7.0",
"nodemon": "3.1.11",
"pid-port": "1.0.2",
"pid-port": "2.0.0",
"simple-oauth2": "5.1.0",
"supertest": "7.1.4"
}
Expand Down
13 changes: 0 additions & 13 deletions packages/backend/src/@types/redis-lock.d.ts

This file was deleted.

44 changes: 0 additions & 44 deletions packages/backend/src/core/AppLockService.ts

This file was deleted.

6 changes: 0 additions & 6 deletions packages/backend/src/core/CoreModule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import { AccountUpdateService } from './AccountUpdateService.js';
import { AiService } from './AiService.js';
import { AnnouncementService } from './AnnouncementService.js';
import { AntennaService } from './AntennaService.js';
import { AppLockService } from './AppLockService.js';
import { AchievementService } from './AchievementService.js';
import { AvatarDecorationService } from './AvatarDecorationService.js';
import { CaptchaService } from './CaptchaService.js';
Expand Down Expand Up @@ -166,7 +165,6 @@ const $AccountUpdateService: Provider = { provide: 'AccountUpdateService', useEx
const $AiService: Provider = { provide: 'AiService', useExisting: AiService };
const $AnnouncementService: Provider = { provide: 'AnnouncementService', useExisting: AnnouncementService };
const $AntennaService: Provider = { provide: 'AntennaService', useExisting: AntennaService };
const $AppLockService: Provider = { provide: 'AppLockService', useExisting: AppLockService };
const $AchievementService: Provider = { provide: 'AchievementService', useExisting: AchievementService };
const $AvatarDecorationService: Provider = { provide: 'AvatarDecorationService', useExisting: AvatarDecorationService };
const $CaptchaService: Provider = { provide: 'CaptchaService', useExisting: CaptchaService };
Expand Down Expand Up @@ -320,7 +318,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AiService,
AnnouncementService,
AntennaService,
AppLockService,
AchievementService,
AvatarDecorationService,
CaptchaService,
Expand Down Expand Up @@ -470,7 +467,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AiService,
$AnnouncementService,
$AntennaService,
$AppLockService,
$AchievementService,
$AvatarDecorationService,
$CaptchaService,
Expand Down Expand Up @@ -621,7 +617,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AiService,
AnnouncementService,
AntennaService,
AppLockService,
AchievementService,
AvatarDecorationService,
CaptchaService,
Expand Down Expand Up @@ -770,7 +765,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AiService,
$AnnouncementService,
$AntennaService,
$AppLockService,
$AchievementService,
$AvatarDecorationService,
$CaptchaService,
Expand Down
1 change: 0 additions & 1 deletion packages/backend/src/core/WebAuthnService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ export class WebAuthnService {
userID: isoUint8Array.fromUTF8String(userId),
userName: userName,
userDisplayName: userDisplayName,
attestationType: 'indirect',
excludeCredentials: keys.map(key => (<{ id: string; transports?: AuthenticatorTransportFuture[]; }>{
id: key.id,
transports: key.transports ?? undefined,
Expand Down
14 changes: 7 additions & 7 deletions packages/backend/src/core/activitypub/ApInboxService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import { Inject, Injectable } from '@nestjs/common';
import { In } from 'typeorm';
import * as Redis from 'ioredis';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
import { UserFollowingService } from '@/core/UserFollowingService.js';
Expand All @@ -14,8 +15,8 @@ import { NotePiningService } from '@/core/NotePiningService.js';
import { UserBlockingService } from '@/core/UserBlockingService.js';
import { NoteDeleteService } from '@/core/NoteDeleteService.js';
import { NoteCreateService } from '@/core/NoteCreateService.js';
import { acquireApObjectLock } from '@/misc/distributed-lock.js';
import { concat, toArray, toSingle, unique } from '@/misc/prelude/array.js';
import { AppLockService } from '@/core/AppLockService.js';
import type Logger from '@/logger.js';
import { IdService } from '@/core/IdService.js';
import { StatusError } from '@/misc/status-error.js';
Expand Down Expand Up @@ -48,8 +49,8 @@ export class ApInboxService {
@Inject(DI.config)
private config: Config,

@Inject(DI.meta)
private meta: MiMeta,
@Inject(DI.redis)
private redisClient: Redis.Redis,

@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
Expand All @@ -76,7 +77,6 @@ export class ApInboxService {
private userBlockingService: UserBlockingService,
private noteCreateService: NoteCreateService,
private noteDeleteService: NoteDeleteService,
private appLockService: AppLockService,
private apResolverService: ApResolverService,
private apDbResolverService: ApDbResolverService,
private apLoggerService: ApLoggerService,
Expand Down Expand Up @@ -311,7 +311,7 @@ export class ApInboxService {
// アナウンス先が許可されているかチェック
if (!this.utilityService.isFederationAllowedUri(uri)) return;

const unlock = await this.appLockService.getApLock(uri);
const unlock = await acquireApObjectLock(this.redisClient, uri);

try {
// 既に同じURIを持つものが登録されていないかチェック
Expand Down Expand Up @@ -438,7 +438,7 @@ export class ApInboxService {
}
}

const unlock = await this.appLockService.getApLock(uri);
const unlock = await acquireApObjectLock(this.redisClient, uri);

try {
const exist = await this.apNoteService.fetchNote(note);
Expand Down Expand Up @@ -522,7 +522,7 @@ export class ApInboxService {
private async deleteNote(actor: MiRemoteUser, uri: string): Promise<string> {
this.logger.info(`Deleting the Note: ${uri}`);

const unlock = await this.appLockService.getApLock(uri);
const unlock = await acquireApObjectLock(this.redisClient, uri);

try {
const note = await this.apDbResolverService.getNoteFromApId(uri);
Expand Down
Loading