Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update deps #889

Merged
merged 1 commit into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"type": "git",
"url": "https://github.com/MisskeyIO/misskey.git"
},
"packageManager": "[email protected].3",
"packageManager": "[email protected].4",
"workspaces": [
"packages/frontend",
"packages/backend",
Expand Down Expand Up @@ -63,19 +63,19 @@
"cssnano": "7.0.6",
"execa": "9.5.2",
"js-yaml": "4.1.0",
"postcss": "8.4.49",
"postcss": "8.5.1",
"terser": "5.37.0",
"typescript": "5.7.3"
},
"devDependencies": {
"@types/node": "22.10.5",
"@types/node": "22.10.6",
"@typescript-eslint/eslint-plugin": "7.10.0",
"@typescript-eslint/parser": "7.10.0",
"cross-env": "7.0.3",
"cypress": "13.17.0",
"eslint": "8.57.1",
"ncp": "2.0.0",
"start-server-and-test": "2.0.9"
"start-server-and-test": "2.0.10"
},
"optionalDependencies": {
"@tensorflow/tfjs-core": "4.22.0"
Expand Down
7 changes: 3 additions & 4 deletions packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
"bcryptjs": "2.4.3",
"blurhash": "2.0.5",
"body-parser": "1.20.3",
"bullmq": "5.34.9",
"bullmq": "5.34.10",
"cacheable-lookup": "7.0.0",
"cbor": "10.0.3",
"chalk": "5.4.1",
Expand Down Expand Up @@ -131,7 +131,7 @@
"json5": "2.2.3",
"jsonld": "8.3.3",
"jsrsasign": "11.1.0",
"meilisearch": "0.47.0",
"meilisearch": "0.48.0",
"mfm-js": "0.24.0",
"microformats-parser": "2.0.2",
"mime-types": "2.1.35",
Expand Down Expand Up @@ -163,7 +163,6 @@
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
"re2": "1.21.4",
"redis-lock": "0.1.4",
"reflect-metadata": "0.2.2",
"rename": "1.0.4",
"rss-parser": "3.13.0",
Expand Down Expand Up @@ -210,7 +209,7 @@
"@types/jsrsasign": "10.5.15",
"@types/mime-types": "2.1.4",
"@types/ms": "0.7.34",
"@types/node": "22.10.5",
"@types/node": "22.10.6",
"@types/node-forge": "1.3.11",
"@types/nodemailer": "6.4.17",
"@types/oauth": "0.9.6",
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 @@ -10,7 +10,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 @@ -149,7 +148,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 @@ -292,7 +290,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AiService,
AnnouncementService,
AntennaService,
AppLockService,
AchievementService,
AvatarDecorationService,
CaptchaService,
Expand Down Expand Up @@ -429,7 +426,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AiService,
$AnnouncementService,
$AntennaService,
$AppLockService,
$AchievementService,
$AvatarDecorationService,
$CaptchaService,
Expand Down Expand Up @@ -567,7 +563,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AiService,
AnnouncementService,
AntennaService,
AppLockService,
AchievementService,
AvatarDecorationService,
CaptchaService,
Expand Down Expand Up @@ -703,7 +698,6 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AiService,
$AnnouncementService,
$AntennaService,
$AppLockService,
$AchievementService,
$AvatarDecorationService,
$CaptchaService,
Expand Down
5 changes: 4 additions & 1 deletion packages/backend/src/core/QueueService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,10 @@ export class QueueService {

@bindThis
public createReportAbuseJob(report: MiAbuseUserReport) {
return this.dbQueue.add('reportAbuse', report);
return this.dbQueue.add('reportAbuse', report, {
removeOnComplete: true,
removeOnFail: true,
});
}

@bindThis
Expand Down
15 changes: 9 additions & 6 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 { MetaService } from '@/core/MetaService.js';
import { IdService } from '@/core/IdService.js';
Expand Down Expand Up @@ -49,6 +50,9 @@ export class ApInboxService {
@Inject(DI.config)
private config: Config,

@Inject(DI.redisForTimelines)
private redisForTimelines: Redis.Redis,

@Inject(DI.usersRepository)
private usersRepository: UsersRepository,

Expand Down Expand Up @@ -77,7 +81,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 @@ -312,7 +315,7 @@ export class ApInboxService {
const meta = await this.metaService.fetch();
if (this.utilityService.isItemListedIn(this.utilityService.extractHost(uri), meta.blockedHosts)) return 'skip: blocked host';

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

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

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

try {
const exist = await this.apNoteService.fetchNote(note);
Expand Down Expand Up @@ -543,7 +546,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.redisForTimelines, uri);

try {
const note = await this.apDbResolverService.getNoteFromApId(uri);
Expand Down Expand Up @@ -813,7 +816,7 @@ export class ApInboxService {
return 'ok: Question updated';
} else if (additionalCc && isPost(object)) {
const uri = getApId(object);
const unlock = await this.appLockService.getApLock(uri);
const unlock = await acquireApObjectLock(this.redisForTimelines, uri);

try {
const exist = await this.apNoteService.fetchNote(object);
Expand Down
9 changes: 6 additions & 3 deletions packages/backend/src/core/activitypub/models/ApNoteService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@

import { forwardRef, Inject, Injectable } from '@nestjs/common';
import { In } from 'typeorm';
import * as Redis from 'ioredis';
import { DI } from '@/di-symbols.js';
import type { UsersRepository, PollsRepository, EmojisRepository } from '@/models/_.js';
import type { Config } from '@/config.js';
import type { MiRemoteUser } from '@/models/User.js';
import type { MiNote } from '@/models/Note.js';
import { acquireApObjectLock } from '@/misc/distributed-lock.js';
import { toArray, toSingle, unique } from '@/misc/prelude/array.js';
import type { MiEmoji } from '@/models/Emoji.js';
import { MetaService } from '@/core/MetaService.js';
import { AppLockService } from '@/core/AppLockService.js';
import type { MiDriveFile } from '@/models/DriveFile.js';
import { NoteCreateService } from '@/core/NoteCreateService.js';
import type Logger from '@/logger.js';
Expand Down Expand Up @@ -47,6 +48,9 @@ export class ApNoteService {
@Inject(DI.config)
private config: Config,

@Inject(DI.redisForTimelines)
private redisForTimelines: Redis.Redis,

@Inject(DI.usersRepository)
private usersRepository: UsersRepository,

Expand All @@ -70,7 +74,6 @@ export class ApNoteService {
private apImageService: ApImageService,
private apQuestionService: ApQuestionService,
private metaService: MetaService,
private appLockService: AppLockService,
private pollService: PollService,
private noteCreateService: NoteCreateService,
private apDbResolverService: ApDbResolverService,
Expand Down Expand Up @@ -379,7 +382,7 @@ export class ApNoteService {
throw new StatusError('blocked host', 451);
}

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

try {
//#region このサーバーに既に登録されていたらそれを返す
Expand Down
9 changes: 6 additions & 3 deletions packages/backend/src/core/chart/charts/active-users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@

import { Injectable, Inject } from '@nestjs/common';
import { DataSource } from 'typeorm';
import { AppLockService } from '@/core/AppLockService.js';
import * as Redis from 'ioredis';
import type { MiUser } from '@/models/User.js';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
import { acquireChartInsertLock } from '@/misc/distributed-lock.js';
import Chart from '../core.js';
import { ChartLoggerService } from '../ChartLoggerService.js';
import { name, schema } from './entities/active-users.js';
Expand All @@ -28,11 +29,13 @@ export default class ActiveUsersChart extends Chart<typeof schema> { // eslint-d
@Inject(DI.db)
private db: DataSource,

private appLockService: AppLockService,
@Inject(DI.redisForTimelines)
private redisForTimelines: Redis.Redis,

private chartLoggerService: ChartLoggerService,
private idService: IdService,
) {
super(db, (k) => appLockService.getChartInsertLock(k), chartLoggerService.logger, name, schema);
super(db, (k) => acquireChartInsertLock(redisForTimelines, k), chartLoggerService.logger, name, schema);
}

protected async tickMajor(): Promise<Partial<KVs<typeof schema>>> {
Expand Down
9 changes: 6 additions & 3 deletions packages/backend/src/core/chart/charts/ap-request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@

import { Injectable, Inject } from '@nestjs/common';
import { DataSource } from 'typeorm';
import { AppLockService } from '@/core/AppLockService.js';
import * as Redis from 'ioredis';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
import { acquireChartInsertLock } from '@/misc/distributed-lock.js';
import Chart from '../core.js';
import { ChartLoggerService } from '../ChartLoggerService.js';
import { name, schema } from './entities/ap-request.js';
Expand All @@ -22,10 +23,12 @@ export default class ApRequestChart extends Chart<typeof schema> { // eslint-dis
@Inject(DI.db)
private db: DataSource,

private appLockService: AppLockService,
@Inject(DI.redisForTimelines)
private redisForTimelines: Redis.Redis,

private chartLoggerService: ChartLoggerService,
) {
super(db, (k) => appLockService.getChartInsertLock(k), chartLoggerService.logger, name, schema);
super(db, (k) => acquireChartInsertLock(redisForTimelines, k), chartLoggerService.logger, name, schema);
}

protected async tickMajor(): Promise<Partial<KVs<typeof schema>>> {
Expand Down
9 changes: 6 additions & 3 deletions packages/backend/src/core/chart/charts/drive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@

import { Injectable, Inject } from '@nestjs/common';
import { DataSource } from 'typeorm';
import * as Redis from 'ioredis';
import type { MiDriveFile } from '@/models/DriveFile.js';
import { AppLockService } from '@/core/AppLockService.js';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
import { acquireChartInsertLock } from '@/misc/distributed-lock.js';
import Chart from '../core.js';
import { ChartLoggerService } from '../ChartLoggerService.js';
import { name, schema } from './entities/drive.js';
Expand All @@ -23,10 +24,12 @@ export default class DriveChart extends Chart<typeof schema> { // eslint-disable
@Inject(DI.db)
private db: DataSource,

private appLockService: AppLockService,
@Inject(DI.redisForTimelines)
private redisForTimelines: Redis.Redis,

private chartLoggerService: ChartLoggerService,
) {
super(db, (k) => appLockService.getChartInsertLock(k), chartLoggerService.logger, name, schema);
super(db, (k) => acquireChartInsertLock(redisForTimelines, k), chartLoggerService.logger, name, schema);
}

protected async tickMajor(): Promise<Partial<KVs<typeof schema>>> {
Expand Down
Loading
Loading