Umisyo(Souta Kusunoki)
Umisyo(Souta Kusunoki)
## What - backendのDeepClone関数をstructuredCloneに置き換えた ## Why - #11103 ## Additional info (optional) ## Checklist - [x] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md) - [ ] Test working in a local environment -...
## Summary - [deepCloneの実装](https://github.com/misskey-dev/misskey/blob/61e7eb8ff1d7ef222e60b687090cca53a182efc3/packages/backend/src/misc/clone.ts#L6) - [deepCloneの仕様箇所](https://github.com/misskey-dev/misskey/blob/61e7eb8ff1d7ef222e60b687090cca53a182efc3/packages/backend/src/core/RelayService.ts#L117C5-L117C5) - [上記関数 `deliverToRelays` の仕様箇所](https://github.com/search?q=repo:misskey-dev/misskey%20deliverToRelays&type=code) 上記を見る限り、現状`deliverToRelays` で `T extends IActivity`型のオブジェクトをディープクローンする為に`deepClone`関数を使用していますが、現状の`deepClone`関数の型定義`Cloneable`は`IActivity`の全てのプロパティと互換性がないためそのままでは引数として渡せないので、`activity` を `any` として渡しているため型安全性に課題があります。 具体的には継承元の `startTime` などを始めとする `Date` を使用しているプロパティなどが互換性がなさそうです。 調査に多くの時間が取れておらず恐縮ですが、ぱっと考えられる対策としては以下の2つが考えられると思います: 1. `Cloneable`型の定義を拡張し、`T extends IActivity`な型と互換性があるようにする。 - ただし、`Data`...