Skip to content

Commit 0455187

Browse files
renovate[bot]kakkokari-gtyihu1-liquidsyuilo
authored
fix(deps): update [backend] update dependencies (major) (#16099)
* fix(deps): update [backend] update dependencies * update approve builds * update minimum node version for testing * remove types/bcryptjs * fix(backend): remove removed type previously exported from file-type * migrate webauthnservice * Update Changelog * update deps (MisskeyIO#889) - メンテナンスされないredis-lockを自前実装に変更 - 既にロックされている場合のリトライ間隔を調整 * use main redis for lock * spdx * tweak max retries * [ci skip] dedupe * attempt to fix test * attempt to fix test * Revert "attempt to fix test" This reverts commit c508318. * temporarily roll back simonjs/fake-timers to v11.3.1 * Revert "temporarily roll back simonjs/fake-timers to v11.3.1" This reverts commit 54f1fc3. * migrate sinonjs/fake-timers * update deps / migrate jest 30 * fix test * fix: update node.js min version to 20.18.1 * fix: rollback nsfwjs to 4.2.0 * fix * attempt to fix test * attempt to fix test * attempt to fix test * attempt to fix test * revert jest 30 related changes * update deps * fix test * fix: rollback nsfwjs to 4.2.0 * fix: rollback sharp to 0.33 * update deps * fix: rollback sharp-read-bmp to 1.2.0 * fix: rollback nsfwjs to 4.2.0 * recreate lockfile * update deps * fix: rollback sharp-read-bmp to 1.2.0 * fix: rollback jsdom, parse5 * fix: rollback jsdom types * fix [ci skip] * run pnpm dedupe * update deps * run pnpm dedupe [ci skip] * Update Changelog [ci skip] --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com> Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
1 parent 1ae8e79 commit 0455187

38 files changed

+879
-740
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
### Server
1010
- Enhance: メモリ使用量を削減しました
1111
- Enhance: ActivityPubアクティビティを送信する際のパフォーマンス向上
12+
- Enhance: 依存関係の更新
1213

1314

1415
## 2025.11.1

packages/backend/package.json

Lines changed: 44 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
},
4141
"optionalDependencies": {
4242
"@swc/core-android-arm64": "1.3.11",
43-
"@swc/core-darwin-arm64": "1.15.2",
44-
"@swc/core-darwin-x64": "1.15.2",
43+
"@swc/core-darwin-arm64": "1.15.3",
44+
"@swc/core-darwin-x64": "1.15.3",
4545
"@swc/core-freebsd-x64": "1.3.11",
46-
"@swc/core-linux-arm-gnueabihf": "1.15.2",
47-
"@swc/core-linux-arm64-gnu": "1.15.2",
48-
"@swc/core-linux-arm64-musl": "1.15.2",
49-
"@swc/core-linux-x64-gnu": "1.15.2",
50-
"@swc/core-linux-x64-musl": "1.15.2",
51-
"@swc/core-win32-arm64-msvc": "1.15.2",
52-
"@swc/core-win32-ia32-msvc": "1.15.2",
53-
"@swc/core-win32-x64-msvc": "1.15.2",
46+
"@swc/core-linux-arm-gnueabihf": "1.15.3",
47+
"@swc/core-linux-arm64-gnu": "1.15.3",
48+
"@swc/core-linux-arm64-musl": "1.15.3",
49+
"@swc/core-linux-x64-gnu": "1.15.3",
50+
"@swc/core-linux-x64-musl": "1.15.3",
51+
"@swc/core-win32-arm64-msvc": "1.15.3",
52+
"@swc/core-win32-ia32-msvc": "1.15.3",
53+
"@swc/core-win32-x64-msvc": "1.15.3",
5454
"@tensorflow/tfjs": "4.22.0",
5555
"@tensorflow/tfjs-node": "4.22.0",
5656
"bufferutil": "4.0.9",
@@ -70,17 +70,17 @@
7070
"utf-8-validate": "6.0.5"
7171
},
7272
"dependencies": {
73-
"@aws-sdk/client-s3": "3.936.0",
74-
"@aws-sdk/lib-storage": "3.936.0",
73+
"@aws-sdk/client-s3": "3.937.0",
74+
"@aws-sdk/lib-storage": "3.937.0",
7575
"@discordapp/twemoji": "16.0.1",
7676
"@fastify/accepts": "5.0.3",
7777
"@fastify/cookie": "11.0.2",
78-
"@fastify/cors": "10.1.0",
78+
"@fastify/cors": "11.1.0",
7979
"@fastify/express": "4.0.2",
80-
"@fastify/http-proxy": "10.0.2",
80+
"@fastify/http-proxy": "11.3.0",
8181
"@fastify/multipart": "9.3.0",
8282
"@fastify/static": "8.3.0",
83-
"@fastify/view": "10.0.2",
83+
"@fastify/view": "11.1.1",
8484
"@misskey-dev/sharp-read-bmp": "1.2.0",
8585
"@misskey-dev/summaly": "5.2.5",
8686
"@napi-rs/canvas": "0.1.82",
@@ -90,33 +90,33 @@
9090
"@peertube/http-signature": "1.7.0",
9191
"@sentry/node": "10.26.0",
9292
"@sentry/profiling-node": "10.26.0",
93-
"@simplewebauthn/server": "12.0.0",
94-
"@sinonjs/fake-timers": "11.3.1",
95-
"@smithy/node-http-handler": "2.5.0",
93+
"@simplewebauthn/server": "13.2.2",
94+
"@sinonjs/fake-timers": "15.0.0",
95+
"@smithy/node-http-handler": "4.4.5",
9696
"@swc/cli": "0.7.9",
97-
"@swc/core": "1.15.2",
97+
"@swc/core": "1.15.3",
9898
"@twemoji/parser": "16.0.0",
9999
"@types/redis-info": "3.0.3",
100100
"accepts": "1.3.8",
101101
"ajv": "8.17.1",
102102
"archiver": "7.0.1",
103103
"async-mutex": "0.5.0",
104-
"bcryptjs": "2.4.3",
104+
"bcryptjs": "3.0.3",
105105
"blurhash": "2.0.5",
106-
"body-parser": "1.20.3",
107-
"bullmq": "5.63.2",
106+
"body-parser": "2.2.0",
107+
"bullmq": "5.64.1",
108108
"cacheable-lookup": "7.0.0",
109-
"cbor": "9.0.2",
109+
"cbor": "10.0.11",
110110
"chalk": "5.6.2",
111111
"chalk-template": "1.1.2",
112112
"chokidar": "4.0.3",
113-
"color-convert": "2.0.1",
114-
"content-disposition": "0.5.4",
115-
"date-fns": "2.30.0",
113+
"color-convert": "3.1.3",
114+
"content-disposition": "1.0.1",
115+
"date-fns": "4.1.0",
116116
"deep-email-validator": "0.1.21",
117117
"fastify": "5.6.2",
118118
"fastify-raw-body": "5.0.0",
119-
"feed": "4.2.2",
119+
"feed": "5.1.0",
120120
"file-type": "21.1.1",
121121
"fluent-ffmpeg": "2.1.3",
122122
"form-data": "4.0.5",
@@ -126,16 +126,16 @@
126126
"ioredis": "5.8.2",
127127
"ip-cidr": "4.0.2",
128128
"ipaddr.js": "2.2.0",
129-
"is-svg": "5.1.0",
129+
"is-svg": "6.1.0",
130130
"js-yaml": "4.1.1",
131131
"json5": "2.2.3",
132-
"jsonld": "8.3.3",
132+
"jsonld": "9.0.0",
133133
"jsrsasign": "11.1.0",
134134
"juice": "11.0.3",
135135
"meilisearch": "0.54.0",
136136
"mfm-js": "0.25.0",
137137
"microformats-parser": "2.0.4",
138-
"mime-types": "2.1.35",
138+
"mime-types": "3.0.2",
139139
"misskey-js": "workspace:*",
140140
"misskey-reversi": "workspace:*",
141141
"ms": "3.0.0-canary.202508261828",
@@ -151,7 +151,7 @@
151151
"os-utils": "0.0.14",
152152
"otpauth": "9.4.1",
153153
"pg": "8.16.3",
154-
"pkce-challenge": "4.1.0",
154+
"pkce-challenge": "5.0.0",
155155
"probe-image-size": "7.2.3",
156156
"promise-limit": "2.7.0",
157157
"pug": "3.0.3",
@@ -160,13 +160,12 @@
160160
"ratelimiter": "3.4.1",
161161
"re2": "1.22.3",
162162
"redis-info": "3.1.0",
163-
"redis-lock": "0.1.4",
164163
"reflect-metadata": "0.2.2",
165164
"rename": "1.0.4",
166165
"rss-parser": "3.13.0",
167166
"rxjs": "7.8.2",
168167
"sanitize-html": "2.17.0",
169-
"secure-json-parse": "3.0.2",
168+
"secure-json-parse": "4.1.0",
170169
"semver": "7.7.3",
171170
"sharp": "0.33.5",
172171
"slacc": "0.0.10",
@@ -179,21 +178,20 @@
179178
"tsconfig-paths": "4.2.0",
180179
"typeorm": "0.3.27",
181180
"typescript": "5.9.3",
182-
"ulid": "2.4.0",
181+
"ulid": "3.0.1",
183182
"vary": "1.1.2",
184183
"web-push": "3.6.7",
185184
"ws": "8.18.3",
186185
"xev": "3.0.2"
187186
},
188187
"devDependencies": {
189188
"@jest/globals": "29.7.0",
190-
"@nestjs/platform-express": "10.4.20",
189+
"@nestjs/platform-express": "11.1.9",
191190
"@sentry/vue": "10.26.0",
192191
"@simplewebauthn/types": "12.0.0",
193192
"@swc/jest": "0.2.39",
194193
"@types/accepts": "1.3.7",
195-
"@types/archiver": "6.0.4",
196-
"@types/bcryptjs": "2.4.6",
194+
"@types/archiver": "7.0.0",
197195
"@types/body-parser": "1.19.6",
198196
"@types/color-convert": "2.0.4",
199197
"@types/content-disposition": "0.5.9",
@@ -203,10 +201,10 @@
203201
"@types/js-yaml": "4.0.9",
204202
"@types/jsonld": "1.5.15",
205203
"@types/jsrsasign": "10.5.15",
206-
"@types/mime-types": "2.1.4",
207-
"@types/ms": "0.7.34",
204+
"@types/mime-types": "3.0.1",
205+
"@types/ms": "2.1.0",
208206
"@types/node": "24.10.1",
209-
"@types/nodemailer": "6.4.21",
207+
"@types/nodemailer": "7.0.4",
210208
"@types/oauth": "0.9.6",
211209
"@types/oauth2orize": "1.11.5",
212210
"@types/oauth2orize-pkce": "0.1.2",
@@ -219,7 +217,7 @@
219217
"@types/sanitize-html": "2.16.0",
220218
"@types/semver": "7.7.1",
221219
"@types/simple-oauth2": "5.0.7",
222-
"@types/sinonjs__fake-timers": "8.1.5",
220+
"@types/sinonjs__fake-timers": "15.0.1",
223221
"@types/supertest": "6.0.3",
224222
"@types/tinycolor2": "1.4.6",
225223
"@types/tmp": "0.2.6",
@@ -229,14 +227,15 @@
229227
"@typescript-eslint/eslint-plugin": "8.47.0",
230228
"@typescript-eslint/parser": "8.47.0",
231229
"aws-sdk-client-mock": "4.1.0",
232-
"cross-env": "7.0.3",
230+
"cross-env": "10.1.0",
233231
"eslint-plugin-import": "2.32.0",
234-
"execa": "8.0.1",
235-
"fkill": "9.0.0",
232+
"execa": "9.6.0",
233+
"fkill": "10.0.1",
236234
"jest": "29.7.0",
237235
"jest-mock": "29.7.0",
236+
"jest-util": "29.7.0",
238237
"nodemon": "3.1.11",
239-
"pid-port": "1.0.2",
238+
"pid-port": "2.0.0",
240239
"simple-oauth2": "5.1.0",
241240
"supertest": "7.1.4"
242241
}

packages/backend/src/@types/redis-lock.d.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/backend/src/core/AppLockService.ts

Lines changed: 0 additions & 44 deletions
This file was deleted.

packages/backend/src/core/CoreModule.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { AccountUpdateService } from './AccountUpdateService.js';
2121
import { AiService } from './AiService.js';
2222
import { AnnouncementService } from './AnnouncementService.js';
2323
import { AntennaService } from './AntennaService.js';
24-
import { AppLockService } from './AppLockService.js';
2524
import { AchievementService } from './AchievementService.js';
2625
import { AvatarDecorationService } from './AvatarDecorationService.js';
2726
import { CaptchaService } from './CaptchaService.js';
@@ -166,7 +165,6 @@ const $AccountUpdateService: Provider = { provide: 'AccountUpdateService', useEx
166165
const $AiService: Provider = { provide: 'AiService', useExisting: AiService };
167166
const $AnnouncementService: Provider = { provide: 'AnnouncementService', useExisting: AnnouncementService };
168167
const $AntennaService: Provider = { provide: 'AntennaService', useExisting: AntennaService };
169-
const $AppLockService: Provider = { provide: 'AppLockService', useExisting: AppLockService };
170168
const $AchievementService: Provider = { provide: 'AchievementService', useExisting: AchievementService };
171169
const $AvatarDecorationService: Provider = { provide: 'AvatarDecorationService', useExisting: AvatarDecorationService };
172170
const $CaptchaService: Provider = { provide: 'CaptchaService', useExisting: CaptchaService };
@@ -320,7 +318,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
320318
AiService,
321319
AnnouncementService,
322320
AntennaService,
323-
AppLockService,
324321
AchievementService,
325322
AvatarDecorationService,
326323
CaptchaService,
@@ -470,7 +467,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
470467
$AiService,
471468
$AnnouncementService,
472469
$AntennaService,
473-
$AppLockService,
474470
$AchievementService,
475471
$AvatarDecorationService,
476472
$CaptchaService,
@@ -621,7 +617,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
621617
AiService,
622618
AnnouncementService,
623619
AntennaService,
624-
AppLockService,
625620
AchievementService,
626621
AvatarDecorationService,
627622
CaptchaService,
@@ -770,7 +765,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
770765
$AiService,
771766
$AnnouncementService,
772767
$AntennaService,
773-
$AppLockService,
774768
$AchievementService,
775769
$AvatarDecorationService,
776770
$CaptchaService,

packages/backend/src/core/WebAuthnService.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ export class WebAuthnService {
6666
userID: isoUint8Array.fromUTF8String(userId),
6767
userName: userName,
6868
userDisplayName: userDisplayName,
69-
attestationType: 'indirect',
7069
excludeCredentials: keys.map(key => (<{ id: string; transports?: AuthenticatorTransportFuture[]; }>{
7170
id: key.id,
7271
transports: key.transports ?? undefined,

packages/backend/src/core/activitypub/ApInboxService.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { Inject, Injectable } from '@nestjs/common';
77
import { In } from 'typeorm';
8+
import * as Redis from 'ioredis';
89
import { DI } from '@/di-symbols.js';
910
import type { Config } from '@/config.js';
1011
import { UserFollowingService } from '@/core/UserFollowingService.js';
@@ -14,8 +15,8 @@ import { NotePiningService } from '@/core/NotePiningService.js';
1415
import { UserBlockingService } from '@/core/UserBlockingService.js';
1516
import { NoteDeleteService } from '@/core/NoteDeleteService.js';
1617
import { NoteCreateService } from '@/core/NoteCreateService.js';
18+
import { acquireApObjectLock } from '@/misc/distributed-lock.js';
1719
import { concat, toArray, toSingle, unique } from '@/misc/prelude/array.js';
18-
import { AppLockService } from '@/core/AppLockService.js';
1920
import type Logger from '@/logger.js';
2021
import { IdService } from '@/core/IdService.js';
2122
import { StatusError } from '@/misc/status-error.js';
@@ -48,8 +49,8 @@ export class ApInboxService {
4849
@Inject(DI.config)
4950
private config: Config,
5051

51-
@Inject(DI.meta)
52-
private meta: MiMeta,
52+
@Inject(DI.redis)
53+
private redisClient: Redis.Redis,
5354

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

314-
const unlock = await this.appLockService.getApLock(uri);
314+
const unlock = await acquireApObjectLock(this.redisClient, uri);
315315

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

441-
const unlock = await this.appLockService.getApLock(uri);
441+
const unlock = await acquireApObjectLock(this.redisClient, uri);
442442

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

525-
const unlock = await this.appLockService.getApLock(uri);
525+
const unlock = await acquireApObjectLock(this.redisClient, uri);
526526

527527
try {
528528
const note = await this.apDbResolverService.getNoteFromApId(uri);

0 commit comments

Comments
 (0)