Compare commits

...

10 Commits

Author SHA1 Message Date
github-actions[bot]
2b71bdf114 Release: 2025.3.0 2025-03-06 10:31:30 +00:00
github-actions[bot]
9d6b521351 Bump version to 2025.3.0-beta.2 2025-03-06 08:19:56 +00:00
syuilo
ad708d896b Merge pull request #15562 from misskey-dev/l10n_develop
New Crowdin updates
2025-03-06 17:06:09 +09:00
かっこかり
22228b6756 enhance: OAuth2 (IndieAuth) でロゴが提供されている場合は表示するように (#15578)
* enhance: OAuthでロゴが提供されている場合は表示するように

* Update Changelog

* refactor

* fix

* fix test
2025-03-06 08:05:14 +00:00
かっこかり
f7ea0c6991 fix(backend): S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (#15583)
* fix(backend/object-storage): disable data integrity protections (MisskeyIO#895)

Cloudflare R2 does not support 'x-amz-checksum-*'

* Update Changelog

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2025-03-06 08:03:57 +00:00
Sayamame-beans
60a3513cfc enhance(frontend): invert how to show the number of attachments(remains) on postform (#15599)
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-06 07:45:46 +00:00
github-actions[bot]
377f002d68 Bump version to 2025.3.0-beta.1 2025-03-06 07:31:52 +00:00
syuilo
896bde1005 revert https://github.com/misskey-dev/misskey/pull/15545
see https://github.com/misskey-dev/misskey/issues/14498
2025-03-06 16:28:25 +09:00
かっこかり
6d0242277d fix(frontend): tabler-iconsが読み込めない問題を修正(正式リリースに差し替え) (#15608) 2025-03-06 05:34:24 +00:00
renovate[bot]
60f90ca649 chore(deps): update [misskey-js] update dependencies (#15594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 07:09:01 +09:00
22 changed files with 230 additions and 293 deletions

View File

@@ -2,17 +2,22 @@
### General ### General
- Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: プロキシアカウントをシステムアカウントとして作成するように
- Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように
書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。
- Fix: システムアカウントが削除できる問題を修正 - Fix: システムアカウントが削除できる問題を修正
### Client ### Client
- Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように
- Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように
- Fix: 削除して編集の削除タイミングを投稿後になるように `#14498` - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました
- これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました
- Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: フォローされたときのメッセージがちらつくことがある問題を修正
- Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正
### Server ### Server
- Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正
- Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895)
## 2025.2.1 ## 2025.2.1

View File

@@ -260,7 +260,7 @@ noCustomEmojis: "No hi ha emojis personalitzats"
noJobs: "No hi ha feines" noJobs: "No hi ha feines"
federating: "Federant" federating: "Federant"
blocked: "Bloquejat" blocked: "Bloquejat"
suspended: "Suspés" suspended: "Anul·lar subscripció "
all: "tot" all: "tot"
subscribing: "Subscrit a" subscribing: "Subscrit a"
publishing: "S'està publicant" publishing: "S'està publicant"
@@ -1311,6 +1311,8 @@ federationSpecified: "Aquest servidor treballa amb una federació de llistes bla
federationDisabled: "La unió es troba deshabilitada en aquest servidor. No es pot interactuar amb usuaris d'altres servidors." federationDisabled: "La unió es troba deshabilitada en aquest servidor. No es pot interactuar amb usuaris d'altres servidors."
confirmOnReact: "Confirmar en reaccionar" confirmOnReact: "Confirmar en reaccionar"
reactAreYouSure: "Vols reaccionar amb \"{emoji}\"?" reactAreYouSure: "Vols reaccionar amb \"{emoji}\"?"
markAsSensitiveConfirm: "Vols marcar aquest contingut com a sensible?"
unmarkAsSensitiveConfirm: "Vols deixar de marcar com a sensible aquest contingut?"
_accountSettings: _accountSettings:
requireSigninToViewContents: "És obligatori l'inici de sessió per poder veure el contingut" requireSigninToViewContents: "És obligatori l'inici de sessió per poder veure el contingut"
requireSigninToViewContentsDescription1: "Es requereix l'inici de sessió per poder veure totes les notes i el contingut que has creat. Amb això esperem evitar que els rastrejadors recopilin informació." requireSigninToViewContentsDescription1: "Es requereix l'inici de sessió per poder veure totes les notes i el contingut que has creat. Amb això esperem evitar que els rastrejadors recopilin informació."
@@ -1332,7 +1334,7 @@ _abuseUserReport:
resolveTutorial: "Si l'informe és legítim selecciona \"Acceptar\" per resoldre'l positivament. Però si l'informe no és legítim selecciona \"Rebutjar\" per resoldre'l negativament." resolveTutorial: "Si l'informe és legítim selecciona \"Acceptar\" per resoldre'l positivament. Però si l'informe no és legítim selecciona \"Rebutjar\" per resoldre'l negativament."
_delivery: _delivery:
status: "Estat d'entrega " status: "Estat d'entrega "
stop: "Suspés" stop: "Anul·lar subscripció "
resume: "Torna a enviar" resume: "Torna a enviar"
_type: _type:
none: "S'està publicant" none: "S'està publicant"
@@ -2594,6 +2596,7 @@ _moderationLogTypes:
deletePage: "Esborrar la pàgina" deletePage: "Esborrar la pàgina"
deleteFlash: "Esborrar el guió" deleteFlash: "Esborrar el guió"
deleteGalleryPost: "Esborrar la publicació de la galeria" deleteGalleryPost: "Esborrar la publicació de la galeria"
updateProxyAccountDescription: "Actualitzar descripció del compte proxy"
_fileViewer: _fileViewer:
title: "Detall del fitxer" title: "Detall del fitxer"
type: "Tipus de fitxer" type: "Tipus de fitxer"

View File

@@ -5,6 +5,7 @@ introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový
poweredByMisskeyDescription: "{name} je jeden ze serverů využívající open source platformu <b>Misskey<b> (nazývaná \"Misskey instance\")." poweredByMisskeyDescription: "{name} je jeden ze serverů využívající open source platformu <b>Misskey<b> (nazývaná \"Misskey instance\")."
monthAndDay: "{day}. {month}." monthAndDay: "{day}. {month}."
search: "Vyhledávání" search: "Vyhledávání"
reset: "Obnovit"
notifications: "Oznámení" notifications: "Oznámení"
username: "Uživatelské jméno" username: "Uživatelské jméno"
password: "Heslo" password: "Heslo"
@@ -365,8 +366,11 @@ hcaptcha: "hCaptcha"
enableHcaptcha: "Aktivovat hCaptchu" enableHcaptcha: "Aktivovat hCaptchu"
hcaptchaSiteKey: "Klíč stránky" hcaptchaSiteKey: "Klíč stránky"
hcaptchaSecretKey: "Tajný Klíč (Secret Key)" hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
mcaptcha: "mCaptcha"
enableMcaptcha: "Aktivovat mCaptchu"
mcaptchaSiteKey: "Klíč stránky" mcaptchaSiteKey: "Klíč stránky"
mcaptchaSecretKey: "Tajný Klíč (Secret Key)" mcaptchaSecretKey: "Tajný Klíč (Secret Key)"
mcaptchaInstanceUrl: "URL mCaptcha serveru"
recaptcha: "reCAPTCHA" recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnout ReCAPTCHu" enableRecaptcha: "Zapnout ReCAPTCHu"
recaptchaSiteKey: "Klíč stránky" recaptchaSiteKey: "Klíč stránky"

View File

@@ -126,7 +126,7 @@ pinnedNote: "Nota in primo piano"
pinned: "Fissa sul profilo" pinned: "Fissa sul profilo"
you: "Tu" you: "Tu"
clickToShow: "Contenuto occultato, cliccare solo se si intende vedere" clickToShow: "Contenuto occultato, cliccare solo se si intende vedere"
sensitive: "Allegato esplicito" sensitive: "Esplicito"
add: "Aggiungi" add: "Aggiungi"
reaction: "Reazioni" reaction: "Reazioni"
reactions: "Reazioni" reactions: "Reazioni"
@@ -228,7 +228,7 @@ jobQueue: "Coda di lavoro"
cpuAndMemory: "CPU e Memoria" cpuAndMemory: "CPU e Memoria"
network: "Rete" network: "Rete"
disk: "Disco" disk: "Disco"
instanceInfo: "Informazioni sull'istanza" instanceInfo: "Informazioni sul server"
statistics: "Statistiche" statistics: "Statistiche"
clearQueue: "Svuota coda" clearQueue: "Svuota coda"
clearQueueConfirmTitle: "Vuoi davvero svuotare la coda?" clearQueueConfirmTitle: "Vuoi davvero svuotare la coda?"
@@ -445,7 +445,7 @@ exploreFediverse: "Esplora il Fediverso"
popularTags: "Hashtag popolari" popularTags: "Hashtag popolari"
userList: "Liste" userList: "Liste"
about: "Informazioni" about: "Informazioni"
aboutMisskey: "Informazioni di Misskey" aboutMisskey: "A proposito di Misskey"
administrator: "Amministratore" administrator: "Amministratore"
token: "Token" token: "Token"
2fa: "Autenticazione a due fattori" 2fa: "Autenticazione a due fattori"
@@ -893,7 +893,7 @@ searchResult: "Risultati della Ricerca"
hashtags: "Hashtag" hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi" troubleshooting: "Risoluzione problemi"
useBlurEffect: "Utilizza effetto sfocatura" useBlurEffect: "Utilizza effetto sfocatura"
learnMore: "Più dettagli" learnMore: "Per saperne di più"
misskeyUpdated: "Misskey è stato aggiornato!" misskeyUpdated: "Misskey è stato aggiornato!"
whatIsNew: "Informazioni sull'aggiornamento" whatIsNew: "Informazioni sull'aggiornamento"
translate: "Traduci" translate: "Traduci"
@@ -901,7 +901,7 @@ translatedFrom: "Traduzione da {x}"
accountDeletionInProgress: "È in corso l'eliminazione del profilo" accountDeletionInProgress: "È in corso l'eliminazione del profilo"
usernameInfo: "Un nome per identificare univocamente il tuo profilo sull'istanza. Puoi utilizzare caratteri alfanumerici maiuscoli, minuscoli e il trattino basso (_). Non potrai cambiare nome utente in seguito." usernameInfo: "Un nome per identificare univocamente il tuo profilo sull'istanza. Puoi utilizzare caratteri alfanumerici maiuscoli, minuscoli e il trattino basso (_). Non potrai cambiare nome utente in seguito."
aiChanMode: "Modalità Ai" aiChanMode: "Modalità Ai"
devMode: "Modalità sviluppatori" devMode: "Modalità sviluppo"
keepCw: "Mostra i contenuti espliciti" keepCw: "Mostra i contenuti espliciti"
pubSub: "Publish/Subscribe del profilo" pubSub: "Publish/Subscribe del profilo"
lastCommunication: "La comunicazione più recente" lastCommunication: "La comunicazione più recente"
@@ -1049,7 +1049,7 @@ permissionDeniedError: "Errore, attività non autorizzata"
permissionDeniedErrorDescription: "Non si dispone dell'autorizzazione per eseguire questa operazione." permissionDeniedErrorDescription: "Non si dispone dell'autorizzazione per eseguire questa operazione."
preset: "Preimpostato" preset: "Preimpostato"
selectFromPresets: "Seleziona preimpostato" selectFromPresets: "Seleziona preimpostato"
achievements: "Obiettivi raggiunti" achievements: "Conquiste"
gotInvalidResponseError: "Risposta del server non valida" gotInvalidResponseError: "Risposta del server non valida"
gotInvalidResponseErrorDescription: "Il server potrebbe essere irraggiungibile o in manutenzione. Riprova più tardi." gotInvalidResponseErrorDescription: "Il server potrebbe essere irraggiungibile o in manutenzione. Riprova più tardi."
thisPostMayBeAnnoying: "Questa nota potrebbe essere offensiva" thisPostMayBeAnnoying: "Questa nota potrebbe essere offensiva"
@@ -1311,6 +1311,8 @@ federationSpecified: "Questo server è federato solo con istanze specifiche del
federationDisabled: "Questo server ha la federazione disabilitata. Non puoi interagire con profili provenienti da altri server." federationDisabled: "Questo server ha la federazione disabilitata. Non puoi interagire con profili provenienti da altri server."
confirmOnReact: "Confermare le reazioni" confirmOnReact: "Confermare le reazioni"
reactAreYouSure: "Vuoi davvero reagire con {emoji} ?" reactAreYouSure: "Vuoi davvero reagire con {emoji} ?"
markAsSensitiveConfirm: "Vuoi davvero indicare questo contenuto multimediale come esplicito?"
unmarkAsSensitiveConfirm: "Vuoi davvero indicare come non esplicito il contenuto multimediale?"
_accountSettings: _accountSettings:
requireSigninToViewContents: "Per vedere il contenuto, è necessaria l'iscrizione" requireSigninToViewContents: "Per vedere il contenuto, è necessaria l'iscrizione"
requireSigninToViewContentsDescription1: "Richiedere l'iscrizione per visualizzare tutte le Note e gli altri contenuti che hai creato. Probabilmente l'effetto è impedire la raccolta di informazioni da parte dei bot crawler." requireSigninToViewContentsDescription1: "Richiedere l'iscrizione per visualizzare tutte le Note e gli altri contenuti che hai creato. Probabilmente l'effetto è impedire la raccolta di informazioni da parte dei bot crawler."
@@ -1447,9 +1449,9 @@ _initialTutorial:
description: "Queste sono solamente alcune delle funzionalità principali di Misskey. Per ulteriori informazioni, {link}." description: "Queste sono solamente alcune delle funzionalità principali di Misskey. Per ulteriori informazioni, {link}."
_timelineDescription: _timelineDescription:
home: "Nella Timeline Home, la tua cronologia principale, puoi vedere le Note provenienti dai profili che segui (Following)." home: "Nella Timeline Home, la tua cronologia principale, puoi vedere le Note provenienti dai profili che segui (Following)."
local: "La Timeline Locale, è una cronologia di Note pubblicate da tutti i profili iscritti su questo server." local: "La Timeline Locale è un flusso di Note pubblicate dai profili iscritti a questo server."
social: "La Timeline Sociale, unisce in ordine cronologico l'elenco di Note presenti nella Timeline Home e quella Locale." social: "La Timeline Sociale elenca, in ordine cronologico, il flusso di Note nella Timeline Home e Locale."
global: "La Timeline Federata ti consente di vedere le Note pubblicate dai profili di tutti gli altri server federati a questo." global: "Nella Timeline Federata trovi il flusso di Note provenienti da profili iscritti ad altri server, federati a questo."
_serverRules: _serverRules:
description: "In Europa è necessario mostrare l'informativa sul trattamento dei dati personali, prima della registrazione al servizio." description: "In Europa è necessario mostrare l'informativa sul trattamento dei dati personali, prima della registrazione al servizio."
_serverSettings: _serverSettings:
@@ -1474,7 +1476,7 @@ _accountMigration:
moveFrom: "Migra un altro profilo dentro a questo" moveFrom: "Migra un altro profilo dentro a questo"
moveFromSub: "Crea un alias verso un altro profilo remoto" moveFromSub: "Crea un alias verso un altro profilo remoto"
moveFromLabel: "Profilo da cui migrare #{n}" moveFromLabel: "Profilo da cui migrare #{n}"
moveFromDescription: "Se desideri spostare i Follower da un altro profilo a questo, devi prima creare un alias qui. Assicurati averlo creato PRIMA di eseguire l'attività! Inserisci l'indirizzo del profilo mittente in questo modo: @persona@istanza.it" moveFromDescription: "Se desideri spostare i Follower da un altro profilo a questo, devi prima creare un alias qui. Assicurati averlo creato PRIMA di eseguire l'attività! Inserisci l'indirizzo del profilo mittente in questo modo: @persona@vecchia.istanza.it"
moveTo: "Migrare questo profilo verso un un altro" moveTo: "Migrare questo profilo verso un un altro"
moveToLabel: "Profilo verso cui migrare" moveToLabel: "Profilo verso cui migrare"
moveCannotBeUndone: "La migrazione è irreversibile, non può essere interrotta o annullata." moveCannotBeUndone: "La migrazione è irreversibile, non può essere interrotta o annullata."
@@ -1550,13 +1552,13 @@ _achievements:
title: "Principiante III" title: "Principiante III"
description: "Hai totalizzato 15 accessi!" description: "Hai totalizzato 15 accessi!"
_login30: _login30:
title: "Misskist I" title: "Missalcolista I"
description: "Hai totalizzato 30 accessi!" description: "Hai totalizzato 30 accessi!"
_login60: _login60:
title: "Misskeist II" title: "Missalcolista II"
description: "Hai totalizzato 60 accessi!" description: "Hai totalizzato 60 accessi!"
_login100: _login100:
title: "Misskeist III" title: "Missalcolista III"
description: "Hai totalizzato 100 accessi!" description: "Hai totalizzato 100 accessi!"
flavor: "Violent Misskeist" flavor: "Violent Misskeist"
_login200: _login200:
@@ -1642,10 +1644,10 @@ _achievements:
description: "Hai superato i 1.000 profili Follower" description: "Hai superato i 1.000 profili Follower"
_collectAchievements30: _collectAchievements30:
title: "Collezionista di successi" title: "Collezionista di successi"
description: "Hai raggiunto 30 obiettivi" description: "Hai raggiunto 30 conquiste"
_viewAchievements3min: _viewAchievements3min:
title: "Mi piacciono i risultati" title: "Mi piacciono i risultati"
description: "Guarda la tua collezione di obiettivi per almeno 3 minuti" description: "Ammira la tua collezione di conquiste per almeno 3 minuti"
_iLoveMisskey: _iLoveMisskey:
title: "I LOVE Misskey" title: "I LOVE Misskey"
description: "Pubblica «I ♥ #Misskey»" description: "Pubblica «I ♥ #Misskey»"
@@ -1910,7 +1912,7 @@ _registry:
domain: "Dominio" domain: "Dominio"
createKey: "Crea chiave" createKey: "Crea chiave"
_aboutMisskey: _aboutMisskey:
about: "Misskey è un software libero e open source, sviluppato da syuilo dal 2014." about: "Misskey è software libero, open source, sviluppato da Syuilo fin dal lontano 2014."
contributors: "Principali sostenitori" contributors: "Principali sostenitori"
allContributors: "Tutti i sostenitori" allContributors: "Tutti i sostenitori"
source: "Codice sorgente" source: "Codice sorgente"
@@ -2237,7 +2239,7 @@ _widgets:
userList: "Elenco utenti" userList: "Elenco utenti"
_userList: _userList:
chooseList: "Seleziona una lista" chooseList: "Seleziona una lista"
clicker: "Cliccaggio" clicker: "Cliccheria"
birthdayFollowings: "Compleanni del giorno" birthdayFollowings: "Compleanni del giorno"
_cw: _cw:
hide: "Nascondere" hide: "Nascondere"
@@ -2300,7 +2302,7 @@ _profile:
metadataContent: "Contenuto" metadataContent: "Contenuto"
changeAvatar: "Modifica immagine profilo" changeAvatar: "Modifica immagine profilo"
changeBanner: "Cambia intestazione" changeBanner: "Cambia intestazione"
verifiedLinkDescription: "Puoi verificare il tuo profilo mostrando una icona. Devi inserire la URL alla pagina che contiene un link al tuo profilo." verifiedLinkDescription: "Puoi verificare il tuo profilo mostrando una icona. Devi inserire la URL alla pagina che contiene un link al tuo profilo.\nPer verificare il profilo tramite la spunta di conferma, devi inserire la url alla pagina che contiene un link al tuo profilo Misskey. Deve avere attributo rel='me'."
avatarDecorationMax: "Puoi aggiungere fino a {max} decorazioni." avatarDecorationMax: "Puoi aggiungere fino a {max} decorazioni."
followedMessage: "Messaggio, quando qualcuno ti segue" followedMessage: "Messaggio, quando qualcuno ti segue"
followedMessageDescription: "Puoi impostare un breve messaggio da mostrare agli altri profili quando ti seguono." followedMessageDescription: "Puoi impostare un breve messaggio da mostrare agli altri profili quando ti seguono."
@@ -2594,6 +2596,7 @@ _moderationLogTypes:
deletePage: "Pagina eliminata" deletePage: "Pagina eliminata"
deleteFlash: "Play eliminato" deleteFlash: "Play eliminato"
deleteGalleryPost: "Eliminazione pubblicazione nella Galleria" deleteGalleryPost: "Eliminazione pubblicazione nella Galleria"
updateProxyAccountDescription: "Aggiornata la descrizione del profilo proxy"
_fileViewer: _fileViewer:
title: "Dettagli del file" title: "Dettagli del file"
type: "Tipo di file" type: "Tipo di file"
@@ -2811,8 +2814,8 @@ _selfXssPrevention:
description2: "Se non sai esattamente cosa stai facendo, %c smetti subito e chiudi questa finestra." description2: "Se non sai esattamente cosa stai facendo, %c smetti subito e chiudi questa finestra."
description3: "Per favore, controlla questo collegamento per avere maggiori dettagli. {link}" description3: "Per favore, controlla questo collegamento per avere maggiori dettagli. {link}"
_followRequest: _followRequest:
recieved: "Ricezione richiesta di Follow" recieved: "Richieste in ingresso"
sent: "Richiesta di Follow, inviata" sent: "Richieste in uscita"
_remoteLookupErrors: _remoteLookupErrors:
_federationNotAllowed: _federationNotAllowed:
title: "Server irraggiungibile" title: "Server irraggiungibile"
@@ -2857,4 +2860,8 @@ _bootErrors:
_search: _search:
searchScopeAll: "Tutte" searchScopeAll: "Tutte"
searchScopeLocal: "Locale" searchScopeLocal: "Locale"
searchScopeServer: "Specifiche del server"
searchScopeUser: "Profilo specifico" searchScopeUser: "Profilo specifico"
pleaseEnterServerHost: "Inserire il nome host"
pleaseSelectUser: "Per favore, seleziona un profilo"
serverHostPlaceholder: "Es: misskey.example.com"

View File

@@ -1311,6 +1311,8 @@ federationSpecified: "此服务器已开启联合白名单。只能与管理员
federationDisabled: "此服务器已禁用联合。无法与其它服务器上的用户通信。" federationDisabled: "此服务器已禁用联合。无法与其它服务器上的用户通信。"
confirmOnReact: "发送回应前需要确认" confirmOnReact: "发送回应前需要确认"
reactAreYouSure: "要用「{emoji}」进行回应吗?" reactAreYouSure: "要用「{emoji}」进行回应吗?"
markAsSensitiveConfirm: "要将此媒体标记为敏感吗?"
unmarkAsSensitiveConfirm: "要将此媒体解除敏感标记吗?"
_accountSettings: _accountSettings:
requireSigninToViewContents: "需要登录才能显示内容" requireSigninToViewContents: "需要登录才能显示内容"
requireSigninToViewContentsDescription1: "您发布的所有帖子将变成需要登入后才会显示。有望防止爬虫收集各种信息。" requireSigninToViewContentsDescription1: "您发布的所有帖子将变成需要登入后才会显示。有望防止爬虫收集各种信息。"
@@ -2594,6 +2596,7 @@ _moderationLogTypes:
deletePage: "删除了页面" deletePage: "删除了页面"
deleteFlash: "删除了 Play" deleteFlash: "删除了 Play"
deleteGalleryPost: "删除了图库稿件" deleteGalleryPost: "删除了图库稿件"
updateProxyAccountDescription: "更新代理账户的说明"
_fileViewer: _fileViewer:
title: "文件信息" title: "文件信息"
type: "文件类型" type: "文件类型"
@@ -2857,4 +2860,8 @@ _bootErrors:
_search: _search:
searchScopeAll: "全部" searchScopeAll: "全部"
searchScopeLocal: "本地" searchScopeLocal: "本地"
searchScopeUser: "用户指定" searchScopeServer: "指定服务器"
searchScopeUser: "指定用户"
pleaseEnterServerHost: "请填写服务器主机名"
pleaseSelectUser: "请选择用户"
serverHostPlaceholder: "如misskey.example.com"

View File

@@ -1311,6 +1311,8 @@ federationSpecified: "此伺服器以白名單聯邦的方式運作。除了管
federationDisabled: "此伺服器未開啟站台聯邦。無法與其他伺服器上的使用者互動。" federationDisabled: "此伺服器未開啟站台聯邦。無法與其他伺服器上的使用者互動。"
confirmOnReact: "反應時確認" confirmOnReact: "反應時確認"
reactAreYouSure: "用「 {emoji} 」反應嗎?" reactAreYouSure: "用「 {emoji} 」反應嗎?"
markAsSensitiveConfirm: "要將這個媒體設定為敏感嗎?"
unmarkAsSensitiveConfirm: "要解除這個媒體的敏感設定嗎?"
_accountSettings: _accountSettings:
requireSigninToViewContents: "須登入以顯示內容" requireSigninToViewContents: "須登入以顯示內容"
requireSigninToViewContentsDescription1: "必須登入才會顯示您建立的貼文等內容。可望有效防止資訊被爬蟲蒐集。" requireSigninToViewContentsDescription1: "必須登入才會顯示您建立的貼文等內容。可望有效防止資訊被爬蟲蒐集。"
@@ -2594,6 +2596,7 @@ _moderationLogTypes:
deletePage: "刪除頁面" deletePage: "刪除頁面"
deleteFlash: "刪除 Play" deleteFlash: "刪除 Play"
deleteGalleryPost: "刪除相簿的貼文" deleteGalleryPost: "刪除相簿的貼文"
updateProxyAccountDescription: "更新代理帳戶的說明"
_fileViewer: _fileViewer:
title: "檔案詳細資訊" title: "檔案詳細資訊"
type: "檔案類型 " type: "檔案類型 "
@@ -2857,4 +2860,8 @@ _bootErrors:
_search: _search:
searchScopeAll: "全部" searchScopeAll: "全部"
searchScopeLocal: "本地" searchScopeLocal: "本地"
searchScopeServer: "指定伺服器"
searchScopeUser: "指定使用者" searchScopeUser: "指定使用者"
pleaseEnterServerHost: "請輸入伺服器的主機名稱"
pleaseSelectUser: "請選擇使用者"
serverHostPlaceholder: "例misskey.example.com"

View File

@@ -1,6 +1,6 @@
{ {
"name": "misskey", "name": "misskey",
"version": "2025.3.0-beta.0", "version": "2025.3.0",
"codename": "nasubi", "codename": "nasubi",
"repository": { "repository": {
"type": "git", "type": "git",

View File

@@ -46,6 +46,8 @@ export class S3Service {
tls: meta.objectStorageUseSSL, tls: meta.objectStorageUseSSL,
forcePathStyle: meta.objectStorageEndpoint ? meta.objectStorageS3ForcePathStyle : false, // AWS with endPoint omitted forcePathStyle: meta.objectStorageEndpoint ? meta.objectStorageS3ForcePathStyle : false, // AWS with endPoint omitted
requestHandler: new NodeHttpHandler(handlerOption), requestHandler: new NodeHttpHandler(handlerOption),
requestChecksumCalculation: 'WHEN_REQUIRED',
responseChecksumValidation: 'WHEN_REQUIRED',
}); });
} }

View File

@@ -95,6 +95,7 @@ interface ClientInformation {
id: string; id: string;
redirectUris: string[]; redirectUris: string[];
name: string; name: string;
logo: string | null;
} }
// https://indieauth.spec.indieweb.org/#client-information-discovery // https://indieauth.spec.indieweb.org/#client-information-discovery
@@ -124,18 +125,27 @@ async function discoverClientInformation(logger: Logger, httpRequestService: Htt
redirectUris.push(...[...fragment.querySelectorAll<HTMLLinkElement>('link[rel=redirect_uri][href]')].map(el => el.href)); redirectUris.push(...[...fragment.querySelectorAll<HTMLLinkElement>('link[rel=redirect_uri][href]')].map(el => el.href));
let name = id; let name = id;
let logo: string | null = null;
if (text) { if (text) {
const microformats = mf2(text, { baseUrl: res.url }); const microformats = mf2(text, { baseUrl: res.url });
const nameProperty = microformats.items.find(item => item.type?.includes('h-app') && item.properties.url.includes(id))?.properties.name[0]; const correspondingProperties = microformats.items.find(item => item.type?.includes('h-app') && item.properties.url.includes(id));
if (correspondingProperties) {
const nameProperty = correspondingProperties.properties.name?.[0];
if (typeof nameProperty === 'string') { if (typeof nameProperty === 'string') {
name = nameProperty; name = nameProperty;
} }
const logoProperty = correspondingProperties.properties.logo?.[0];
if (typeof logoProperty === 'string') {
logo = logoProperty;
}
}
} }
return { return {
id, id,
redirectUris: redirectUris.map(uri => new URL(uri, res.url).toString()), redirectUris: redirectUris.map(uri => new URL(uri, res.url).toString()),
name: typeof name === 'string' ? name : id, name: typeof name === 'string' ? name : id,
logo,
}; };
} catch (err) { } catch (err) {
console.error(err); console.error(err);
@@ -379,6 +389,7 @@ export class OAuth2ProviderService {
return await reply.view('oauth', { return await reply.view('oauth', {
transactionId: oauth2.transactionID, transactionId: oauth2.transactionID,
clientName: oauth2.client.name, clientName: oauth2.client.name,
clientLogo: oauth2.client.logo,
scope: oauth2.req.scope.join(' '), scope: oauth2.req.scope.join(' '),
}); });
}); });

View File

@@ -6,4 +6,6 @@ block meta
//- XXX: Remove navigation bar in auth page? //- XXX: Remove navigation bar in auth page?
meta(name='misskey:oauth:transaction-id' content=transactionId) meta(name='misskey:oauth:transaction-id' content=transactionId)
meta(name='misskey:oauth:client-name' content=clientName) meta(name='misskey:oauth:client-name' content=clientName)
if clientLogo
meta(name='misskey:oauth:client-logo' content=clientLogo)
meta(name='misskey:oauth:scope' content=scope) meta(name='misskey:oauth:scope' content=scope)

View File

@@ -72,11 +72,12 @@ const clientConfig: ModuleOptions<'client_id'> = {
}, },
}; };
function getMeta(html: string): { transactionId: string | undefined, clientName: string | undefined } { function getMeta(html: string): { transactionId: string | undefined, clientName: string | undefined, clientLogo: string | undefined } {
const fragment = JSDOM.fragment(html); const fragment = JSDOM.fragment(html);
return { return {
transactionId: fragment.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:transaction-id"]')?.content, transactionId: fragment.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:transaction-id"]')?.content,
clientName: fragment.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-name"]')?.content, clientName: fragment.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-name"]')?.content,
clientLogo: fragment.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-logo"]')?.content,
}; };
} }
@@ -915,6 +916,59 @@ describe('OAuth', () => {
assert.strictEqual(getMeta(await response.text()).clientName, `http://127.0.0.1:${clientPort}/`); assert.strictEqual(getMeta(await response.text()).clientName, `http://127.0.0.1:${clientPort}/`);
}); });
test('With Logo', async () => {
sender = (reply): void => {
reply.header('Link', '</redirect>; rel="redirect_uri"');
reply.send(`
<!DOCTYPE html>
<div class="h-app">
<a href="/" class="u-url p-name">Misklient</a>
<img src="/logo.png" class="u-logo" />
</div>
`);
reply.send();
};
const client = new AuthorizationCode(clientConfig);
const response = await fetch(client.authorizeURL({
redirect_uri,
scope: 'write:notes',
state: 'state',
code_challenge: 'code',
code_challenge_method: 'S256',
} as AuthorizationParamsExtended));
assert.strictEqual(response.status, 200);
const meta = getMeta(await response.text());
assert.strictEqual(meta.clientName, 'Misklient');
assert.strictEqual(meta.clientLogo, `http://127.0.0.1:${clientPort}/logo.png`);
});
test('Missing Logo', async () => {
sender = (reply): void => {
reply.header('Link', '</redirect>; rel="redirect_uri"');
reply.send(`
<!DOCTYPE html>
<div class="h-app"><a href="/" class="u-url p-name">Misklient
`);
reply.send();
};
const client = new AuthorizationCode(clientConfig);
const response = await fetch(client.authorizeURL({
redirect_uri,
scope: 'write:notes',
state: 'state',
code_challenge: 'code',
code_challenge_method: 'S256',
} as AuthorizationParamsExtended));
assert.strictEqual(response.status, 200);
const meta = getMeta(await response.text());
assert.strictEqual(meta.clientName, 'Misklient');
assert.strictEqual(meta.clientLogo, undefined);
});
test('Mismatching URL in h-app', async () => { test('Mismatching URL in h-app', async () => {
sender = (reply): void => { sender = (reply): void => {
reply.header('Link', '</redirect>; rel="redirect_uri"'); reply.header('Link', '</redirect>; rel="redirect_uri"');

View File

@@ -14,7 +14,7 @@
"@rollup/plugin-json": "6.1.0", "@rollup/plugin-json": "6.1.0",
"@rollup/plugin-replace": "6.0.2", "@rollup/plugin-replace": "6.0.2",
"@rollup/pluginutils": "5.1.4", "@rollup/pluginutils": "5.1.4",
"@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz", "@tabler/icons-webfont": "3.31.0",
"@twemoji/parser": "15.1.1", "@twemoji/parser": "15.1.1",
"@vitejs/plugin-vue": "5.2.1", "@vitejs/plugin-vue": "5.2.1",
"@vue/compiler-sfc": "3.5.13", "@vue/compiler-sfc": "3.5.13",

View File

@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<link rel="preload" href="https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/about-icon.png?raw=true" as="image" type="image/png" crossorigin="anonymous"> <link rel="preload" href="https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/about-icon.png?raw=true" as="image" type="image/png" crossorigin="anonymous">
<link rel="preload" href="https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/fedi.jpg?raw=true" as="image" type="image/jpeg" crossorigin="anonymous"> <link rel="preload" href="https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/fedi.jpg?raw=true" as="image" type="image/jpeg" crossorigin="anonymous">
<link rel="stylesheet" href="https://unpkg.com/@tabler/icons-webfont@3.3.0/dist/tabler-icons.min.css"> <link rel="stylesheet" href="https://unpkg.com/@tabler/icons-webfont@3.31.0/dist/tabler-icons.min.css">
<link rel="stylesheet" href="https://unpkg.com/@fontsource/m-plus-rounded-1c/index.css"> <link rel="stylesheet" href="https://unpkg.com/@fontsource/m-plus-rounded-1c/index.css">
<style> <style>
html { html {

View File

@@ -25,7 +25,7 @@
"@rollup/plugin-replace": "6.0.2", "@rollup/plugin-replace": "6.0.2",
"@rollup/pluginutils": "5.1.4", "@rollup/pluginutils": "5.1.4",
"@syuilo/aiscript": "0.19.0", "@syuilo/aiscript": "0.19.0",
"@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz", "@tabler/icons-webfont": "3.31.0",
"@twemoji/parser": "15.1.1", "@twemoji/parser": "15.1.1",
"@vitejs/plugin-vue": "5.2.1", "@vitejs/plugin-vue": "5.2.1",
"@vue/compiler-sfc": "3.5.13", "@vue/compiler-sfc": "3.5.13",

View File

@@ -104,18 +104,18 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue'; import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue';
import type { ShallowRef } from 'vue';
import * as mfm from 'mfm-js'; import * as mfm from 'mfm-js';
import * as Misskey from 'misskey-js'; import * as Misskey from 'misskey-js';
import insertTextAtCursor from 'insert-text-at-cursor'; import insertTextAtCursor from 'insert-text-at-cursor';
import { toASCII } from 'punycode.js'; import { toASCII } from 'punycode.js';
import { host, url } from '@@/js/config.js'; import { host, url } from '@@/js/config.js';
import type { ShallowRef } from 'vue';
import type { PostFormProps } from '@/types/post-form.js'; import type { PostFormProps } from '@/types/post-form.js';
import type { PollEditorModelValue } from '@/components/MkPollEditor.vue'; import MkNoteSimple from '@/components/MkNoteSimple.vue';
import MkNotePreview from '@/components/MkNotePreview.vue'; import MkNotePreview from '@/components/MkNotePreview.vue';
import XPostFormAttaches from '@/components/MkPostFormAttaches.vue'; import XPostFormAttaches from '@/components/MkPostFormAttaches.vue';
import MkPollEditor from '@/components/MkPollEditor.vue'; import MkPollEditor from '@/components/MkPollEditor.vue';
import MkNoteSimple from '@/components/MkNoteSimple.vue'; import type { PollEditorModelValue } from '@/components/MkPollEditor.vue';
import { erase, unique } from '@/scripts/array.js'; import { erase, unique } from '@/scripts/array.js';
import { extractMentions } from '@/scripts/extract-mentions.js'; import { extractMentions } from '@/scripts/extract-mentions.js';
import { formatTimeString } from '@/scripts/format-time-string.js'; import { formatTimeString } from '@/scripts/format-time-string.js';
@@ -150,7 +150,6 @@ const props = withDefaults(defineProps<PostFormProps & {
autofocus: true, autofocus: true,
mock: false, mock: false,
initialLocalOnly: undefined, initialLocalOnly: undefined,
deleteInitialNoteAfterPost: false,
}); });
provide('mock', props.mock); provide('mock', props.mock);
@@ -846,12 +845,6 @@ async function post(ev?: MouseEvent) {
clear(); clear();
} }
nextTick(() => { nextTick(() => {
// 削除して編集の対象ノートを削除
if (props.initialNote && props.deleteInitialNoteAfterPost) {
misskeyApi('notes/delete', {
noteId: props.initialNote.id,
});
}
deleteDraft(); deleteDraft();
emit('posted'); emit('posted');
if (postData.text && postData.text !== '') { if (postData.text && postData.text !== '') {
@@ -903,11 +896,6 @@ async function post(ev?: MouseEvent) {
if (m === 0 && s === 0) { if (m === 0 && s === 0) {
claimAchievement('postedAt0min0sec'); claimAchievement('postedAt0min0sec');
} }
if (props.initialNote && props.deleteInitialNoteAfterPost) {
if (date.getTime() - new Date(props.initialNote.createdAt).getTime() < 1000 * 60 && props.initialNote.userId === $i.id) {
claimAchievement('noteDeletedWithin1min');
}
}
}); });
}).catch(err => { }).catch(err => {
posting.value = false; posting.value = false;

View File

@@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
[$style.exceeded]: props.modelValue.length > 16, [$style.exceeded]: props.modelValue.length > 16,
}]" }]"
> >
{{ 16 - props.modelValue.length }}/16 {{ props.modelValue.length }}/16
</p> </p>
</div> </div>
</template> </template>

View File

@@ -11,6 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkAuthConfirm <MkAuthConfirm
ref="authRoot" ref="authRoot"
:name="name" :name="name"
:icon="logo"
:permissions="permissions" :permissions="permissions"
:waitOnDeny="true" :waitOnDeny="true"
@accept="onAccept" @accept="onAccept"
@@ -33,6 +34,7 @@ if (transactionIdMeta) {
} }
const name = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-name"]')?.content; const name = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-name"]')?.content;
const logo = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:client-logo"]')?.content;
const permissions = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:scope"]')?.content.split(' ').filter((p): p is typeof Misskey.permissions[number] => (Misskey.permissions as readonly string[]).includes(p)) ?? []; const permissions = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:scope"]')?.content.split(' ').filter((p): p is typeof Misskey.permissions[number] => (Misskey.permissions as readonly string[]).includes(p)) ?? [];
function doPost(token: string, decision: 'accept' | 'deny') { function doPost(token: string, decision: 'accept' | 'deny') {

View File

@@ -4,10 +4,10 @@
*/ */
import { defineAsyncComponent } from 'vue'; import { defineAsyncComponent } from 'vue';
import type { Ref, ShallowRef } from 'vue';
import * as Misskey from 'misskey-js'; import * as Misskey from 'misskey-js';
import { url } from '@@/js/config.js'; import { url } from '@@/js/config.js';
import { claimAchievement } from './achievements.js'; import { claimAchievement } from './achievements.js';
import type { Ref, ShallowRef } from 'vue';
import type { MenuItem } from '@/types/menu.js'; import type { MenuItem } from '@/types/menu.js';
import { $i } from '@/account.js'; import { $i } from '@/account.js';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
@@ -208,7 +208,15 @@ export function getNoteMenu(props: {
}).then(({ canceled }) => { }).then(({ canceled }) => {
if (canceled) return; if (canceled) return;
os.post({ initialNote: appearNote, renote: appearNote.renote, reply: appearNote.reply, channel: appearNote.channel, deleteInitialNoteAfterPost: true }); misskeyApi('notes/delete', {
noteId: appearNote.id,
});
os.post({ initialNote: appearNote, renote: appearNote.renote, reply: appearNote.reply, channel: appearNote.channel });
if (Date.now() - new Date(appearNote.createdAt).getTime() < 1000 * 60 && appearNote.userId === $i.id) {
claimAchievement('noteDeletedWithin1min');
}
}); });
} }

View File

@@ -19,5 +19,4 @@ export interface PostFormProps {
initialVisibleUsers?: Misskey.entities.UserDetailed[]; initialVisibleUsers?: Misskey.entities.UserDetailed[];
initialNote?: Misskey.entities.Note; initialNote?: Misskey.entities.Note;
instant?: boolean; instant?: boolean;
deleteInitialNoteAfterPost?: boolean;
}; };

View File

@@ -8,9 +8,9 @@
}, },
"devDependencies": { "devDependencies": {
"@readme/openapi-parser": "2.7.0", "@readme/openapi-parser": "2.7.0",
"@types/node": "22.13.7", "@types/node": "22.13.9",
"@typescript-eslint/eslint-plugin": "8.25.0", "@typescript-eslint/eslint-plugin": "8.26.0",
"@typescript-eslint/parser": "8.25.0", "@typescript-eslint/parser": "8.26.0",
"openapi-types": "12.1.3", "openapi-types": "12.1.3",
"openapi-typescript": "6.7.6", "openapi-typescript": "6.7.6",
"ts-case-convert": "2.1.0", "ts-case-convert": "2.1.0",

View File

@@ -1,7 +1,7 @@
{ {
"type": "module", "type": "module",
"name": "misskey-js", "name": "misskey-js",
"version": "2025.3.0-beta.0", "version": "2025.3.0",
"description": "Misskey SDK for JavaScript", "description": "Misskey SDK for JavaScript",
"license": "MIT", "license": "MIT",
"main": "./built/index.js", "main": "./built/index.js",
@@ -35,12 +35,12 @@
"directory": "packages/misskey-js" "directory": "packages/misskey-js"
}, },
"devDependencies": { "devDependencies": {
"@microsoft/api-extractor": "7.51.0", "@microsoft/api-extractor": "7.51.1",
"@swc/jest": "0.2.37", "@swc/jest": "0.2.37",
"@types/jest": "29.5.14", "@types/jest": "29.5.14",
"@types/node": "22.13.7", "@types/node": "22.13.9",
"@typescript-eslint/eslint-plugin": "8.25.0", "@typescript-eslint/eslint-plugin": "8.26.0",
"@typescript-eslint/parser": "8.25.0", "@typescript-eslint/parser": "8.26.0",
"jest": "29.7.0", "jest": "29.7.0",
"jest-fetch-mock": "3.0.3", "jest-fetch-mock": "3.0.3",
"jest-websocket-mock": "2.5.0", "jest-websocket-mock": "2.5.0",

304
pnpm-lock.yaml generated
View File

@@ -713,8 +713,8 @@ importers:
specifier: 0.19.0 specifier: 0.19.0
version: 0.19.0 version: 0.19.0
'@tabler/icons-webfont': '@tabler/icons-webfont':
specifier: https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz specifier: 3.31.0
version: https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz version: 3.31.0
'@twemoji/parser': '@twemoji/parser':
specifier: 15.1.1 specifier: 15.1.1
version: 15.1.1 version: 15.1.1
@@ -1059,8 +1059,8 @@ importers:
specifier: 5.1.4 specifier: 5.1.4
version: 5.1.4(rollup@4.34.9) version: 5.1.4(rollup@4.34.9)
'@tabler/icons-webfont': '@tabler/icons-webfont':
specifier: https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz specifier: 3.31.0
version: https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz version: 3.31.0
'@twemoji/parser': '@twemoji/parser':
specifier: 15.1.1 specifier: 15.1.1
version: 15.1.1 version: 15.1.1
@@ -1300,8 +1300,8 @@ importers:
version: 4.4.0 version: 4.4.0
devDependencies: devDependencies:
'@microsoft/api-extractor': '@microsoft/api-extractor':
specifier: 7.51.0 specifier: 7.51.1
version: 7.51.0(@types/node@22.13.7) version: 7.51.1(@types/node@22.13.9)
'@swc/jest': '@swc/jest':
specifier: 0.2.37 specifier: 0.2.37
version: 0.2.37(@swc/core@1.10.16) version: 0.2.37(@swc/core@1.10.16)
@@ -1309,14 +1309,14 @@ importers:
specifier: 29.5.14 specifier: 29.5.14
version: 29.5.14 version: 29.5.14
'@types/node': '@types/node':
specifier: 22.13.7 specifier: 22.13.9
version: 22.13.7 version: 22.13.9
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 8.25.0 specifier: 8.26.0
version: 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2) version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: 8.25.0 specifier: 8.26.0
version: 8.25.0(eslint@9.20.1)(typescript@5.8.2) version: 8.26.0(eslint@9.20.1)(typescript@5.8.2)
esbuild: esbuild:
specifier: 0.25.0 specifier: 0.25.0
version: 0.25.0 version: 0.25.0
@@ -1328,7 +1328,7 @@ importers:
version: 11.0.1 version: 11.0.1
jest: jest:
specifier: 29.7.0 specifier: 29.7.0
version: 29.7.0(@types/node@22.13.7) version: 29.7.0(@types/node@22.13.9)
jest-fetch-mock: jest-fetch-mock:
specifier: 3.0.3 specifier: 3.0.3
version: 3.0.3(encoding@0.1.13) version: 3.0.3(encoding@0.1.13)
@@ -1357,14 +1357,14 @@ importers:
specifier: 2.7.0 specifier: 2.7.0
version: 2.7.0(openapi-types@12.1.3) version: 2.7.0(openapi-types@12.1.3)
'@types/node': '@types/node':
specifier: 22.13.7 specifier: 22.13.9
version: 22.13.7 version: 22.13.9
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 8.25.0 specifier: 8.26.0
version: 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2) version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: 8.25.0 specifier: 8.26.0
version: 8.25.0(eslint@9.20.1)(typescript@5.8.2) version: 8.26.0(eslint@9.20.1)(typescript@5.8.2)
openapi-types: openapi-types:
specifier: 12.1.3 specifier: 12.1.3
version: 12.1.3 version: 12.1.3
@@ -2557,8 +2557,8 @@ packages:
'@microsoft/api-extractor-model@7.30.3': '@microsoft/api-extractor-model@7.30.3':
resolution: {integrity: sha512-yEAvq0F78MmStXdqz9TTT4PZ05Xu5R8nqgwI5xmUmQjWBQ9E6R2n8HB/iZMRciG4rf9iwI2mtuQwIzDXBvHn1w==} resolution: {integrity: sha512-yEAvq0F78MmStXdqz9TTT4PZ05Xu5R8nqgwI5xmUmQjWBQ9E6R2n8HB/iZMRciG4rf9iwI2mtuQwIzDXBvHn1w==}
'@microsoft/api-extractor@7.51.0': '@microsoft/api-extractor@7.51.1':
resolution: {integrity: sha512-LjyQ2xljliss2kIsSo8Npu9mBv6wnaR3ikBagCU2mC7Ggn30sTAOFLzVNyMLOMiuSOFxsEbskrBO5lLn92qnZQ==} resolution: {integrity: sha512-VoFvIeYXme8QctXDkixy1KIn750kZaFy2snAEOB3nhDFfbBcJNEcvBrpCIQIV09MqI4g9egKUkg+/12WMRC77w==}
hasBin: true hasBin: true
'@microsoft/tsdoc-config@0.17.1': '@microsoft/tsdoc-config@0.17.1':
@@ -3948,12 +3948,11 @@ packages:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
'@tabler/icons-webfont@https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz': '@tabler/icons-webfont@3.31.0':
resolution: {tarball: https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz} resolution: {integrity: sha512-0a3Uhj9nKU5kYz6/MUIGuX7kRbbrnOvVL3LGnbIcW/fmEQMgVRN0lkXdeIVkIL6/JKDzI2zSm3X5I+hLIpzLog==}
version: 3.30.0-mi.1932
'@tabler/icons@3.30.0': '@tabler/icons@3.31.0':
resolution: {integrity: sha512-c8OKLM48l00u9TFbh2qhSODMONIzML8ajtCyq95rW8vzkWcBrKRPM61tdkThz2j4kd5u17srPGIjqdeRUZdfdw==} resolution: {integrity: sha512-dblAdeKY3+GA1U+Q9eziZ0ooVlZMHsE8dqP0RkwvRtEsAULoKOYaCUOcJ4oW1DjWegdxk++UAt2SlQVnmeHv+g==}
'@tensorflow/tfjs-backend-cpu@4.22.0': '@tensorflow/tfjs-backend-cpu@4.22.0':
resolution: {integrity: sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==} resolution: {integrity: sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==}
@@ -4208,9 +4207,6 @@ packages:
'@types/node@22.13.4': '@types/node@22.13.4':
resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
'@types/node@22.13.7':
resolution: {integrity: sha512-oU2q+BsQldB9lYxHNp/5aZO+/Bs0Usa74Abo9mAKulz4ahQyXRHK6UVKYIN8KSC8HXwhWSi7b49JnX+txuac0w==}
'@types/node@22.13.9': '@types/node@22.13.9':
resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==}
@@ -4378,14 +4374,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0' typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/eslint-plugin@8.25.0':
resolution: {integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/eslint-plugin@8.26.0': '@typescript-eslint/eslint-plugin@8.26.0':
resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==} resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4401,13 +4389,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0' typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/parser@8.25.0':
resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/parser@8.26.0': '@typescript-eslint/parser@8.26.0':
resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==} resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4419,10 +4400,6 @@ packages:
resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/scope-manager@8.25.0':
resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/scope-manager@8.26.0': '@typescript-eslint/scope-manager@8.26.0':
resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4434,13 +4411,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0' typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/type-utils@8.25.0':
resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/type-utils@8.26.0': '@typescript-eslint/type-utils@8.26.0':
resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==} resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4452,10 +4422,6 @@ packages:
resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/types@8.25.0':
resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/types@8.26.0': '@typescript-eslint/types@8.26.0':
resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4466,12 +4432,6 @@ packages:
peerDependencies: peerDependencies:
typescript: '>=4.8.4 <5.8.0' typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/typescript-estree@8.25.0':
resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/typescript-estree@8.26.0': '@typescript-eslint/typescript-estree@8.26.0':
resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==} resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4485,13 +4445,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0' typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/utils@8.25.0':
resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/utils@8.26.0': '@typescript-eslint/utils@8.26.0':
resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==} resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4503,10 +4456,6 @@ packages:
resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/visitor-keys@8.25.0':
resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/visitor-keys@8.26.0': '@typescript-eslint/visitor-keys@8.26.0':
resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -12509,23 +12458,23 @@ snapshots:
'@types/react': 18.0.28 '@types/react': 18.0.28
react: 19.0.0 react: 19.0.0
'@microsoft/api-extractor-model@7.30.3(@types/node@22.13.7)': '@microsoft/api-extractor-model@7.30.3(@types/node@22.13.9)':
dependencies: dependencies:
'@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc': 0.15.1
'@microsoft/tsdoc-config': 0.17.1 '@microsoft/tsdoc-config': 0.17.1
'@rushstack/node-core-library': 5.11.0(@types/node@22.13.7) '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
'@microsoft/api-extractor@7.51.0(@types/node@22.13.7)': '@microsoft/api-extractor@7.51.1(@types/node@22.13.9)':
dependencies: dependencies:
'@microsoft/api-extractor-model': 7.30.3(@types/node@22.13.7) '@microsoft/api-extractor-model': 7.30.3(@types/node@22.13.9)
'@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc': 0.15.1
'@microsoft/tsdoc-config': 0.17.1 '@microsoft/tsdoc-config': 0.17.1
'@rushstack/node-core-library': 5.11.0(@types/node@22.13.7) '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9)
'@rushstack/rig-package': 0.5.3 '@rushstack/rig-package': 0.5.3
'@rushstack/terminal': 0.15.0(@types/node@22.13.7) '@rushstack/terminal': 0.15.0(@types/node@22.13.9)
'@rushstack/ts-command-line': 4.23.5(@types/node@22.13.7) '@rushstack/ts-command-line': 4.23.5(@types/node@22.13.9)
lodash: 4.17.21 lodash: 4.17.21
minimatch: 3.0.8 minimatch: 3.0.8
resolve: 1.22.8 resolve: 1.22.8
@@ -13241,7 +13190,7 @@ snapshots:
'@rtsao/scc@1.1.0': {} '@rtsao/scc@1.1.0': {}
'@rushstack/node-core-library@5.11.0(@types/node@22.13.7)': '@rushstack/node-core-library@5.11.0(@types/node@22.13.9)':
dependencies: dependencies:
ajv: 8.13.0 ajv: 8.13.0
ajv-draft-04: 1.0.0(ajv@8.13.0) ajv-draft-04: 1.0.0(ajv@8.13.0)
@@ -13252,23 +13201,23 @@ snapshots:
resolve: 1.22.8 resolve: 1.22.8
semver: 7.5.4 semver: 7.5.4
optionalDependencies: optionalDependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@rushstack/rig-package@0.5.3': '@rushstack/rig-package@0.5.3':
dependencies: dependencies:
resolve: 1.22.8 resolve: 1.22.8
strip-json-comments: 3.1.1 strip-json-comments: 3.1.1
'@rushstack/terminal@0.15.0(@types/node@22.13.7)': '@rushstack/terminal@0.15.0(@types/node@22.13.9)':
dependencies: dependencies:
'@rushstack/node-core-library': 5.11.0(@types/node@22.13.7) '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9)
supports-color: 8.1.1 supports-color: 8.1.1
optionalDependencies: optionalDependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@rushstack/ts-command-line@4.23.5(@types/node@22.13.7)': '@rushstack/ts-command-line@4.23.5(@types/node@22.13.9)':
dependencies: dependencies:
'@rushstack/terminal': 0.15.0(@types/node@22.13.7) '@rushstack/terminal': 0.15.0(@types/node@22.13.9)
'@types/argparse': 1.0.38 '@types/argparse': 1.0.38
argparse: 1.0.10 argparse: 1.0.10
string-argv: 0.3.1 string-argv: 0.3.1
@@ -14089,7 +14038,7 @@ snapshots:
'@stylistic/eslint-plugin@2.13.0(eslint@9.20.1)(typescript@5.7.3)': '@stylistic/eslint-plugin@2.13.0(eslint@9.20.1)(typescript@5.7.3)':
dependencies: dependencies:
'@typescript-eslint/utils': 8.25.0(eslint@9.20.1)(typescript@5.7.3) '@typescript-eslint/utils': 8.26.0(eslint@9.20.1)(typescript@5.7.3)
eslint: 9.20.1 eslint: 9.20.1
eslint-visitor-keys: 4.2.0 eslint-visitor-keys: 4.2.0
espree: 10.3.0 espree: 10.3.0
@@ -14196,11 +14145,11 @@ snapshots:
dependencies: dependencies:
defer-to-connect: 2.0.1 defer-to-connect: 2.0.1
'@tabler/icons-webfont@https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz': '@tabler/icons-webfont@3.31.0':
dependencies: dependencies:
'@tabler/icons': 3.30.0 '@tabler/icons': 3.31.0
'@tabler/icons@3.30.0': {} '@tabler/icons@3.31.0': {}
'@tensorflow/tfjs-backend-cpu@4.22.0(@tensorflow/tfjs-core@4.22.0(encoding@0.1.13))': '@tensorflow/tfjs-backend-cpu@4.22.0(@tensorflow/tfjs-core@4.22.0(encoding@0.1.13))':
dependencies: dependencies:
@@ -14340,7 +14289,7 @@ snapshots:
'@types/accepts@1.3.7': '@types/accepts@1.3.7':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/archiver@6.0.3': '@types/archiver@6.0.3':
dependencies: dependencies:
@@ -14376,7 +14325,7 @@ snapshots:
'@types/body-parser@1.19.5': '@types/body-parser@1.19.5':
dependencies: dependencies:
'@types/connect': 3.4.35 '@types/connect': 3.4.35
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/braces@3.0.1': {} '@types/braces@3.0.1': {}
@@ -14432,7 +14381,7 @@ snapshots:
'@types/fluent-ffmpeg@2.1.27': '@types/fluent-ffmpeg@2.1.27':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/graceful-fs@4.1.6': '@types/graceful-fs@4.1.6':
dependencies: dependencies:
@@ -14450,7 +14399,7 @@ snapshots:
'@types/http-link-header@1.0.7': '@types/http-link-header@1.0.7':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/istanbul-lib-coverage@2.0.4': {} '@types/istanbul-lib-coverage@2.0.4': {}
@@ -14471,7 +14420,7 @@ snapshots:
'@types/jsdom@21.1.7': '@types/jsdom@21.1.7':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/tough-cookie': 4.0.2 '@types/tough-cookie': 4.0.2
parse5: 7.2.1 parse5: 7.2.1
@@ -14518,17 +14467,13 @@ snapshots:
dependencies: dependencies:
undici-types: 6.20.0 undici-types: 6.20.0
'@types/node@22.13.7':
dependencies:
undici-types: 6.20.0
'@types/node@22.13.9': '@types/node@22.13.9':
dependencies: dependencies:
undici-types: 6.20.0 undici-types: 6.20.0
'@types/nodemailer@6.4.17': '@types/nodemailer@6.4.17':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/normalize-package-data@2.4.1': {} '@types/normalize-package-data@2.4.1': {}
@@ -14539,11 +14484,11 @@ snapshots:
'@types/oauth2orize@1.11.5': '@types/oauth2orize@1.11.5':
dependencies: dependencies:
'@types/express': 4.17.17 '@types/express': 4.17.17
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/oauth@0.9.6': '@types/oauth@0.9.6':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/offscreencanvas@2019.3.0': {} '@types/offscreencanvas@2019.3.0': {}
@@ -14555,7 +14500,7 @@ snapshots:
'@types/pg@8.11.11': '@types/pg@8.11.11':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
pg-protocol: 1.7.0 pg-protocol: 1.7.0
pg-types: 4.0.1 pg-types: 4.0.1
@@ -14573,7 +14518,7 @@ snapshots:
'@types/qrcode@1.5.5': '@types/qrcode@1.5.5':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/qs@6.9.7': {} '@types/qs@6.9.7': {}
@@ -14654,11 +14599,11 @@ snapshots:
'@types/vary@1.1.3': '@types/vary@1.1.3':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/web-push@3.6.4': '@types/web-push@3.6.4':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/ws@8.18.0': '@types/ws@8.18.0':
dependencies: dependencies:
@@ -14666,7 +14611,7 @@ snapshots:
'@types/ws@8.5.14': '@types/ws@8.5.14':
dependencies: dependencies:
'@types/node': 22.13.7 '@types/node': 22.13.9
'@types/yargs-parser@21.0.0': {} '@types/yargs-parser@21.0.0': {}
@@ -14696,23 +14641,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.25.0(eslint@9.20.1)(typescript@5.8.2)
'@typescript-eslint/scope-manager': 8.25.0
'@typescript-eslint/type-utils': 8.25.0(eslint@9.20.1)(typescript@5.8.2)
'@typescript-eslint/utils': 8.25.0(eslint@9.20.1)(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.25.0
eslint: 9.20.1
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
ts-api-utils: 2.0.1(typescript@5.8.2)
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2)': '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2))(eslint@9.20.1)(typescript@5.8.2)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.12.1 '@eslint-community/regexpp': 4.12.1
@@ -14742,18 +14670,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.25.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies:
'@typescript-eslint/scope-manager': 8.25.0
'@typescript-eslint/types': 8.25.0
'@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.25.0
debug: 4.4.0(supports-color@8.1.1)
eslint: 9.20.1
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2)': '@typescript-eslint/parser@8.26.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.26.0 '@typescript-eslint/scope-manager': 8.26.0
@@ -14771,11 +14687,6 @@ snapshots:
'@typescript-eslint/types': 8.24.0 '@typescript-eslint/types': 8.24.0
'@typescript-eslint/visitor-keys': 8.24.0 '@typescript-eslint/visitor-keys': 8.24.0
'@typescript-eslint/scope-manager@8.25.0':
dependencies:
'@typescript-eslint/types': 8.25.0
'@typescript-eslint/visitor-keys': 8.25.0
'@typescript-eslint/scope-manager@8.26.0': '@typescript-eslint/scope-manager@8.26.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.26.0 '@typescript-eslint/types': 8.26.0
@@ -14792,17 +14703,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/type-utils@8.25.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies:
'@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2)
'@typescript-eslint/utils': 8.25.0(eslint@9.20.1)(typescript@5.8.2)
debug: 4.4.0(supports-color@8.1.1)
eslint: 9.20.1
ts-api-utils: 2.0.1(typescript@5.8.2)
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/type-utils@8.26.0(eslint@9.20.1)(typescript@5.8.2)': '@typescript-eslint/type-utils@8.26.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
@@ -14816,8 +14716,6 @@ snapshots:
'@typescript-eslint/types@8.24.0': {} '@typescript-eslint/types@8.24.0': {}
'@typescript-eslint/types@8.25.0': {}
'@typescript-eslint/types@8.26.0': {} '@typescript-eslint/types@8.26.0': {}
'@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)':
@@ -14834,10 +14732,10 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': '@typescript-eslint/typescript-estree@8.26.0(typescript@5.7.3)':
dependencies: dependencies:
'@typescript-eslint/types': 8.25.0 '@typescript-eslint/types': 8.26.0
'@typescript-eslint/visitor-keys': 8.25.0 '@typescript-eslint/visitor-keys': 8.26.0
debug: 4.4.0(supports-color@8.1.1) debug: 4.4.0(supports-color@8.1.1)
fast-glob: 3.3.3 fast-glob: 3.3.3
is-glob: 4.0.3 is-glob: 4.0.3
@@ -14848,20 +14746,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/typescript-estree@8.25.0(typescript@5.8.2)':
dependencies:
'@typescript-eslint/types': 8.25.0
'@typescript-eslint/visitor-keys': 8.25.0
debug: 4.4.0(supports-color@8.1.1)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.4
semver: 7.6.3
ts-api-utils: 2.0.1(typescript@5.8.2)
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)': '@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)':
dependencies: dependencies:
'@typescript-eslint/types': 8.26.0 '@typescript-eslint/types': 8.26.0
@@ -14887,28 +14771,17 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.25.0(eslint@9.20.1)(typescript@5.7.3)': '@typescript-eslint/utils@8.26.0(eslint@9.20.1)(typescript@5.7.3)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1)
'@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/scope-manager': 8.26.0
'@typescript-eslint/types': 8.25.0 '@typescript-eslint/types': 8.26.0
'@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.3)
eslint: 9.20.1 eslint: 9.20.1
typescript: 5.7.3 typescript: 5.7.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.25.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1)
'@typescript-eslint/scope-manager': 8.25.0
'@typescript-eslint/types': 8.25.0
'@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2)
eslint: 9.20.1
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.26.0(eslint@9.20.1)(typescript@5.8.2)': '@typescript-eslint/utils@8.26.0(eslint@9.20.1)(typescript@5.8.2)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1)
@@ -14925,11 +14798,6 @@ snapshots:
'@typescript-eslint/types': 8.24.0 '@typescript-eslint/types': 8.24.0
eslint-visitor-keys: 4.2.0 eslint-visitor-keys: 4.2.0
'@typescript-eslint/visitor-keys@8.25.0':
dependencies:
'@typescript-eslint/types': 8.25.0
eslint-visitor-keys: 4.2.0
'@typescript-eslint/visitor-keys@8.26.0': '@typescript-eslint/visitor-keys@8.26.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.26.0 '@typescript-eslint/types': 8.26.0
@@ -16200,13 +16068,13 @@ snapshots:
- supports-color - supports-color
- ts-node - ts-node
create-jest@29.7.0(@types/node@22.13.7): create-jest@29.7.0(@types/node@22.13.9):
dependencies: dependencies:
'@jest/types': 29.6.3 '@jest/types': 29.6.3
chalk: 4.1.2 chalk: 4.1.2
exit: 0.1.2 exit: 0.1.2
graceful-fs: 4.2.11 graceful-fs: 4.2.11
jest-config: 29.7.0(@types/node@22.13.7) jest-config: 29.7.0(@types/node@22.13.9)
jest-util: 29.7.0 jest-util: 29.7.0
prompts: 2.4.2 prompts: 2.4.2
transitivePeerDependencies: transitivePeerDependencies:
@@ -18475,16 +18343,16 @@ snapshots:
- supports-color - supports-color
- ts-node - ts-node
jest-cli@29.7.0(@types/node@22.13.7): jest-cli@29.7.0(@types/node@22.13.9):
dependencies: dependencies:
'@jest/core': 29.7.0 '@jest/core': 29.7.0
'@jest/test-result': 29.7.0 '@jest/test-result': 29.7.0
'@jest/types': 29.6.3 '@jest/types': 29.6.3
chalk: 4.1.2 chalk: 4.1.2
create-jest: 29.7.0(@types/node@22.13.7) create-jest: 29.7.0(@types/node@22.13.9)
exit: 0.1.2 exit: 0.1.2
import-local: 3.1.0 import-local: 3.1.0
jest-config: 29.7.0(@types/node@22.13.7) jest-config: 29.7.0(@types/node@22.13.9)
jest-util: 29.7.0 jest-util: 29.7.0
jest-validate: 29.7.0 jest-validate: 29.7.0
yargs: 17.7.2 yargs: 17.7.2
@@ -18524,36 +18392,6 @@ snapshots:
- babel-plugin-macros - babel-plugin-macros
- supports-color - supports-color
jest-config@29.7.0(@types/node@22.13.7):
dependencies:
'@babel/core': 7.23.5
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
babel-jest: 29.7.0(@babel/core@7.23.5)
chalk: 4.1.2
ci-info: 3.7.1
deepmerge: 4.2.2
glob: 7.2.3
graceful-fs: 4.2.11
jest-circus: 29.7.0
jest-environment-node: 29.7.0
jest-get-type: 29.6.3
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
micromatch: 4.0.8
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
'@types/node': 22.13.7
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
jest-config@29.7.0(@types/node@22.13.9): jest-config@29.7.0(@types/node@22.13.9):
dependencies: dependencies:
'@babel/core': 7.23.5 '@babel/core': 7.23.5
@@ -18664,7 +18502,7 @@ snapshots:
jest-mock@29.7.0: jest-mock@29.7.0:
dependencies: dependencies:
'@jest/types': 29.6.3 '@jest/types': 29.6.3
'@types/node': 22.13.7 '@types/node': 22.13.9
jest-util: 29.7.0 jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -18823,12 +18661,12 @@ snapshots:
- supports-color - supports-color
- ts-node - ts-node
jest@29.7.0(@types/node@22.13.7): jest@29.7.0(@types/node@22.13.9):
dependencies: dependencies:
'@jest/core': 29.7.0 '@jest/core': 29.7.0
'@jest/types': 29.6.3 '@jest/types': 29.6.3
import-local: 3.1.0 import-local: 3.1.0
jest-cli: 29.7.0(@types/node@22.13.7) jest-cli: 29.7.0(@types/node@22.13.9)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- babel-plugin-macros - babel-plugin-macros