Commit Graph

2107 Commits

Author SHA1 Message Date
おさむのひと 72bc789746
feature: ユーザ作成時にSystemWebhookを発信できるようにする (#14321)
* feature: ユーザ作成時にSystemWebhookを発信できるようにする

* fix CHANGELOG.md
2024-07-29 21:31:32 +09:00
Sayamame-beans 61f4a03e6c
Fix(frontend): 下書き/削除して編集で保持されない項目があった問題を修正 (#14285)
* chore(frontend): reorder assignments

* fix(frontend): visibleUserIds is not kept when deleteAndEdit

* fix(frontend): quoteId is not kept on draft

* fix(frontend): reactionAcceptance is not kept for draft/deleteAndEdit

* docs(changelog): update changelog
2024-07-28 11:19:32 +09:00
syuilo 085b3abf26
update deps (#14312) 2024-07-28 11:14:31 +09:00
かっこかり 46d96c7412
fix(build): autogen生成時にbackendを2度buildしているのを修正 (#14309)
* fix(build): autogen生成時にbackendを2度buildしているのを修正

* fix

* fix
2024-07-27 18:09:15 +09:00
zyoshoka befa8e4a7f
fix(backend): avoid caching remote user's HTL when receiving Note (#13772)
* fix(backend): avoid caching remote user's HTL when receiving Note

* test(backend): add test for FFT

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-07-25 16:37:46 +09:00
zyoshoka fc71bcc98e
fix(backend): avoid notifying to remote users on local (#13774)
* fix(backend): avoid notifying to remote users on local

* Update CHANGELOG.md

* refactor: check before calling method

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-07-25 16:32:07 +09:00
syuilo 337b42bcb1 revert 5f88d56d96
バグがある(かつすぐに修正できそうにない) & まだレビュー途中で意図せずマージされたため
2024-07-20 21:33:20 +09:00
woxtu 6920f0fa7e
Disable ESLint for migration files (#14262) 2024-07-19 10:05:34 +09:00
anatawa12 10ce7bf3c4
kill any from streaming API Implementation (#14251)
* chore: add JsonValue type

* refactor: kill any from Connection.ts

* refactor: fix StreamEventEmitter contains undefined instead of null

* refactor: kill any from channels

* docs(changelog): Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題

* fix license header

* fix lints
2024-07-18 20:04:23 +09:00
かっこかり de166a8ed4
fix(backend): リノートミュートがキャッシュが切れるまで効かない問題を修正 (#14242)
* Fix: RenoteMuteがキャッシュが切れるまで効かない問題を修正

(cherry picked from commit e9601029b5)

* update changelog

* 🎨

* remove unused import

* 消したときもキャッシュを飛ばすように

* lint

---------

Co-authored-by: mattyatea <mattyacocacora0@gmail.com>
2024-07-18 08:55:36 +09:00
anatawa12 cfdad45092
fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 (#13978)
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
2024-07-18 02:06:31 +09:00
tamaina 5f88d56d96
perf(federation): Ed25519署名に対応する (#13464)
* 1. ed25519キーペアを発行・Personとして公開鍵を送受信

* validate additionalPublicKeys

* getAuthUserFromApIdはmainを選ぶ

* ✌️

* fix

* signatureAlgorithm

* set publicKeyCache lifetime

* refresh

* httpMessageSignatureAcceptable

* ED25519_SIGNED_ALGORITHM

* ED25519_PUBLIC_KEY_SIGNATURE_ALGORITHM

* remove sign additionalPublicKeys signature requirements

* httpMessageSignaturesSupported

* httpMessageSignaturesImplementationLevel

* httpMessageSignaturesImplementationLevel: '01'

* perf(federation): Use hint for getAuthUserFromApId (#13470)

* Hint for getAuthUserFromApId

* とどのつまりこれでいいのか?

* use @misskey-dev/node-http-message-signatures

* fix

* signedPost, signedGet

* ap-request.tsを復活させる

* remove digest prerender

* fix test?

* fix test

* add httpMessageSignaturesImplementationLevel to FederationInstance

* ManyToOne

* fetchPersonWithRenewal

* exactKey

* ✌️

* use const

* use gen-key-pair fn. from  '@misskey-dev/node-http-message-signatures'

* update node-http-message-signatures

* fix

* @misskey-dev/node-http-message-signatures@0.0.0-alpha.11

* getAuthUserFromApIdでupdatePersonの頻度を増やす

* cacheRaw.date

* use requiredInputs
https://github.com/misskey-dev/misskey/pull/13464#discussion_r1509964359

* update @misskey-dev/node-http-message-signatures

* clean up

* err msg

* fix(backend): fetchInstanceMetadataのLockが永遠に解除されない問題を修正

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* fix httpMessageSignaturesImplementationLevel validation

* fix test

* fix

* comment

* comment

* improve test

* fix

* use Promise.all in genRSAAndEd25519KeyPair

* refreshAndprepareEd25519KeyPair

* refreshAndfindKey

* commetn

* refactor public keys add

* digestプリレンダを復活させる

RFC実装時にどうするか考える

* fix, async

* fix

* !== true

* use save

* Deliver update person when new key generated (not tested)
https://github.com/misskey-dev/misskey/pull/13464#issuecomment-1977049061

* 循環参照で落ちるのを解消?

* fix?

* Revert "fix?"

This reverts commit 0082f6f8e8.

* a

* logger

* log

* change logger

* 秘密鍵の変更は、フラグではなく鍵を引き回すようにする

* addAllKnowingSharedInboxRecipe

* nanka meccha kaeta

* delivre

* キャッシュ有効チェックはロック取得前に行う

* @misskey-dev/node-http-message-signatures@0.0.3

* PrivateKeyPem

* getLocalUserPrivateKey

* fix test

* if

* fix ap-request

* update node-http-message-signatures

* fix type error

* update package

* fix type

* update package

* retry no key

* @misskey-dev/node-http-message-signatures@0.0.8

* fix type error

* log keyid

* logger

* db-resolver

* JSON.stringify

* HTTP Signatureがなかったり使えなかったりしそうな場合にLD Signatureを活用するように

* inbox-delayed use actor if no signature

* ユーザーとキーの同一性チェックはhostの一致にする

* log signature parse err

* save array

* とりあえずtryで囲っておく

* fetchPersonWithRenewalでエラーが起きたら古いデータを返す

* use transactionalEntityManager

* fix spdx

* @misskey-dev/node-http-message-signatures@0.0.10

* add comment

* fix

* publicKeyに配列が入ってもいいようにする
https://github.com/misskey-dev/misskey/pull/13950

* define additionalPublicKeys

* fix

* merge fix

* refreshAndprepareEd25519KeyPair → refreshAndPrepareEd25519KeyPair

* remove gen-key-pair.ts

* defaultMaxListeners = 512

* Revert "defaultMaxListeners = 512"

This reverts commit f2c412c180.

* genRSAAndEd25519KeyPairではキーを直列に生成する?

* maxConcurrency: 8

* maxConcurrency: 16

* maxConcurrency: 8

* Revert "genRSAAndEd25519KeyPairではキーを直列に生成する?"

This reverts commit d0aada55c1.

* maxWorkers: '90%'

* Revert "maxWorkers: '90%'"

This reverts commit 9e0a93f110.

* e2e/timelines.tsで個々のテストに対するtimeoutを削除, maxConcurrency: 32

* better error handling of this.userPublickeysRepository.delete

* better comment

* set result to keypairEntityCache

* deliverJobConcurrency: 16, deliverJobPerSec: 1024, inboxJobConcurrency: 4

* inboxJobPerSec: 64

* delete request.headers['host'];

* fix

* // node-fetch will generate this for us. if we keep 'Host', it won't change with redirects!

* move delete host

* modify comment

* modify comment

* fix correct → collect

* refreshAndfindKey → refreshAndFindKey

* modify comment

* modify attachLdSignature

* getApId, InboxProcessorService

* TODO

* [skip ci] add CHANGELOG

---------

Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-07-18 01:28:17 +09:00
Kisaragi ce39c3a2fb
chore(backend): registed -> registered (#14213)
* chore(backend): registed -> registered

* Update CHANGELOG.md
2024-07-15 14:58:48 +09:00
Souma 1b84760c19
enhance(backend): Load settings via environment variables (#14179)
* feat(backend): Load settings via environment variables

If they're not loaded from the config file.

* chore(docker): Add hints for environment variables

It supports users to know about them.

* docs(changelog): Add the description about this change

Users can notice what's changed by this PR.

* style(backend): Fix code syntax

To pass the linter.
2024-07-14 21:33:22 +09:00
Kisaragi f0b9d70720
ci: cache eslint (#14204)
* ci: cache eslint

* dummy commit to trigger

* fix syntax error
2024-07-14 21:30:57 +09:00
Sayamame-beans 4b9c60ad21
fix(backend): ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 (#14100)
* fix: mute/block was not considered on users/reactions

* docs(changelog): update changelog

* chore: Apply suggestion from code review

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>

---------

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-07-14 20:24:29 +09:00
syuilo c5607d8633 enhance(backend): configにsignToActivityPubGetの指定が無い場合trueと見做すように
trueの方が望ましいため
2024-07-14 20:14:43 +09:00
Kisaragi 31e82fc29a
test(backend): kill many `any` in backend test (partial) (#14054)
* kill any on utils:api

* kill any on timeline test

* use optional chain to kill TS2532 on timeline test
変更前: 該当ノートが見つからなければundefinedに対するプロパティアクセスとしてテストがクラッシュ
変更後: 該当ノートが見つからなければoptional chainがundefinedとして評価されるが、strictEqualの右辺がnon-nullableなためアサーションに失敗しテストがクラッシュ

* kill `as any` for ApMfmService

* kill argument any for api-visibility

* kill argument any across a few tests

* do not return value that has yielded from `await`-ing `Promise<void>`

* force cast

* runtime non-null assertion to coerce

* rewrite `assert.notEqual(expr, null)` to `assert.ok(expr)`
こうすることでassertion type扱いになり、non-nullableになる

* change return type of `failedApiCall` to `void`
戻り値がどこにも使われていない

* split bindings for exports.ts
型が合わなくて文句を言ってくるので適切に分割

* runtime non-null assertion

* runtime non-null assertion

* 何故かうまく行かないので、とりあえずXORしてみる

* Revert "何故かうまく行かないので、とりあえずXORしてみる"

This reverts commit 48cf32c930.

* castAsErrorで安全ではないキャストを隠蔽

* 型アサーションの追加

* 型アサーションの追加

* 型アサーションの追加

* voidで値を返さない

* castAsError

* assert.ok => kill nullability

* もはや明示的な型の指定は必要ない

* castAsError

* castAsError

* 型アサーションの追加

* nullableを一旦抑止

* 変数を分離して型エラーを排除

* 不要なプロパティを削除する処理を隠蔽してanyを排除

* Repository type

* simple type

* assert.ok => kill nullability

* revert `as any` drop
reverts fe95c05b3f partialy

* test: fix invalid assertion
partially revert b99b7b5392

* test: 52d8a54fc7 により型が合うようになった部分の`as any`を除去

* format

* test: apply https://github.com/misskey-dev/misskey/pull/14054#discussion_r1672369526 (part 1)

* test: use non-null assertion to suppress too many error

* Update packages/backend/test/utils.ts

Co-authored-by: anatawa12 <anatawa12@icloud.com>

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2024-07-14 09:33:16 +09:00
Sayamame-beans 7afa593d11
Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に (#14078)
* feat: implement role policy "canUpdateBioMedia"

* docs(changelog): update changelog

* docs(changelog): update changelog

* chore: regenerate misskey-js type definitions

* chore: Apply suggestion from code review

Co-authored-by: anatawa12 <anatawa12@icloud.com>

* chore: fix unnecessarily strict inequality check

* chore: policies should be gotten only once

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2024-07-14 09:31:05 +09:00
かっこかり 58c596cacf
fix(backend): 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (#14195)
* enhance(backend): 公開バッジのみをpackするように (MisskeyIO#652)

(cherry picked from commit b8a90659f35fef49d1d00fb2f9b152226c97643c)

* Update Changelog

* fix

* Update UserEntityService.ts

---------

Co-authored-by: CyberRex <26585194+CyberRex0@users.noreply.github.com>
2024-07-14 09:26:25 +09:00
Gianni Ceccarelli c83c831c53
parse `notRespondingSince` from redis instance cache (#14079)
if we don't do this, we'll get a string, and `DeliverProcessorService`
will error out `i.notRespondingSince.getTime is not a function`
2024-07-13 20:26:48 +09:00
syuilo 91de35ecdf fix(backend): デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正
Fix #13955
2024-07-13 10:30:28 +09:00
おさむのひと 6cd15275bb
fix: サジェストされるユーザのリストアップ方法を見直し (#14180)
* fix: サジェストされるユーザのリストアップ方法を見直し

* fix comment

* fix CHANGELOG.md

* ノートの無いユーザ(updatedAtが無いユーザ)は含めないらしい

* fix test
2024-07-12 21:14:09 +09:00
かっこかり 600f16d625
fix(backend): api-docをScalarに変更 (#14152)
* fix(backend): api-docをScalarに変更

* Update Changelog
2024-07-09 21:57:19 +09:00
かっこかり 9ef6c4716c
fix(backend): 名前を空白文字列だけにできる問題を修正 (#14119)
* fix(backend): 名前を空白文字列だけにできる問題を修正

* Update Changelog

* fix test

* Unicodeを含める

* fix

* ユーザー名がUnicode制御文字とスペースのみで構成される場合はnullに

* Revert "ユーザー名がUnicode制御文字とスペースのみで構成される場合はnullに"

This reverts commit 6c752a69c0.

* [ci skip] changelog typo
2024-07-07 14:19:00 +09:00
かっこかり 984d582796
fix(frontend): サーバーサイドbootでエラー画面の描画時にDOMが初期化できていないことがあるのを修正 (#14139) 2024-07-07 09:56:09 +09:00
おさむのひと fe852920c3
fix(backend): parse5関係の型のimport方法を変更 (#14146) 2024-07-07 09:55:06 +09:00
syuilo 8e1d94c6c7 fix import path 2024-07-06 21:46:19 +09:00
anatawa12 5d03efa1bb
dev: fix pnpm dev is broken (#14123)
* dev: pnpm dev is broken

* dev: fix crash pnpm dev because of unhandled promise
2024-07-03 06:40:31 +09:00
woxtu de1fe7cc5a
Use built-in API (#14095) 2024-07-02 14:47:07 +09:00
Kisaragi eafae79869
test(backend): goodbye, Lenna (#14111) 2024-07-02 14:29:44 +09:00
syuilo 427648c4b8
update deps (#14057)
* wip

* locales/index.jsのymlファイル取得ロジックを調節

* regenerate pnpm-lock.yaml

* fix(backend): typecheck fails

* chore(deps): bump ip-cidr from 4.0.0 to 4.0.1 in /packages/backend

* chore: migrate ESLint configs to flat config (#14094)

* chore: migrate ESLint configs to flat config

* fix: update paths

* fix: frontend lint fails

* refactor(misskey-js): lint build.js

* update deps

---------

Co-authored-by: samunohito <46447427+samunohito@users.noreply.github.com>
Co-authored-by: zyoshoka <root@zyoshoka.com>
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-07-02 11:38:34 +09:00
ぬるきゃっと a6edd50a5d
chore(docker-compose): 推奨の名前にする (#14096)
* chore(docker-compose): 推奨の名前にする

5c18e329d5/spec.md (compose-file)

* yaml to yml

* fix

* fix
2024-06-28 11:16:12 +09:00
zyoshoka 961cb6c5ee
fix(backend): fix creating reactions bugs (#13901)
* fix(backend): add fallback for empty string when creating reaction

* fix(backend): prohibit reactions to Renote

* test(backend): add some tests for `notes/reactions/create` endpoint

* Update CHANGELOG.md

* lint

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-06-22 19:49:38 +09:00
woxtu 00b213373b
Remove @types/node-fetch (#13948) 2024-06-22 19:46:29 +09:00
Kisaragi 9368eb3038
refactor: say bye to the weird groupBy friends (#13975)
* refactor(frontend): say bye to the weird groupBy friends

* refactor(backend): say bye to the weird groupBy friends
2024-06-22 19:40:55 +09:00
かっこかり 7c22a64b8c
fix(backend): 自分以外のクリップ内のノート個数が見えるのを修正 (#14065)
* fix(backend): 自分以外のクリップ内のノート個数が見えることがあるのを修正

* Update Changelog

* fix
2024-06-22 16:52:27 +09:00
yupix b50eb511b0
refactor: api/*/update系の必須キーを最低限に (#13824)
* refactor: clips/updateの必須キーをclipIdのみに

* refactor: admin/roles/update の必須キーをroleIdのみに

* feat: pages/update の必須キーをpageIdのみに

* refactor: gallery/posts/update の必須キーをpostidのみに

* feat: misskey-jsの型を更新

* feat: i/webhooks/updateの必須キーをwebhookIdのみに

* feat: admin/ad/updateの必須キーをidのみに

* feat: misskey-jsの型を更新

* chore: update CHANGELOG.md

* docs: update CHANGELOG.md

* fix: secretが更新できなくなる場合がある

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>

* Update packages/backend/src/server/api/endpoints/gallery/posts/update.ts

---------

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-06-22 14:52:27 +09:00
Kisaragi ac12ab8629
fix(backend): フィードのノートのMFMはHTMLにレンダーしてから返す (#14006)
* fix(backend): フィードのノートのMFMはHTMLにレンダーしてから返す (test wip)

* chore: beforeEachを使う?

* fix: プレーンテキストにフォールバックしてMFMが含まれていないか調べる方針を実装

* fix: application/jsonだとパースされるのでその作用をキャンセル

* build: fix lint error

* docs: update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-06-22 12:51:02 +09:00
anatawa12 1e78ef1cb8
fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-06-22 12:44:01 +09:00
zyoshoka 8a9de081f1
fix(backend): fallback if `sinceId` is older than the oldest in cache when using FTT (#14061)
* fix(backend): fallback if `sinceId` is older than the oldest in cache when using FTT

* Update CHANGELOG.md

* chore: fix description of test
2024-06-22 12:43:03 +09:00
syuilo e88f08ad7d refactor 2024-06-21 13:31:02 +09:00
syuilo 1d6ccd9781 remove unused files 2024-06-21 13:21:27 +09:00
syuilo 811ffbf3a4 remove unused file 2024-06-21 13:18:19 +09:00
syuilo bf33382082 refactor(backend): remove unnecessary isNotNull sugar 2024-06-21 13:03:51 +09:00
syuilo 1df90cef4c update typescript 2024-06-21 13:03:00 +09:00
Ryu jongheon d0ee0203e1
Fix(backend): Limit antenna/webhook/list to exact amount (#14036)
... not +1
* Update antennas/clips e2e test
2024-06-18 12:18:04 +09:00
Acid Chicken 1a82a41f92
refactor(backend): get column names from metadata (#13943)
* ci: enable

* chore: stop when generated column found

* chore: get column names from metadata

* ci: disable
2024-06-15 10:28:57 +09:00
anatawa12 220e112c83
fix rate limit check never ends (#13994) 2024-06-15 08:42:13 +09:00
Kisaragi dc3629e732
feat(backend): report `Retry-After` if client hit rate limit (#13949)
* feat(backend): report `Retry-After` if client hit rate limit

* refactor(backend): fix lint error
2024-06-13 10:56:26 +09:00
syuilo c73d739bd6 node 22 support 2024-06-13 10:40:20 +09:00
おさむのひと 61fae45390
feat: 通報を受けた際にメールまたはWebhookで通知を送出出来るようにする (#13758)
* feat: 通報を受けた際にメールまたはWebhookで通知を送出出来るようにする

* モデログに対応&エンドポイントを単一オブジェクトでのサポートに変更(API経由で大量に作るシチュエーションもないと思うので)

* fix spdx

* fix migration

* fix migration

* fix models

* add e2e webhook

* tweak

* fix modlog

* fix bugs

* add tests and fix bugs

* add tests and fix bugs

* add tests

* fix path

* regenerate locale

* 混入除去

* 混入除去

* add abuseReportResolved

* fix pnpm-lock.yaml

* add abuseReportResolved test

* fix bugs

* fix ui

* add tests

* fix CHANGELOG.md

* add tests

* add RoleService.getModeratorIds tests

* WebhookServiceをUserとSystemに分割

* fix CHANGELOG.md

* fix test

* insertOneを使う用に

* fix

* regenerate locales

* revert version

* separate webhook job queue

* fix

* 🎨

* Update QueueProcessorService.ts

---------

Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-06-08 15:34:19 +09:00
Porlam Nicla e0cf5b2402
配信停止したインスタンス一覧が見れなくなる問題を修正 (#13945)
* 配信停止したインスタンス一覧が見れなくなる問題を修正

* Update CHANGELOG.md
2024-06-07 14:46:46 +09:00
syuilo 8592716139 enhance(backend): improve sentry integration 2024-06-07 13:15:37 +09:00
taichan 00157864e9
fix(backend): チャート生成時にinstance.isSuspendedが読まれてしまう問題の修正 (#13951)
* fix(backend): use sustensionState instead of isSuspended

* Update CHANGELOG.md
2024-06-07 09:00:01 +09:00
syuilo 8f833d742f enhance(backend): improve sentry integration 2024-06-06 11:51:31 +09:00
syuilo d55e638a23 lint fixes 2024-06-06 11:40:11 +09:00
syuilo a697a7f97b enhance(backend): improve sentry integration 2024-06-06 11:38:34 +09:00
syuilo ab69e113f4 enhance(backend): improve sentry integration 2024-06-06 11:20:54 +09:00
syuilo 65d19279a2 fix 2024-06-06 10:11:43 +09:00
syuilo dbf9e1194b refactor(backend): remove unused logger option 2024-06-06 10:01:50 +09:00
syuilo d4a8c63264 enhance(backend): sentry integration for job queues 2024-06-06 09:32:04 +09:00
Acid Chicken 2b8056a852
fix(backend): use insertOne insteadof insert/findOneOrFail combination (#13908)
* fix(backend): use insertOne insteadof insert/findOneOrFail combination

* fix: typo

* fix(backend): inherit mainAlias?

* refactor(backend): use extend

* fix(backend): invalid entityTarget

* fix(backend): fake where

* chore: debug

* chore: debug

* test: log

* fix(backend): column names

* fix(backend): remove dummy from

* revert: log

* fix(backend): position

* fix(backend): automatic aliasing

* chore(backend): alias

* chore(backend): remove from

* fix(backend): type

* fix(backend): avoid pure name

* test(backend): fix type

* chore(backend): use cte

* fix(backend): avoid useless alias

* fix(backend): fix typo

* fix(backend): __disambiguation__

* fix(backend): quote

* chore(backend): t

* chore(backend): accessible

* chore(backend): concrete returning

* fix(backend): quote

* chore: log more

* chore: log metadata

* chore(backend): use raw

* fix(backend): returning column name

* fix(backend): transform

* build(backend): wanna logging

* build(backend): transform empty

* build(backend): build alias

* build(backend): restore name

* chore: return entity

* fix: test case

* test(backend): 204

* chore(backend): log sql

* chore(backend): assert user joined

* fix(backend): typo

* chore(backend): log long sql

* chore(backend): log join

* chore(backend): log join depth null

* chore(backend): joinAttributes

* chore(backend): override createJoinExpression

* chore: join log

* fix(backend): escape

* test(backend): log log

* chore(backend): join gonna success?

* chore(backend): relations

* chore(backend): undefined

* chore(backend): target

* chore(backend): remove log

* chore(backend): log chart update

* chore(backend): log columns

* chore(backend): check hasMetadata

* chore(backend): unshift id when not included

* chore(backend): missing select

* chore(backend): remove debug code
2024-06-01 11:16:44 +09:00
zyoshoka 514a65e453
perf(backend): avoid N+1 selects from `user` table when packing many entities (#13911)
* perf(backend): avoid N+1 selects from `user` table when packing many entities

* perf(backend): use `packMany` instead of mapping to `pack`
2024-05-31 15:32:42 +09:00
syuilo 97be1a53ad Update 1717117195275-inquiryUrl.js 2024-05-31 14:59:02 +09:00
syuilo eaa85f5aa3 fix test 2024-05-31 13:28:11 +09:00
syuilo 5b8f8e7087 fix(backend): fix backward compatibility of antenna 2024-05-31 11:24:17 +09:00
syuilo be11fd7508 enhance: サーバーのお問い合わせ先URLを設定できるように 2024-05-31 10:12:23 +09:00
Kisaragi cf670e8a3d
refactor(backend): avoid `as any` on CustomEmojiService.ts (#13903) 2024-05-29 07:12:50 +09:00
Kisaragi e57ce4fa0f
chore(backend): rename local variable (#13904)
much -> matched
2024-05-29 07:12:20 +09:00
Kisaragi 44cafbb9f2
refactor: avoid `as any[]` on FetchInstanceMetadataService.ts (#13905)
* refactor: avoid `as any[]` on FetchInstanceMetadataService.ts

* apply suggestion

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-05-29 07:11:29 +09:00
syuilo 80f3cb96b0
feat: sentry integration (#13897)
* wip

* wip

* wip

* wip

* Update CHANGELOG.md

* Update ApiCallService.ts

* Update config.ts
2024-05-28 17:06:33 +09:00
tamaina 89b27d8587
fix(federation): InboxにきたCreate, AnnounceのobjectがBearcaps urlだった際はスキップするように (#13610)
* fix(federation): AnnounceのobjectがLike出なかったらキューにためない
Fix https://github.com/misskey-dev/misskey/issues/13552

* revert

* better reason handlings

* result

* improve announce handling

* skip bearcaps

* also announce
2024-05-28 14:36:06 +09:00
anatawa12 4579be0f54
新着ノートをサウンドで通知する機能をdeck UIに追加 (#13867)
* feat(deck-ui): implement note notification

* chore: remove notify in antenna

* docs(changelog): 新着ノートをサウンドで通知する機能をdeck UIに追加

* fix: type error in test

* lint: key order

* fix: remove notify column

* test: remove test for notify

* chore: make sound selectable

* fix: add license header

* fix: add license header again

* Unnecessary await

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* ファイルを選択してください -> ファイルが選択されていません

* fix: i18n忘れ

* fix: i18n忘れ

* pleaseSelectFile > fileNotSelected

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-05-27 20:54:53 +09:00
anatawa12 a7a8dc4dbb
もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように (#13879)
* feat(backend): mark an file as sensitive if the file was newly federated as sensitive

* docs(changelog): もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように

* fix: change way to update federated image

* Update packages/backend/src/core/DriveService.ts

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>

* update isSensitive of existing record object

---------

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
2024-05-27 20:12:25 +09:00
かっこかり 805a11aadb
enhance(backend): プロフィールのリンク検証にtry-catchを追加 (#13882)
* enhance(backend): プロフィールのリンク検証にtry-catchを追加

* ✌️
2024-05-27 17:18:12 +09:00
かっこかり 1df8ea824e
fix(backend): `/@` にアクセスするとサーバーエラーが発生する問題を修正 (#13884) 2024-05-27 17:15:42 +09:00
かっこかり 3ffbf6296f
feat: 個別のお知らせにリンクで飛べるように (#13885)
* feat(announcement): 個別のお知らせにリンクで飛べるように (MisskeyIO#639)

(cherry picked from commit f6bf7f992a78e54d86a4701dbd1e4fda7ef4eb27)

* fix

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* fix

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* 一覧ページではお知らせpanel全体を押せるように

* お知らせバーは個別ページに飛ばすように

* Update Changelog

* spdx

* attempt to fox test

* remove unnecessary thong

* `announcement` → `announcements/show`

* リンクを押せる場所をタイトルと日付部分のみに変更

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-05-27 17:15:11 +09:00
かっこかり e0b47999fa
fix(backend): `read:admin:show-user` と `read:admin:show-users` を統合 (#13798)
* fix(frontend): 同じdisplayNameの権限があるのを修正

* read:admin:show-user と read:admin:show-users を統合

* Update Changelog
2024-05-23 17:29:59 +09:00
anatawa12 83a9aa4533
feat: suspend instance improvements (#13861)
* feat(backend): dead instance detection

* feat(backend): suspend type detection

* feat(frontend): show suspend reason on frontend

* feat(backend): resume federation automatically if the server is automatically suspended

* docs(changelog): 配信停止まわりの改善

* lint: fix lint errors

* Update packages/frontend/src/pages/instance-info.vue

* lint: fix lint error

* chore: suspendedState => suspensionState

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-05-23 15:55:47 +09:00
Acid Chicken 611e303bab
feat(backend): add /healthz endpoint (#13834)
* feat(backend): add /healthz endpoint

* feat(backend): also check meilisearch status if available

* style: header

* chore: no-store

* chore: healthcheck.sh

* style: format
2024-05-23 15:19:52 +09:00
syuilo 20c0bd9ddb happy-domにメモリリークがありそう 2024-05-21 17:29:02 +09:00
anatawa12 7bde630820
`/tags` と `/user-tags` が検索エンジンにインデックスされないように (#13847)
* chore(backend): noindex for tag search pages

* docs(changelog): `/tags` と `/user-tags` が検索エンジンにインデックスされないように

* chore: base.pug内でフラグでコントロールするように
2024-05-21 11:19:33 +09:00
anatawa12 5836bd85df
fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 (#13765)
* fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正

* test: fix misskey js test

* chore: user/showがnullを返さないように

* chore: pass lambda instead of pushVisibleUser
2024-05-20 19:25:50 +09:00
anatawa12 f6df94070b
Exclude channel notes from featured polls (#13838)
* feat(backend): add `channelId` to `MiPoll` as a Denormalized field

* feat(backend): option to exclude polls in channels

* chore: exclude channel notes from featured polls

* docs(changelog): みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正

* fix: missing license header
2024-05-20 18:08:20 +09:00
anatawa12 4d0db37d2e
fix notification limit with exclude/include types (#13836)
* fix: /i/notificationsがsinceIdのみのときに正しく動かない問題

Fix #10902 again

* chore: use exclusive range to fetch data

* fix: フィルタによって通知が0件だった場合でもリトライするように

* docs(changelog): `/i/notifications`に includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正
2024-05-20 18:05:46 +09:00
anatawa12 acf84a2516
FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 (#13837)
* fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題

* docs(changelog): FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正
2024-05-20 08:28:28 +09:00
おさむのひと f6af6d9679
fix(backend): UserEntityService.getRelationsの取得処理を軽量化 (#13811)
* fix(backend): UserEntityService.getRelationsの取得処理を軽量化

* rollback
2024-05-10 15:33:25 +09:00
おさむのひと b298897bde
fix(backend): 不要なUserProfileの取得を修正 (#13812)
* fix(backend): 不要なuserProfileの取得を修正

* fix: pnpm@9.0.6 to pnpm@9.1.0

* Revert "fix: pnpm@9.0.6 to pnpm@9.1.0"

This reverts commit eaf265ec2c.
2024-05-10 15:32:23 +09:00
syuilo 2b21c19362
update deps (#13624)
* update deps

* Update package.json

* update deps

* build: pass --strip-leading-paths to restore 0.2.x behavior (#13684)

* ✌️

* ✌️

* pureimageの代わりに@napi-rs/canvasを使う (#13748)

* pureimageの代わりに@napi-rs/canvasを使う

* remove writestream

* remove createtemp

* wip

* Update ClientServerService.ts

* update pnpm to 9.x

* update deps

* re: update pnpm to 9.x

* update node

* ✌️

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-05-04 20:56:14 +09:00
Kisaragi c530a46e54
enhance(backend): ドライブのファイルがNSFWかどうか個別に連合されるように (#13756)
* fix(backend): ノートのattachmentにおいて、attach.sensitiveが元から存在する場合はそれを尊重する

* docs: update changelog (per misskey-dev#13756)

* feat(backend,apub): renderDocumentがsensitiveを連合するようにする
per https://github.com/misskey-dev/misskey/issues/13755#issuecomment-2081303014

* chore(backend): 追加したコメントを削除

* docs: changelogをより丁寧にする

* docs: changelogの項目名をPRに合わせる

* docs: tweak

apply suggestion from mei23
2024-05-01 17:13:20 +09:00
Daiki Mizukami d2a5bb39e3
Merge pull request from GHSA-2vxv-pv3m-3wvj
* fix: normalize incoming signed activities

* Tweak style

* Update CHANGELOG.md

* Log compacted activity as well

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-05-01 16:33:58 +09:00
zyoshoka 2ff90a80d4
fix(backend): add detailed schema to `fetch-rss` endpoint (#13764) 2024-04-29 15:36:01 +09:00
MeiMei c7d7da8fc5
AP Link等は添付ファイル扱いしないようになど (#13754)
* Linkは添付ファイルではない

* CHANGELOG
2024-04-28 10:53:33 +09:00
anatawa12 fe1172fbb6
fix: ハイフンを含むリモート絵文字が描画されない (#13715) 2024-04-27 20:41:55 +09:00
ikasoba 20eb4bc296
Fix(backend): ActivityPubでのHTMLへのシリアライズを修正 (#13752)
* devモードでもActivityPub系エンドポイントへアクセスできるように

* ActivityPubでのHTMLのシリアライズを修正

* ハードコードしていたurlを`httpUrl`へ修正

* テストの追加
2024-04-27 20:26:55 +09:00
かっこかり cb5d8bdcdd
fix(backend): ページのOGP URLが違うのを修正 (#13749)
* fix(backend): ページのOGP URLが違うのを修正

* Update Changelog

* typo
2024-04-27 18:53:28 +09:00
MeiMei 6abb8c4994
Merge pull request from GHSA-m9qf-3pfj-2r86
* Add Cache-Control to Bull Board

* CHANGELOG

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-27 12:57:00 +09:00
Cocoa Hoto 85339ca751
feat: improve emoji endpoint (#13742) 2024-04-25 11:03:34 +09:00
anatawa12 f9aed8f2bf
fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 (#13733) 2024-04-19 19:42:01 +09:00
おさむのひと cd7f7271ca
enhance: 新しいコンディショナルロール条件の実装 (#13732)
* enhance: 新しいコンディショナルロールの実装

* fix: CHANGELOG.md
2024-04-19 15:22:23 +09:00
anatawa12 e423b8ce4b
細かいミュートの処理の修正 (#13695)
* fix: some replies are removed from global timeline

* refactor: 各チャンネルのミュートとブロックの処理をまとめる

* fix: リノートをミュートでその人のノートのリノートをミュートしていたを修正

* refactor: isPureRenotePackedを他のところでも使う

* docs(changelog): CHANGELOGを更新

* test: withReplies = falseでフォローしてる人によるリプライが流れてくる

* test: ノートミュートしているユーザーの通常ノートのリノートが流れてくる/含まれる
2024-04-17 14:23:41 +09:00
MeiMei c687b4eaa5
fix(backend): nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 (#13712)
* Fix files

* CHANGELOG
2024-04-15 09:28:09 +09:00
MeiMei b4faa7c4ec
chore: Use integrity for Redoc script (#13716)
* Use integrity for redoc scripts

* official?
2024-04-15 09:25:11 +09:00
かっこかり bba3097765
enhance: クリップのノート数を表示するように (#13686)
* enhance: クリップのノート数を表示できるように

* Update Changelog
2024-04-14 21:30:24 +09:00
zyoshoka 8c5d9a6295
fix(backend): incorrect logic for determining whether Quote or not (#13700)
* fix(backend): incorrect logic for determining whether Quote or not

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-14 10:23:48 +09:00
かっこかり 7cf0c18f83
fix(backend): FileServerServiceでレンジリクエストの場合に適切なレスポンスコードが返らない問題を修正 (#13701)
* return 206 for every ranged response - fixes #494

(cherry picked from commit 92eec2178fd103e9ea2bcd646aacab1fb496a33b)

* detect size of remote files - fixes #494

without this, remote files are assumed to have size 0 (even if we just
downloaded them!) and the range-related code won't run

(cherry picked from commit 960f4fcff78a1f019c9a9377853fcd90dbfb7575)

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2024-04-14 10:22:03 +09:00
かっこかり 5c7c44c9eb
fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (#13703)
* fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (MisskeyIO#606)

(cherry picked from commit 6b7df2bd10)

* Update Changelog

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-04-13 20:38:25 +09:00
zyoshoka 959cc8ff37
refactor(general): use `Date.now()` instead of creating a new `Date` instance (#13671) 2024-04-07 21:14:13 +09:00
おさむのひと efa42a1624
fix(backend): バックエンドのpnpm devによるビルド後にbuild-assetsを行うようにする (#13659)
* moveto scripts

* add scripts/dev.mjs
2024-04-04 22:25:28 +09:00
かっこかり efafa02f68
enhance(backend): ビデオファイルにビデオトラックがあるかを確認するように (#13568)
* enhance(backend): ビデオファイルにビデオトラックがあるかを確認するように

(cherry picked from commit 23d38a2d6492a2b24e9b2c031d66c3e8a5d382ef)

* Update Changelog

* Update Changelog

* Revert "Update Changelog"

This reverts commit 93fd996932.

* fix(test) ffmpegをインストールするように

* 入れる方間違えた

* fix test

* 拡張子変わらなかったのでそのまま行く

* ログを出力するように

* msg

* remove unused import

* add log

* attempt to fix test error

* Revert "attempt to fix test error"

This reverts commit d9d6524cad.

* Update FileInfoService.ts

* oggも検査の対象にする
2024-03-31 12:43:39 +09:00
おさむのひと 2a851437ff
fix: misskey-js、bubble-game、reversiのビルドをesbuildに統合する (#13600)
* fix: ビルドが遅いパッケージのビルド速度を改善

* dependenciesの整理

* fix ci

* ビルド開始時に古いファイルを消す

* fix ci

* fix ci
2024-03-30 15:28:19 +09:00
zyoshoka b35ae97ba7
fix(backend): better `notes/translate` error response (#13631)
* fix(backend): better `notes/translate` error response

* Update CHANGELOG.md

* test(backend): perform administrative operations as `root`

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-30 13:51:53 +09:00
Nila f3500ffda9
fix: report progress out of 100% in CleanRemoteFilesProcessorService (#13633)
* Report progress out of 100% in CleanRemoteFilesProcessorService

* Add changelog entry
2024-03-30 10:28:47 +09:00
かっこかり f90be427f5
fix(frontend): 「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 (#12835)
* (fix) タイムゾーンによっては誕生日のフォロー中ユーザーが正しく読み込まれない

* 文言をわかりやすく

* Update Changelog

* (add) reload button

* Update CHANGELOG.md

* run misskey-js

* fix

* Revert "文言をわかりやすく"

This reverts commit c5ab641956.

* Update packages/frontend/src/widgets/WidgetBirthdayFollowings.vue

* Update packages/frontend/src/widgets/WidgetBirthdayFollowings.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-25 18:31:30 +09:00
zyoshoka a1bc8fa77b
test(backend): fix streaming test error when replying to followers-only note (#13618) 2024-03-24 16:46:52 +09:00
syuilo 3db26f2b94 fix(backend): fix openAPI operationId format 2024-03-23 20:43:29 +09:00
おさむのひと 831c74a25b
fix: URLプレビューの動作改善+動作設定を可能にする (#13579)
* wip

* support new version

* URLプレビュー無効化時、フロント側も非表示にしてリクエストをしないようにする

* fix lint

* fix lint

* tweak preview request error handles

* fix: CHANGELOG.md

* fix

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-21 18:46:42 +09:00
かっこかり f4838e50b4
enhance(antenna): Botの投稿を除外できるように (#13603)
* enhance(antenna): Botの投稿を除外できるように (MisskeyIO#545)

(cherry picked from commit a95ce067c6)

* Update Changelog

* remove translations

* spdx

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-21 07:51:01 +09:00
かっこかり 0226a670dd
fix(backend): ユーザーやノートのOGPでローカルとリモートユーザーの見分けが付かない問題を修正 (#13586)
* enhance(OGP): ユーザーやノートのOGPでローカルとリモートユーザーの見分けが付かない問題を修正 (MisskeyIO#528)

(cherry picked from commit 0c3de462d9)

* Update Changelog

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-18 18:34:31 +09:00
かっこかり a38646bd0f
fix(backend): フォローリクエストを作成する際に既存のものは削除するように (#13588)
* fix: delete old follow request (if exists) before creating new

(cherry picked from commit ea948ccadc7eace1fcace176c9c070b2a9b46f56)

* Update Changelog

* Update Changelog

---------

Co-authored-by: Kaity A <kaity@atikayda.au>
2024-03-18 14:20:28 +09:00
syuilo 282cfae1b2 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-03-17 10:34:15 +09:00
syuilo 7e63ab0f56 refactor(backend): refactor chart engine 2024-03-17 10:34:13 +09:00
zyoshoka 4b1ca9ef61
fix(general): `flash/create`でPlayの公開範囲を指定できない問題の修正と編集画面の調整 (#13574)
* fix(backend): param `visibility` wasn't included in `flash/create`

* fix(frontend): tweak flash editor ui

* Update CHANGELOG.md
2024-03-15 22:02:57 +09:00
zyoshoka 29f6ba6310
chore: add missing SPDX ID and workflow check (#13570)
* chore: add workflow which checks if SPDX ID exists

* chore: add missing SPDX ID in some files

* chore: change trigger condition

* chore: trigger on push

* lint
2024-03-13 22:37:18 +09:00
おさむのひと 5c1d86b796
refactor(backend): UserEntityService.packMany()の高速化 (#13550)
* refactor(backend): UserEntityService.packMany()の高速化

* 修正
2024-03-12 14:31:34 +09:00
yupix 6b676a928d
enhance(backend): antennas/updateの必須項目をantennaIdのみに (#13542)
* refactor: antennas/updateの必須項目を最小限に

* fix: userListIdがnullにできない
2024-03-10 17:31:39 +09:00
tamaina 1b064d7e30 chore(backend): validateNoteの結果Errorはそのままthrowする
理由がわからないため
2024-03-09 04:10:17 +00:00
zyoshoka 412e9f284d
test(backend): enable typecheck by workflow (#13526) 2024-03-07 09:51:57 +09:00
かっこかり 7ead98cbe5
enhance(frontend): リアクションの総数を表示するように (#13532)
* enhance(frontend): リアクションの総数を表示するように

* Update Changelog

* リアクション選択済の色をaccentに
2024-03-06 21:08:42 +09:00
tamaina 62922352b3 Revert "perf: boot.jsの調整"
This reverts commit 00c1e4eb55.
2024-03-06 09:49:01 +00:00
tamaina 00c1e4eb55 perf: boot.jsの調整 2024-03-06 09:40:47 +00:00
tamaina 4457b02db2 fix(frontend)?: importAppScriptはimportをawaitするように 2024-03-06 08:08:32 +00:00
かっこかり 08d618bb8b
enhance(frontend): 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるようにする (#13520)
* enhance(frontend): 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるようにする

* 他のファイルタイプにも対応

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-05 18:06:57 +09:00
tamaina 9542cb8d62
fix(backend): リモートサーバーの情報が更新できなくなっていた問題を修正 (#13507)
* fix(backend): fetchInstanceMetadataのLockが永遠に解除されない問題を修正

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* fix test

* fix

* comment

* comment

* improve test

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-04 13:48:57 +09:00
zyoshoka 38837bd388
test(backend): refactor tests (#13499)
* test(backend): refactor tests

* fix: failed test
2024-03-03 20:15:35 +09:00
tamaina eb60460d28
enhance: 禁止ワードチェック強化 (#27)
* enhance: 禁止ワードチェック強化
* リモートの禁止ワードチェックを添付ファイルとユーザーを登録する前に行うなど
  Resolve https://github.com/misskey-dev/misskey/issues/13374
* 禁止ワートの対象の見直し

* performActivityで特定のエラーが出た際にDelayedに追加しないように

* use IdentifiableError

* NoteCreateService.checkProhibitedWords

* https://github.com/misskey-dev/misskey-private/pull/27/files#r1507416135

* remove comment
2024-03-01 20:16:32 +09:00
syuilo d1bf432e14 add missing license headers 2024-03-01 17:28:46 +09:00
syuilo 5904d98208
Update packages/backend/test/e2e/mute.ts
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-03-01 17:26:27 +09:00
syuilo ca6399437c format 2024-03-01 17:26:13 +09:00
syuilo 2f31606eff update deps 2024-03-01 14:16:44 +09:00
syuilo 033d71ee28 update deps 2024-03-01 13:52:39 +09:00
syuilo a74406677c fix packedRoleCondFormulaValueAssignedRoleSchema 2024-03-01 12:03:33 +09:00
Yuriha 26d4c5fd94
メンションの最大数をロールごとに設定可能にする (#13343)
* Add new role policy: maximum mentions per note

* fix

* Reviewを反映

* fix

* Add ChangeLog

* Update type definitions

* Add E2E test

* CHANGELOG に説明を追加

---------

Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com>
2024-02-29 20:48:02 +09:00
zyoshoka 16f16e6b08
fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように (#13477)
* fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように

* Update CHANGELOG.md

* test(backend): `notes/create`とWebSocket関連のテストを追加
2024-02-29 20:42:02 +09:00
かっこかり 39d6af135f
enhance: 通知の履歴をリセットできるように (#13335)
* enhance: 通知の履歴をリセットできるように

* Update Changelog

* 通知欄も連動して更新するように

* revert some changes

* Update CHANGELOG.md

* Remove unused part

* fix
2024-02-29 20:03:30 +09:00
syuilo 98934b6738 fix type 2024-02-29 17:54:32 +09:00
syuilo 920c3be750 update deps 2024-02-29 11:10:03 +09:00
taichan 5f43c2faa2
enhance(backend): 通知がミュート・凍結を考慮するようにする (#13412)
* Never return broken notifications #409

Since notifications are stored in Redis, we can't expect relational
integrity: deleting a user will *not* delete notifications that
mention it.

But if we return notifications with missing bits (a `follow` without a
`user`, for example), the frontend will get very confused and throw an
exception while trying to render them.

This change makes sure we never expose those broken notifications. For
uniformity, I've applied the same logic to notes and roles mentioned
in notifications, even if nobody reported breakage in those cases.

Tested by creating a few types of notifications with a `notifierId`,
then deleting their user.

(cherry picked from commit 421f8d49e5d7a8dc3a798cc54716c767df8be3cb)

* Update Changelog

* Update CHANGELOG.md

* enhance: 通知がミュートを考慮するようにする

* enhance: 通知が凍結も考慮するようにする

* fix: notifierIdがない通知が消えてしまう問題

* Add tests (通知がミュートを考慮しているかどうか)

* fix: notifierIdがない通知が消えてしまう問題 (grouped)

* Remove unused import

* Fix: typo

* Revert "enhance: 通知が凍結も考慮するようにする"

This reverts commit b1e57e571d.

* Revert API handling

* Remove unused imports

* enhance: Check if notifierId is valid in NotificationEntityService

* 通知作成時にpackしてnullになったらあとの処理をやめる

* Remove duplication of valid notifier check

* add filter notification is not null

* Revert "Remove duplication of valid notifier check"

This reverts commit 239a6952f7.

* Improve performance

* Fix packGrouped

* Refactor: 判定部分を共通化

* Fix condition

* use isNotNull

* Update CHANGELOG.md

* filterの改善

* Refactor: DONT REPEAT YOURSELF
Note: GroupedNotificationはNotificationの拡張なのでその例外だけ書けば基本的に共通の処理になり複雑な個別の処理は増えにくいと思われる

* Add groupedNotificationTypes

* Update misskey-js typedef

* Refactor: less sql calls

* refactor

* clean up

* filter notes to mark as read

* packed noteがmapなのでそちらを使う

* if (notesToRead.size > 0)

* if (notes.length === 0) return;

* fix

* Revert "if (notes.length === 0) return;"

This reverts commit 22e2324f96.

* 🎨

* console.error

* err

* remove try-catch

* 不要なジェネリクスを除去

* Revert  (既読処理をpack内で行うものを元に戻す)

* Clean

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/NotificationService.ts

* Clean

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
Co-authored-by: kakkokari-gtyih <daisho7308+f@gmail.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 21:26:26 +09:00
zyoshoka 664aeb3ced
fix(backend): リノート時のHTLへのストリーミングの意図しない挙動を修正 (#13425)
* fix(backend): リノート時のストリーミングの意図しない挙動を修正

* Update CHANGELOG.md

* fix: 不要な返り値

* fix: 不適切な条件分岐を修正

* test(backend): add htl tests

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 17:43:17 +09:00
okayurisotto b7d9d16201
refactor(backend): ノートのエクスポート処理でStreams APIを使うように (#13465)
* refactor(backend): ノートのエクスポート処理でStreams APIを使うように

* fixup! refactor(backend): ノートのエクスポート処理でStreams APIを使うように

`await`忘れにより、ジョブがすぐに完了したことになり削除されてしまっていた。
それによって、`NoteStream`内での`updateProgress`メソッドの呼び出しで、`Missing key for job`のエラーが発生することがあった。

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 15:34:58 +09:00
zyoshoka 0d47877db1
enhance(backend): フォロー・フォロワー関連の通知の受信設定の強化 (#13468)
* enhance(backend): 通知の受信設定に「フォロー中またはフォロワー」を追加

* fix(backend): 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正

* Update CHANGELOG.md
2024-02-28 09:49:34 +09:00
zawa-ch f906ad6ca7
Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 (#13463)
* コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加

* コメント修正
2024-02-27 18:45:46 +09:00
zyoshoka 0fb7b98f96
fix(backend): fix incorrect schemas (#13458) 2024-02-26 19:49:12 +09:00
FineArchs dd48366ed8
admin/emoji/updateの必須項目を減らす 等 (#13449)
* admin/emoji/update enhancement

* add CustomEmojiService.getEmojiByName

* update endpoint

* fix

* Update update.ts

* Update autogen files

* type assertion

* Update CHANGELOG.md
2024-02-25 18:06:26 +09:00
tamaina 2c6f25b710
fix: 古いキャッシュを使うのを修正 (#13453) 2024-02-25 12:36:10 +09:00
syuilo 41747b6ee2 refactor 2024-02-24 11:50:10 +09:00
tamaina c0156b740b
enhance?: DeleteAccountServiceでユーザーを削除する際にuserChangeDeletedStateを発行する (#13382) 2024-02-23 18:15:39 +09:00
tamaina 600d91beda
enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる (#13388)
* enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる

* nanka meccha kaeta

* ブロックチェックの後にフォロー関係の存在チェックをする
2024-02-23 18:04:30 +09:00
okayurisotto a861f913a7
fix(backend): より多くの人に使われているハッシュタグが検索結果上位に来るように (#11498) (#13340) 2024-02-23 18:02:12 +09:00
tamaina b8d8b359bc
fix: プッシュ通知の変更が1時間ほど反映されない問題を修正 (#13407)
* fix: プッシュ通知の変更が1時間ほど反映されない問題を修正

* 410 to refresh

* refreshCache
2024-02-23 17:19:08 +09:00
okayurisotto 64953fadc9
refactor(backend): `Array.prototype.filter`での非null確認では`isNotNull`関数を使うように (#13442)
* `Array.prototype.filter`での非null確認では`isNotNull`関数を使うように

* `{}` -> `NonNullable<unknown>`
2024-02-23 14:12:57 +09:00
かっこかり 080a3c20bd
fix: SSR時のmetaをエスケープするように (#13440)
* fix: SSR時のmetaをエスケープするように

* エスケープ方法を変更
2024-02-23 14:10:13 +09:00
かっこかり d20542c495
enhance: `meta`をSSR HTMLに埋め込む (#13436)
* enhance: `meta`をSSR HTMLに埋め込む

* HTML Metaの有効時間を指定

* 1時間

* MetaEntityService

* JSONをPackするように

* ✌️

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-23 10:47:17 +09:00
FineArchs bf5952fd63
flash/update で部分的に変更できるようにする (#13396)
* make flash/update params optional

* Update autogen files

pnpm run build-misskey-js-with-types

* Update update.ts

* Update CHANGELOG.md

* hasOwnProperty -> hasOwn

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-22 21:31:57 +09:00
tamaina 4d6fab06de
refactor: Refactor NoteReadService.read (#13429)
* refactor: Refactor NoteReadService.read

* clean up

* Update packages/backend/src/core/NoteReadService.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-22 21:10:28 +09:00
syuilo 2bd9f05a92 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-22 20:59:57 +09:00
syuilo 26c8b53f70 enhance: サーバーごとにモデレーションノートを残せるように 2024-02-22 20:59:52 +09:00
anatawa12 b36e6b1a77
fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題 (#13428)
* refactor: use IdentifiableError instead of NoteCreateService.ContainsProhibitedWordsError

* fix: notes with prohibited words are reprocessed with delay

* docs(changelog): 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題

* lint: fix lint errors

* fix: rethrowするべきなのにrethrowし忘れていたのを修正
2024-02-22 00:59:59 +09:00
tamaina ae27085f69
fix: Bump sharp to 0.33.2 (#13391) 2024-02-21 14:42:37 +09:00
okayurisotto 750d262604
refactor(backend): `ReactionService.prototype.convertLegacyReactions` (#13375)
* add unit tests

* cleanup unnecessary type assertions

* `convertedReaction`変数の定義と変換表に対する存在確認処理の整理

* `count`変数の定義とループ処理での`Object.entries()`の活用

* 条件式の整理

* `Array.prototype.reduce`を使うように

* `Array.prototype.reduce`を使うように

* 配列操作を1つのメソッドチェーンに整理

これまでの実装では、`decodeReaction`の返り値が同一になる異なる入力値が同時に複数個存在した場合、後ろのもので上書きされてしまっていたはず。
これからの実装では、後ろのものは前のものに加算される。
(実際にこの挙動の変更が問題になるシチュエーションはまずないはず。)

* add unit test

* ドキュメントコメントの追加と型定義の調整
2024-02-21 14:31:50 +09:00
anatawa12 1b1046bcdb
fix: syuilo/misskey時代から使用してるサーバーが改変したバージョンだと誤判定される問題 (DB migrationで修正) (#13389) 2024-02-19 08:34:31 +09:00
anatawa12 0b636d1bf9
fix: nodeinfoにenableMcaptchaとenableTurnstileが無い (#13387) 2024-02-19 08:33:36 +09:00
Cocoa Hoto b0030d148d
fix: allow moderators see role assigned users; fix #13301 (#13315) 2024-02-17 14:41:18 +09:00
syuilo 01de1519dd fix of 9a70ce8f5e
Co-Authored-By: RyotaK <49341894+Ry0taK@users.noreply.github.com>
2024-02-17 14:26:48 +09:00
Acid Chicken (硫酸鶏) acba96c1d3
feat: license violation protection (#13285)
* spec(frontend): aboutページにリポジトリ・フィードバックのURLを表示させる

Cherry-picked from MisskeyIO#441
Cherry-picked from MisskeyIO#438

* feat: license violation protection

* build: fix typo

* build: fix typo

* fix: farewell to the static type land

* fix: key typo

* fix: import typo

* fix: properly interpret `prominently`

* docs: add disclaimer

* docs: update CHANGELOG

* chore: add gap

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-17 13:34:50 +09:00
tamaina 9a70ce8f5e
Merge pull request from GHSA-qqrm-9grj-6v32
* maybe ok

* fix

* test wip

* ✌️

* fix

* if (res.ok)

* validateContentTypeSetAsJsonLD

* 条件を考慮し直す

* その他の+json接尾辞が付いているメディアタイプも受け容れる

* https://github.com/misskey-dev/misskey-ghsa-qqrm-9grj-6v32/pull/1#discussion_r1490999009

* add `; profile="https://www.w3.org/ns/activitystreams"`

* application/ld+json;
2024-02-17 12:41:19 +09:00
zyoshoka 37959bab1d
refactor(backend): remove/replace deprecated type deps (#13252) 2024-02-16 20:09:07 +09:00
syuilo f8ac072bc3 fix type 2024-02-16 15:19:55 +09:00
syuilo 7cfe7da73d fix 2024-02-16 15:09:05 +09:00
syuilo f55e1ee138 refactor(backend): misc/cacheをシンプルな実装に戻した 2024-02-16 15:07:12 +09:00
MeiMei cfa573a3a1
リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 Fix #13273 (#13275)
* リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 Fix #13273

* CHAGELOG

* Use Redis event

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-02-16 14:30:53 +09:00
zyoshoka 40bbae3d6c
fix(backend): add missing schemas and fix incorrect schemas (#13295)
* fix(backend): add missing schemas and fix incorrect schemas

* fix: ci

* fix: ci (本命)

* fix: run `pnpm build-misskey-js-with-types`

* fix: typos

* fix: role-condition-formula-value contains `id`

* fix: incorrect schema
2024-02-16 14:27:33 +09:00
Kisaragi 147e8f1e3e
feat(backend): likeOnlyなどでハートにフォールバックする際異体字セレクタがない方に揃える (#13299)
* feat(backend): likeOnlyなどでハートにフォールバックする際異体字セレクタがない方に揃える

close #13298

* Update ReactionService.ts

* chore(backend): prefer single quote for string literal
2024-02-16 14:25:48 +09:00
tamaina c1514ce91d (re) update SPDX-FileCopyrightText
Fix  #13290
2024-02-13 15:59:27 +00:00
tamaina 311c2172d7 Revert "update SPDX-FileCopyrightText"
This reverts commit 9b5aeb76d8.
2024-02-13 15:50:11 +00:00
Acid Chicken (硫酸鶏) 309a943528
perf: omit search for immutable static requests (#13265)
* perf: omit search for immutable static requests

* perf: also applies to /files

* fix: exclude /proxy

* /files/:key/*を301 redirectに

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-02-13 10:43:06 +09:00
tamaina 32c5c43b6d
enhance: 禁止ワードはリモートノートも対象に (#13280)
Resolve #13279
2024-02-13 04:54:01 +09:00
syuilo a1e12c0ec3 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-12 11:37:55 +09:00
syuilo 9b5aeb76d8 update SPDX-FileCopyrightText 2024-02-12 11:37:45 +09:00
Acid Chicken (硫酸鶏) 3dc095d1c9
feat: provide tarball (#13260)
* feat: provide tarball

* build: pack on build-assets

* chore: use ignore-walk

* chore: debug

* build: dependencies
2024-02-12 10:02:27 +09:00
syuilo 7fc1d77893 update deps 2024-02-09 17:10:16 +09:00
おさむのひと 614c9a0fc6
fix: 特定文字列を含むノートを投稿できないようにする管理画面用設定項目を追加 (#13210)
* fix: 特定文字列を含むノートを投稿できないようにする管理画面用設定項目を追加

* Serviceでチェックするように変更
2024-02-09 10:07:18 +09:00
かっこかり 0f7918c51b
refactor(backend): exist -> exists (#13203)
* refactor(backend): exist -> exists

* fix
2024-02-08 16:04:41 +09:00
MeiMei e89d760240
Enhance: 連合向けのノート配信を軽量化 (#13192)
* AP HTML表現をシンプルに

* a

* CHANGELOG

* リンク
2024-02-07 19:57:59 +09:00
MeiMei d6cb68b091
AP Key の JSON-LD 表現を修正 (#13170) 2024-02-06 16:51:14 +09:00
1Step621 74245df382
Enhance(frontend): フロント側でもリアクション権限のチェックをするように (#13134)
* フロント側でもリアクション権限のチェックをするように

* update CHANGELOG.md

* lint fixes

* remove unrelated diffs

* deny -> reject
denyは「(信用しないことを理由に)拒否する」という意味らしい

* allow -> accept

* EmojiSimpleにlocalOnlyを含めるように

* リアクション権限のない絵文字は打てないように(ダイアログを出すのではなく)

* regenerate type definitions

* lint fix

* remove unused locales

* remove unnecessary async
2024-02-06 16:45:21 +09:00
Gianni Ceccarelli dabf1867fd
keep cached avatar&banner when refresh fails to get new values (#13145)
* keep cached avatar&banner when refresh fails to get new values

when the remote explicitly tells us a user image is gone, we remove
our cached value, but if we fail to get the image, we keep whatever
value we already have

this should minimise the problem of avatars randomly disappearing

* autogen bits

* pnpm run build-misskey-js-with-types

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-02-04 21:03:49 +09:00
Gianni Ceccarelli bafef1f8b4
ignore `instance.actor` when checking if there are local users (#13146)
* ignore `instance.actor` when checking if there are local users

We've seen this happen a few times:

* there was some AP software at $some_domain
* it gets replaced by Misskey
* before the first user can be created, an AP activity comes in
* Misskey resolves the activity
* to do this, it creates the `instance.actor` to sign its request
* now there *is* a local user, so the `meta` endpoint returns
  `requireSetup:false`
* the admin is very confused

This commit factors out the check, and doesn't count the
`instance.actor` as a real user.

* autogen bits
2024-02-04 20:46:28 +09:00
atsuchan 2c4ba4723f
fix(backend): メール配信機能が無効ならばメールを送ることのないように (#13152)
Do not send email if email delivery is disabled
2024-02-04 20:44:35 +09:00