diff --git a/.gitignore b/.gitignore index 9928d93aa..189f36370 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ report.*.json cypress/screenshots cypress/videos +# Coverage +coverage + # config /.config/* !/.config/example.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 34ec7a642..5bafc0a01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,17 @@ You should also include the user name that made the change. --> -## 12.x.x (unreleased) +## 12.119.0 (2022/09/10) ### Improvements - Client: Add following badge to user preview popup @nvisser +- Client: mobile twitter url can be used as widget @caipira113 +- Client: Improve clock widget @syuilo + +### Bugfixes +- マイグレーションに失敗する問題を修正 +- Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo +- Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.1 (2022/08/08) diff --git a/ROADMAP.md b/ROADMAP.md index bd96b2c50..b2c5c8757 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -6,15 +6,20 @@ Also, the later tasks are more indefinite and are subject to change as developme This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development. - Make the number of type errors zero (backend) - - Probably need to switch some libraries to others that make it difficult to reduce type errors - - e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537 + - Probably need to switch some libraries to others that make it difficult to reduce type errors + - e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537 - Improve CI - - Fix tests - - mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work. - - Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986 - - Add more tests - - May need to implement a mechanism that allows for DI + - Fix tests + - mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work. + - Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986 + - Add more tests + - May need to implement a mechanism that allows for DI + - https://github.com/misskey-dev/misskey/pull/9085 + - Measure coverage + - https://github.com/misskey-dev/misskey/pull/9081 - Improve documentation +- Refactoring + - Extract the logic of each endpoint definition into a service and just call it ## (2) Improve functionality Once Phase 1 is complete and an environment conducive to the development of a stable system is in place, the implementation of new functions can begin gradually. diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index ff8a7ae8b..9d54e0082 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -206,6 +206,7 @@ instanceFollowers: "Následovníci na instanci" instanceUsers: "Uživatelé této instance" changePassword: "Změnit heslo" security: "Zabezpečení" +retypedNotMatch: "Zadané údaje se neshodují." currentPassword: "Současné heslo" newPassword: "Nové heslo" newPasswordRetype: "Nové heslo (znovu)" @@ -268,6 +269,7 @@ addFile: "Přidat soubor" emptyFolder: "Tato složka je prázdná" unableToDelete: "Nelze smazat" inputNewFileName: "Zadejte nový název" +inputNewFolderName: "Zadejte název nové složky" copyUrl: "Kopírovat URL" rename: "Přejmenovat" avatar: "Avatar" @@ -310,9 +312,11 @@ pinnedUsers: "Připnutí uživatelé" pinnedNotes: "Připnutá poznámka" hcaptcha: "hCaptcha" enableHcaptcha: "Aktivovat hCaptchu" +hcaptchaSiteKey: "Klíč stránky" hcaptchaSecretKey: "Tajný Klíč (Secret Key)" recaptcha: "reCAPTCHA" enableRecaptcha: "Zapnout ReCAPTCHu" +recaptchaSiteKey: "Klíč stránky" recaptchaSecretKey: "Tajný Klíč (Secret Key)" antennas: "Antény" manageAntennas: "Spravovat Antény" @@ -321,6 +325,10 @@ antennaSource: "Zdroj Antény" enableServiceworker: "Povolit ServiceWorker" caseSensitive: "Rozlišuje malá a velká písmena" connectedTo: "Následující účty jsou připojeny" +notesAndReplies: "Poznámky a odpovědi" +withFiles: "Včetně souborů" +popularUsers: "Populární uživatelé" +recentlyUpdatedUsers: "Nedávno aktívni uživatelé" popularTags: "Populární tagy" userList: "Seznamy" about: "Informace" @@ -365,10 +373,14 @@ next: "Další" retype: "Zadejte znovu" noteOf: "{user} poznámky" inviteToGroup: "Pozvat do skupiny" +quoteAttached: "Citace" +quoteQuestion: "Přiložit jako citaci?" +noMessagesYet: "Zatím tu nejsou žádné zprávy" newMessageExists: "Máte novou zprávu" onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor" signinRequired: "Přihlašte se, prosím" invitations: "Pozvat" +invitationCode: "Kód pozvánky" checking: "Ověřuji" available: "K dispozici" unavailable: "Není k dispozici" @@ -382,6 +394,7 @@ passwordMatched: "Hesla se schodují" passwordNotMatched: "Hesla se neschodují" signinWith: "Přihlásit se s {x}" signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo." +tapSecurityKey: "Ťukněte na bezpečnostní klíč" or: "Nebo" language: "Jazyk" uiLanguage: "Jazyk uživatelského rozhraní" @@ -411,9 +424,20 @@ accountSettings: "Nastavení účtu" promotion: "Propagace" promote: "Propagovat" numberOfDays: "Počet dní" +objectStorageBaseUrl: "Base URL" +objectStorageBucket: "Bucket" +objectStoragePrefix: "Předpona" +objectStorageEndpoint: "Endpoint" +objectStorageRegion: "Región" +objectStorageUseSSL: "Použít SSL" deleteAll: "Smazat vše" showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou" +listen: "Poslouchat" +showInPage: "Zobrazit na stránce" +popout: "Pop-out" +volume: "Hlasitost" masterVolume: "Celková hlasitost" +details: "Detaily" chooseEmoji: "Vybrat emotikon" unableToProcess: "Operace nebyla dokončena." recentUsed: "Naposledy použité" @@ -434,13 +458,20 @@ deleteAllFiles: "Smazat všechny soubory" deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?" userSuspended: "Tomuto uživateli byl pozastaven účet." menu: "Menu" +divider: "Dělící čára" addItem: "Přidat položku" +relays: "Relay" +addRelay: "Přidat Relay" inboxUrl: "Inbox URL" deletedNote: "Odstraněné příspěvky" invisibleNote: "Skryté příspěvky" description: "Popis" author: "Autor" manage: "Administrace" +width: "Šířka" +height: "Výška" +large: "Velké" +medium: "Střední" small: "Malé" generateAccessToken: "Vygenerovat přístupový token" permission: "Oprávnění" @@ -458,11 +489,16 @@ smtpPort: "Port" smtpUser: "Uživatelské jméno" smtpPass: "Heslo" smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS" +testEmail: "Otestovat doručení emailů" makeActive: "Aktivovat" display: "Zobrazit" copy: "Kopírovat" +metrics: "Metriky" +overview: "Shrnutí" logs: "Logy" +delayed: "Prodleva" database: "Databáze" +channel: "Kanály" create: "Vytvořit" notificationSetting: "Nastavení oznámení" useGlobalSetting: "Použít globální nastavení" @@ -470,79 +506,415 @@ other: "Ostatní" fileIdOrUrl: "ID nebo URL souboru" behavior: "Chování" sample: "Ukázka" +send: "Odeslat" +openInNewTab: "Otevřít v nové kartě" +random: "Náhodně" +system: "Systém" +desktop: "Plocha" +clip: "Oříznout" +createNew: "Vytvořit nový" +optional: "Volitelné" +yes: "Ano" +no: "Ne" +notSet: "Není nastaveno" +emailVerified: "Váš e-mail byl ověřen" +contact: "Kontakt" +useSystemFont: "Použít výchozí font systému" +clips: "Oříznout" +experimentalFeatures: "Experimentální funkce" +developer: "Vývojář" +duplicate: "Duplikovat" +left: "Vlevo" +center: "Uprostřed" +wide: "Široké" +narrow: "Úzké" clearCache: "Vyprázdnit mezipaměť" +nUsers: "{n} užívatelů" +nNotes: "{n} poznámek" +myTheme: "Moje vzhledy" +backgroundColor: "Pozadí" +accentColor: "Akcent" +textColor: "Barva textu" +saveAs: "Uložit jako…" +advanced: "Pokročilé" +value: "Hodnota" +createdAt: "Vytvořeno" +updatedAt: "Upraveno" +saveConfirm: "Uložit změny?" +deleteConfirm: "Opravdu smazat?" +invalidValue: "Neplatná hodnota." +registry: "Registr" info: "Informace" +unknown: "Neznámý" +onlineStatus: "Online status" +hideOnlineStatus: "Skrýt Váš online status" +hideOnlineStatusDescription: "Skrytí vašeho online stavu může snížit funkcionalitu některých funkcí, například vyhledávání." +online: "Online" +active: "Aktivní" +offline: "Offline" +notRecommended: "Nedoporučuje se" +botProtection: "Bot ochrana" +instanceBlocking: "Blokované instance" +selectAccount: "Vybrat účet" +switchAccount: "Přepnout účet" +enabled: "Zapnuto" +disabled: "Vypnuto" +quickAction: "Rychlé akce" user: "Uživatelé" administration: "Administrace" +accounts: "Účty" +switch: "Přepnout" +configure: "Nastavit" +gallery: "Galerie" +recentPosts: "Poslední příspěvky" +ads: "Reklamy" +memo: "Memo" +priority: "Priorita" +high: "Vysoká" +middle: "Střední" +low: "Nízká" +emailNotConfiguredWarning: "E-mailová adresa není nastavena." +ratio: "Poměr" +global: "Globální" +sent: "Odeslat" +hashtags: "Hashtagy" +troubleshooting: "Poradce při potížích" +whatIsNew: "Zobrazit změny" +translate: "Přeložit" +hide: "Skrýt" +smartphone: "Telefon" +tablet: "Tablet" +auto: "Auto" +size: "Velikost" +numberOfColumn: "Počet sloupců" searchByGoogle: "Vyhledávání" +indefinitely: "Navždy" +tenMinutes: "10 minut" +oneHour: "1 hodina" +oneDay: "1 den" +oneWeek: "1 týden" +reflectMayTakeTime: "Může trvat nějakou dobu, než se projeví změny." +cropImage: "Oříznout obrázek" file: "Soubor(ů)" +recentNHours: "Posledních {n} hodin" +recentNDays: "Posledních {n} dnů" +recommended: "Doporučeno" +deleteAccount: "Odstranit účet" +document: "Dokumentace" +logoutConfirm: "Opravdu se chcete odhlásit?" +pleaseSelect: "Vybrat možnost" +reverse: "Otočit" +colored: "Barevné" +type: "Typ" +speed: "Rychlost" +slow: "Pomalá" +fast: "Rychlá" +account: "Účty" +_ad: + back: "Zpět" +_gallery: + my: "Moje galerie" _email: _follow: title: "Máte nového následovníka" +_plugin: + install: "Instalovat plugin" + manage: "Správce pluginů" +_preferencesBackups: + list: "Vytvořit backup" + loadFile: "Načíst ze souboru" + save: "Uložit změny" +_registry: + scope: "Rozsah" + key: "Klíč" + keys: "Klíče" + domain: "Doména" + createKey: "Vytvořit klíč" +_aboutMisskey: + allContributors: "Všichni přispěvatelé" + source: "Zdrojový kód" _mfm: mention: "Zmínění" + hashtag: "Hashtag" + link: "Odkaz" + bold: "Tučně" quote: "Citovat" emoji: "Vlastní emoji" search: "Vyhledávání" + flip: "Otočit" + tada: "Animace (tadá)" + blur: "Rozmazání" + font: "Font" + rainbow: "Duha" +_channel: + featured: "Trendy" +_menuDisplay: + top: "Nahoru" + hide: "Skrýt" _theme: + install: "Nainstalovat vzhled" + manage: "Správa vzhledů" + code: "Kód vzhledu" description: "Popis" + installedThemes: "Nainstalované vzhledy" + constant: "Konstanta" + defaultValue: "Výchozí hodnota" + color: "Barva" + key: "Klíč" + func: "Funkce " keys: + shadow: "Stín" + header: "Nadpis" + link: "Odkaz" + hashtag: "Hashtag" mention: "Zmínění" renote: "Přeposlat" + divider: "Dělící čára" _sfx: note: "Poznámky" notification: "Oznámení" chat: "Zprávy" +_ago: + future: "Budoucí" + justNow: "Teď" +_time: + second: "Sekund" + minute: "Minut" + hour: "Hodin" +_2fa: + registerDevice: "Přidat zařízení" + registerKey: "Přidat bezpečnostní klíč" +_weekday: + sunday: "Neděle" + monday: "Pondělí" + tuesday: "Úterý" + wednesday: "Středa" + thursday: "Čtvrtek" + friday: "Pátek" + saturday: "Sobota" _widgets: notifications: "Oznámení" timeline: "Časová osa" + calendar: "Kalendář" + trends: "Trendy" + clock: "Hodiny" + rss: "RSS čtečka" activity: "Aktivita" + photos: "Fotky" + digitalClock: "Digitální hodiny" federation: "Federace" + slideshow: "Prezentace" + button: "Tlačítko" + onlineUsers: "Online uživatelé" jobQueue: "Fronta úloh" + aiscript: "AiScript conzole" + aichan: "Ai" _cw: + hide: "Skrýt" show: "Zobrazit více" +_poll: + noMore: "Více už přidat nemůžete" + infinite: "Nikdy" + deadlineDate: "Datum ukončení" + deadlineTime: "Hodin" + duration: "Trvání" _visibility: home: "Domů" followers: "Sledující" +_postForm: + _placeholders: + f: "Čekám, až něco napíšete..." _profile: name: "Jméno" username: "Uživatelské jméno" + description: "O mně" + youCanIncludeHashtags: "V popisku o Vás můžete použít i hastagy." + metadata: "Doplňující informace" + metadataContent: "Obsah" _exportOrImport: + allNotes: "Všechny poznámky" followingList: "Sledovaní" muteList: "Ztlumit" blockingList: "Zablokovat" userLists: "Seznamy" _charts: federation: "Federace" + apRequest: "Požadavek" + usersTotal: "Celkem uživatelů" + activeUsers: "Aktivní uživatelé" + notesTotal: "Celkový počet poznámek" _timelines: home: "Domů" + global: "Globální" _pages: + newPage: "Vytvořit novou stránku" + editPage: "Upravit stránku" + created: "Stránka byla úspěšně vytvořena" + updated: "Stránka byla úspěšně aktualizována" + deleted: "Stránka byla úspěšně smazána" + pageSetting: "Nastavení stránky" + invalidNameText: "Ujistěte se že jméno stránky je vyplněno" + contents: "Obsah" + fontSerif: "Serif" + fontSansSerif: "Sans Serif" + chooseBlock: "Přidat blok" + selectType: "Vyberte typ" + contentBlocks: "Obsah" + inputBlocks: "Vstup" + specialBlocks: "Speciální" blocks: + text: "Text" + textarea: "Textové pole" + section: "Sekce" image: "Obrázky" + button: "Tlačítko" + if: "Pokud" + _if: + variable: "Proměnná" + _post: + text: "Obsah" + canvasId: "Canvas ID" + _textInput: + name: "Jméno proměnné" + text: "Titulek" + default: "Výchozí hodnota" + _textareaInput: + name: "Jméno proměnné" + text: "Titulek" + default: "Výchozí hodnota" + _numberInput: + name: "Jméno proměnné" + text: "Titulek" + default: "Výchozí hodnota" + canvas: "Canvas" + _canvas: + id: "Canvas ID" + width: "Šířka" + height: "Výška" + _switch: + name: "Jméno proměnné" + text: "Titulek" + default: "Výchozí hodnota" + _counter: + name: "Jméno proměnné" + text: "Titulek" + inc: "Krok" + _button: + text: "Titulek" + colored: "Barevné" + _action: + _dialog: + content: "Obsah" + _radioButton: + name: "Jméno proměnné" + default: "Výchozí hodnota" script: categories: list: "Seznamy" blocks: + text: "Text" + _strLen: + arg1: "Text" + _strPick: + arg1: "Text" + _strReplace: + arg1: "Text" + _strReverse: + arg1: "Text" _join: arg1: "Seznamy" + _subtract: + arg1: "A" + arg2: "B" + _multiply: + arg1: "A" + arg2: "B" + _divide: + arg1: "A" + arg2: "B" + _mod: + arg1: "A" + arg2: "B" + round: "Zaokrouhlení zlomku" + _round: + arg1: "Číselná hodnota" + eq: "A a B jsou stejné" + _eq: + arg1: "A" + arg2: "B" + notEq: "A a B jsou odlišné" + _notEq: + arg1: "A" + arg2: "B" + _and: + arg1: "A" + arg2: "B" + _or: + arg1: "A" + arg2: "B" + _lt: + arg1: "A" + arg2: "B" + _gt: + arg1: "A" + arg2: "B" + _ltEq: + arg1: "A" + arg2: "B" + _gtEq: + arg1: "A" + arg2: "B" + if: "Větev" + _if: + arg1: "Pokud" + arg2: "Potom" + arg3: "Nebo" + random: "Náhodně" + _random: + arg1: "Pravděpodobnost" + rannum: "Náhodné číslo" + _rannum: + arg1: "Minimální hodnota" + arg2: "Maximální hodnota" _randomPick: arg1: "Seznamy" + _dailyRandom: + arg1: "Pravděpodobnost" + _dailyRannum: + arg1: "Minimální hodnota" + arg2: "Maximální hodnota" _dailyRandomPick: arg1: "Seznamy" + _seedRandom: + arg2: "Pravděpodobnost" + _seedRannum: + arg2: "Minimální hodnota" + arg3: "Maximální hodnota" _seedRandomPick: arg2: "Seznamy" _pick: arg1: "Seznamy" _listLen: arg1: "Seznamy" + number: "Číselná hodnota" + _stringToNumber: + arg1: "Text" + _numberToString: + arg1: "Číselná hodnota" + _splitStrByLine: + arg1: "Text" types: + string: "Text" + number: "Číselná hodnota" array: "Seznamy" _notification: youWereFollowed: "Máte nového následovníka" youWereInvitedToGroup: "Pozvat do skupiny" _types: + all: "Vše" follow: "Sledovaní" mention: "Zmínění" + reply: "Odpovědi" renote: "Přeposlat" quote: "Citovat" reaction: "Reakce" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 168fa9d65..d77f7e920 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -562,6 +562,7 @@ author: "작성자" leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?" manage: "관리" plugins: "플러그인" +preferencesBackups: "환경설정 백업" deck: "덱" undeck: "덱 해제" useBlurEffectForModal: "모달에 흐림 효과 사용" @@ -612,7 +613,7 @@ create: "생성" notificationSetting: "알림 설정" notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요." useGlobalSetting: "글로벌 설정을 사용하기" -useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용되니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다." +useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용됩니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다." other: "기타" regenerateLoginToken: "로그인 토큰을 재생성" regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다." @@ -941,6 +942,24 @@ _plugin: install: "플러그인 설치" installWarn: "신뢰할 수 없는 플러그인은 설치하지 않는 것이 좋습니다." manage: "플러그인 관리" +_preferencesBackups: + list: "생성한 백업" + saveNew: "새 백업 만들기" + loadFile: "파일 가져오기" + apply: "이 기기에 적용" + save: "현재 설정으로 덮어쓰기" + inputName: "백업 이름을 입력하세요" + cannotSave: "저장하지 못했습니다" + nameAlreadyExists: "\"{name}\" 백업이 이미 존재합니다. 다른 이름을 설정하여 주십시오." + applyConfirm: "\"{name}\" 백업을 현재 기기에 적용하시겠습니까? 현재 설정은 덮어 씌워집니다." + saveConfirm: "{name} 을 덮어쓰시겠습니까?" + deleteConfirm: "{name} 을(를) 삭제하시겠습니까?" + renameConfirm: "\"{old}\" 백업을 \"{new}\"(으)로 바꾸시겠습니까?" + noBackups: "저장된 백업이 없습니다. \"새 백업 만들기\"를 눌러 현재 클라이언트 설정을 서버에 백업할 수 있습니다." + createdAt: "생성 날짜: {date} {time}" + updatedAt: "갱신 날짜: {date} {time}" + cannotLoad: "가져오기에 실패했습니다" + invalidFile: "파일 형식이 올바르지 않습니다." _registry: scope: "범위" key: "키" @@ -1258,6 +1277,7 @@ _widgets: activity: "활동" photos: "사진" digitalClock: "디지털 시계" + unixClock: "UNIX 시계" federation: "연합" instanceCloud: "인스턴스 구름" postForm: "글 입력란" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index f0470395f..933b722c5 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -1,5 +1,5 @@ --- -_lang_: "język polski" +_lang_: "Polski" headlineMisskey: "Sieć połączona wpisami" introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!" monthAndDay: "{month}-{day}" @@ -88,7 +88,7 @@ enterListName: "Nazwa listy" privacy: "Prywatność" makeFollowManuallyApprove: "Prośby o możliwość obserwacji wymagają zatwierdzenia" defaultNoteVisibility: "Domyślna widoczność" -follow: "Obserwowani" +follow: "Obserwuj" followRequest: "Poproś o możliwość obserwacji" followRequests: "Prośby o możliwość obserwacji" unfollow: "Przestań obserwować" @@ -127,7 +127,7 @@ unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?" selectList: "Wybierz listę" selectAntenna: "Wybierz Antennę" selectWidget: "Wybierz widżet" -editWidgets: "Edytuj widżet" +editWidgets: "Edytuj widżety" editWidgetsExit: "Gotowe" customEmojis: "Niestandardowe emoji" emoji: "Emoji" @@ -142,6 +142,7 @@ flagAsBot: "To konto jest botem" flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota." flagAsCat: "To konto jest kotem" flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot." +flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu" autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz" addAccount: "Dodaj konto" loginFailed: "Nie udało się zalogować" @@ -201,6 +202,7 @@ done: "Gotowe" processing: "Przetwarzanie" preview: "Podgląd" default: "Domyślne" +defaultValueIs: "Domyślne: {value}" noCustomEmojis: "Brak emoji" noJobs: "Brak zadań" federating: "Federowanie" @@ -235,6 +237,7 @@ resetAreYouSure: "Czy na pewno chcesz zresetować?" saved: "Zapisano" messaging: "Wiadomości" upload: "Wyślij" +keepOriginalUploading: "Zachowaj oryginalny obraz" fromDrive: "Z dysku" fromUrl: "Z adresu URL" uploadFromUrl: "Wyślij z adresu URL" @@ -377,6 +380,7 @@ administrator: "Admin" token: "Token" twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe" moderator: "Moderator" +moderation: "Moderacja" nUsersMentioned: "{n} wspomnianych użytkowników" securityKey: "Klucz bezpieczeństwa" securityKeyName: "Nazwa klucza" @@ -444,11 +448,13 @@ uiLanguage: "Język wyświetlania UI" groupInvited: "Zaproszony(-a) do grupy" aboutX: "O {x}" useOsNativeEmojis: "Używaj natywnych Emoji systemu" +disableDrawer: "Nie używaj menu w stylu szuflady" youHaveNoGroups: "Nie masz żadnych grup" joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę." noHistory: "Brak historii" signinHistory: "Historia logowania" disableAnimatedMfm: "Wyłącz MFM z animacją" +doing: "Przetwarzanie..." category: "Kategoria" tags: "Tagi" docSource: "Źródło tego dokumentu" @@ -523,6 +529,9 @@ deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?" removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje." userSuspended: "To konto zostało zawieszone." userSilenced: "Ten użytkownik został wyciszony." +yourAccountSuspendedTitle: "To konto jest zawieszone" +yourAccountSuspendedDescription: "To konto zostało zawieszone z powodu złamania regulaminu serwera lub innych podobnych. Skontaktuj się z administratorem, jeśli chciałbyś poznać bardziej szczegółowy powód. Proszę nie zakładać nowego konta." +menu: "Menu" divider: "Rozdzielacz" addItem: "Dodaj element" relays: "Przekaźniki" @@ -541,7 +550,7 @@ disablePlayer: "Zamknij odtwarzacz wideo" expandTweet: "Rozwiń tweet" themeEditor: "Edytor motywu" description: "Opis" -describeFile: "dodaj podpis" +describeFile: "Dodaj podpis" enterFileDescription: "Wprowadź napis" author: "Autor" leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?" @@ -578,6 +587,7 @@ emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć w smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS" testEmail: "Przetestuj dostarczanie wiadomości e-mail" wordMute: "Wyciszenie słowa" +instanceMute: "Wyciszone instancje" userSaysSomething: "{name} powiedział(-a) coś" makeActive: "Aktywuj" display: "Wyświetlanie" @@ -607,6 +617,7 @@ fillAbuseReportDescription: "Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy." reporteeOrigin: "Pochodzenie zgłoszonego" reporterOrigin: "Pochodzenie zgłaszającego" +forwardReport: "Przekaż zgłoszenie do innej instancji" send: "Wyślij" abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane" openInNewTab: "Otwórz w nowej karcie" @@ -619,8 +630,12 @@ random: "Losowe" system: "System" switchUi: "Przełącz interfejs użytkownika" desktop: "Pulpit" +clip: "Klip" createNew: "Utwórz nowy" optional: "Nieobowiązkowe" +createNewClip: "Utwórz nowy klip" +unclip: "Odczep" +confirmToUnclipAlreadyClippedNote: "Ten wpis jest już częścią klipu \"{name}\". Czy chcesz ją usunąć z tego klipu?" public: "Publiczny" i18nInfo: "Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}." manageAccessTokens: "Zarządzaj tokenami dostępu" @@ -654,6 +669,7 @@ pageLikesCount: "Liczba otrzymanych polubień stron" pageLikedCount: "Liczba polubionych stron" contact: "Kontakt" useSystemFont: "Używaj domyślnej czcionki systemu" +clips: "Klipy" experimentalFeatures: "Eksperymentalne funkcje" developer: "Programista" makeExplorable: "Pokazuj konto na stronie „Eksploruj”" @@ -725,6 +741,7 @@ notRecommended: "Nie zalecane" botProtection: "Zabezpieczenie przed botami" instanceBlocking: "Zablokowane instancje" selectAccount: "Wybierz konto" +switchAccount: "Przełącz konto" enabled: "Właczono" disabled: "Wyłączono" quickAction: "Szybkie działania" @@ -756,22 +773,103 @@ global: "Globalna" squareAvatars: "Wyświetlaj kwadratowe awatary" sent: "Wyślij" received: "Otrzymane" +searchResult: "Wyniki wyszukiwania" hashtags: "Hashtag" +troubleshooting: "Rozwiązywanie problemów" +useBlurEffect: "Użyj efektów rozmycia w UI" +learnMore: "Dowiedz się więcej" +misskeyUpdated: "Misskey zostało zaktualizowane!" +whatIsNew: "Pokaż zmiany" +translate: "Przetłumacz" +translatedFrom: "Przetłumaczone z {x}" +accountDeletionInProgress: "Trwa usuwanie konta" +usernameInfo: "Nazwa, która identyfikuje Twoje konto spośród innych na tym serwerze. Możesz użyć alfabetu (a~z, A~Z), cyfr (0~9) lub podkreślników (_). Nazwy użytkownika nie mogą być później zmieniane." +aiChanMode: "Tryb Ai" +keepCw: "Zostaw ostrzeżenia o zawartości" pubSub: "Konta Pub/Sub" +resolved: "Rozwiązane" +unresolved: "Nierozwiązane" +breakFollow: "Usuń obserwującego" +itsOn: "Włączone" +itsOff: "Wyłączone" +unread: "Nieodczytane" +filter: "Filtr" +controlPanel: "Panel sterowania" +manageAccounts: "Zarządzaj kontami" +makeReactionsPublic: "Ustawić historię reakcji jako publiczną" +makeReactionsPublicDescription: "To spowoduje, że lista wszystkich Twoich dotychczasowych reakcji będzie publicznie widoczna." +classic: "Klasyczny" +muteThread: "Wycisz wątek" +unmuteThread: "Wyłącz wyciszenie wątku" +ffVisibility: "Widoczność obserwowanych/obserwujących" +ffVisibilityDescription: "Pozwala skonfigurować, kto może zobaczyć, kogo obserwujesz i kto Cię obserwuje." +continueThread: "Pokaż kontynuację wątku" +deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?" +incorrectPassword: "Nieprawidłowe hasło." +voteConfirm: "Potwierdzić swój głos na \"{choice}\"?" hide: "Ukryj" +leaveGroup: "Opuść grupę" +leaveGroupConfirm: "Czy na pewno chcesz opuścić \"{name}\"?" +useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych" +welcomeBackWithName: "Witaj z powrotem, {name}" +clickToFinishEmailVerification: "Kliknij [{ok}], aby zakończyć weryfikację e-mail." +overridedDeviceKind: "Typ urządzenia" +smartphone: "Smartfon" +tablet: "Tablet" +auto: "Automatycznie" +size: "Rozmiar" +numberOfColumn: "Liczba kolumn" searchByGoogle: "Szukaj" indefinitely: "Nigdy" file: "Pliki" +logoutConfirm: "Czy na pewno chcesz się wylogować?" +lastActiveDate: "Ostatnio użyte w" +statusbar: "Pasek stanu" +pleaseSelect: "Wybierz opcję" reverse: "Odwróć" colored: "Kolorowe" label: "Etykieta" +type: "Typ" +speed: "Prędkość" +localOnly: "Lokalne tylko" +failedToUpload: "Przesyłanie nie powiodło się" +cannotUploadBecauseInappropriate: "Nie można przesłać tego pliku, ponieważ jego części zostały wykryte jako potencjalnie nieodpowiednie." +cannotUploadBecauseNoFreeSpace: "Przesyłanie nie powiodło się z powodu braku miejsca na dysku." +beta: "Beta" +enableAutoSensitive: "Automatyczne oznaczanie NSFW" +enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie zawartości NSFW za pomocą uczenia maszynowego. Nawet jeśli ta opcja jest wyłączona, może być włączona w całej instancji." +navbar: "Pasek nawigacyjny" account: "Konta" +move: "Przenieś" +_sensitiveMediaDetection: + description: "Zmniejsza wysiłek związany z moderacją serwera dzięki automatycznemu rozpoznawaniu zawartości NSFW za pomocą uczenia maszynowego. To nieznacznie zwiększy obciążenie serwera." + setSensitiveFlagAutomatically: "Oznacz jako NSFW" +_emailUnavailable: + used: "Ten adres e-mail jest już używany" + format: "Format tego adresu e-mail jest nieprawidłowy" + disposable: "Nie można używać jednorazowych adresów e-mail" + mx: "Ten serwer e-mail jest nieprawidłowy" + smtp: "Ten serwer e-mail nie odpowiada" _ffVisibility: - public: "Publikuj" + public: "Publiczne" + followers: "Widoczne tylko dla obserwujących" + private: "Prywatne" +_signup: + almostThere: "Prawie na miejscu" + emailAddressInfo: "Podaj swój adres e-mail. Nie zostanie on upubliczniony." + emailSent: "E-mail z potwierdzeniem został wysłany na Twój adres e-mail ({email}). Kliknij dołączony link, aby dokończyć tworzenie konta." +_accountDelete: + accountDelete: "Usuń konto" + mayTakeTime: "Ponieważ usuwanie konta jest procesem wymagającym dużej ilości zasobów, jego ukończenie może zająć trochę czasu, w zależności od ilości utworzonej zawartości i liczby przesłanych plików." + sendEmail: "Po zakończeniu usuwania konta na adres e-mail zarejestrowany na tym koncie zostanie wysłana wiadomość e-mail." + requestAccountDelete: "Poproś o usunięcie konta" + started: "Usuwanie się rozpoczęło." + inProgress: "Usuwanie jest obecnie w toku" _ad: back: "Wróć" reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej" _forgotPassword: + enterEmail: "Wpisz adres e-mail użyty do rejestracji. Zostanie do niego wysłany link, za pomocą którego możesz zresetować hasło." ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego." contactAdmin: "Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło." _gallery: @@ -788,6 +886,23 @@ _plugin: install: "Zainstaluj wtyczki" installWarn: "Nie instaluj niezaufanych wtyczek." manage: "Zarządzanie wtyczkami" +_preferencesBackups: + list: "Utworzone kopie zapasowe" + saveNew: "Zapisz nową kopię zapasową" + loadFile: "Załaduj z pliku" + apply: "Zastosuj do tego urządzenia" + save: "Zapisz zmiany" + inputName: "Proszę podać nazwę dla tej kopii zapasowej" + cannotSave: "Zapisanie nie powiodło się" + nameAlreadyExists: "Kopia zapasowa o nazwie \"{name}\" już istnieje. Proszę podać inną nazwę." + applyConfirm: "Czy na pewno chcesz zastosować kopię zapasową \"{name}\" na tym urządzeniu? Istniejące ustawienia tego urządzenia zostaną nadpisane." + saveConfirm: "Zapisać kopię zapasową jako {name}?" + deleteConfirm: "Usunąć kopię zapasową {name}?" + renameConfirm: "Zmienić nazwę kopii zapasowej z \"{old}\" na \"{new}\"?" + createdAt: "Utworzony w: {date} {time}" + updatedAt: "Zaktualizowano w: {date} {time}" + cannotLoad: "Ładowanie nie powiodło się" + invalidFile: "Nieprawidłowy format pliku" _registry: scope: "Zakres" key: "Klucz" @@ -822,10 +937,13 @@ _mfm: bold: "Pogrubienie" boldDescription: "Wyróżnia litery pogrubiając je." small: "Małe" + smallDescription: "Wyświetla treść jako małą i cienką." center: "Wyśrodkowanie" centerDescription: "Wyśrodkowuje zawartość." + inlineCode: "Kod (w wierszu)" blockCode: "Kod (blok)" blockCodeDescription: "Wyświetla kod z podświetlaną składnią składający się z wielu linii." + blockMath: "Matematyka (Blok)" quote: "Cytuj" quoteDescription: "Wyświetla treść jako cytat." emoji: "Niestandardowe emoji" @@ -834,6 +952,20 @@ _mfm: searchDescription: "Wyświetla pole wyszukiwania z wcześniej wpisanym tekstem." flip: "Odwróć" flipDescription: "Przerzuca treść poziomo lub pionowo." + jelly: "Animacja (Galaretka)" + jellyDescription: "Nadaje treści galaretowatą animację." + tada: "Animation (Tada)" + tadaDescription: "Nadaje treści animację podobną do \"Tada!\"." + jump: "Animacja (Skok)" + jumpDescription: "Nadaje treści animację skakania." + bounce: "Animacja (Odbijanie)" + bounceDescription: "Nadaje treści animację odbijania się." + shake: "Animacja (Wstrząsanie)" + shakeDescription: "Nadaje treści animację wstrząsania." + twitch: "Animacja (Drganie)" + twitchDescription: "Nadaje treści mocno drgającą animację." + spin: "Animacja (Obrót)" + spinDescription: "Nadaje treści animację obracania." x2: "Duże" x2Description: "Czyni treść większą." x3: "Bardzo duże" @@ -841,9 +973,17 @@ _mfm: x4: "Ogromne" x4Description: "Czyni treść jeszcze większą niż jeszcze większa." blur: "Rozmycie" + blurDescription: "Rozmywa treść. Zostanie wyraźnie wyświetlona po najechaniu." font: "Czcionka" fontDescription: "Wybiera czcionkę do wyświetlania treści." + rainbow: "Tęcza" + rainbowDescription: "Sprawia, że zawartość pojawia się w kolorach tęczy." + sparkle: "Blask" + sparkleDescription: "Nadaje zawartości efekt lśniącego brokatu." rotate: "Obróć" + rotateDescription: "Obraca zawartość o określony kąt." + plain: "Zwyczajny" + plainDescription: "Wyłącza efekty wszystkich MFM zawartych w tym efekcie MFM." _instanceTicker: none: "Nigdy nie pokazuj" remote: "Pokaż dla zdalnych użytkowników" @@ -863,6 +1003,7 @@ _channel: usersCount: "{n} uczestnicy" notesCount: "{n} wpisy" _menuDisplay: + top: "Góra" hide: "Ukryj" _wordMute: muteWords: "Słowo do wyciszenia" @@ -870,6 +1011,9 @@ _wordMute: soft: "Łagodny" hard: "Twardy" mutedNotes: "Wyciszone wpisy" +_instanceMute: + title: "Ukrywa wpisy z wymienionych instancji." + heading: "Lista instancji do wyciszenia" _theme: explore: "Przeglądaj motywy" install: "Zainstaluj motyw" @@ -950,6 +1094,7 @@ _sfx: notification: "Powiadomienia" chat: "Wiadomości" chatBg: "Rozmowy (tło)" + antenna: "Anteny" channel: "Powiadomienia kanału" _ago: future: "W przyszłości" @@ -969,12 +1114,30 @@ _time: _tutorial: title: "Jak korzystać z Misskey" step1_1: "Witaj!" + step1_2: "Ta strona nazywa się „oś czasu”. Pokazuje chronologicznie uporządkowane wpisy osób, które „śledzisz”." step1_3: "Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo." step2_1: "Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować." + step2_2: "Podanie pewnych informacji o tym, kim jesteś, ułatwi innym określenie, czy chcą widzieć Twoje wpisy lub Cię obserwować." step3_1: "Zakończyłeś(-aś) konfigurację profilu?" + step3_2: "Następnie spróbujmy opublikować wpis. Możesz to zrobić, naciskając przycisk z ikoną ołówka na ekranie." step3_3: "Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post." + step3_4: "Nie masz nic do powiedzenia? Spróbuj \"ustawiam swój misskey\"!" + step4_1: "Zakończyłeś publikowanie pierwszego wpisu?" + step4_2: "Hurra! Teraz Twój pierwszy wpis powinien być wyświetlany na Twojej osi czasu." + step5_1: "Teraz spróbujmy ożywić Twoją oś czasu, przez zaobserwowanie innych ludzi." + step5_2: "{featured} pokaże Ci popularne wpisy na tej instancji. {explore} pozwoli Ci znaleźć popularnych użytkowników. Spróbuj znaleźć tam osoby, które chcesz obserwować!" + step5_3: "Aby obserwować innych użytkowników, kliknij ich ikonę i naciśnij przycisk \"Obserwuj\" na ich profilu." + step5_4: "Jeśli inny użytkownik ma ikonę kłódki obok swojej nazwy, może minąć trochę czasu, zanim ten użytkownik ręcznie zatwierdzi Twoją prośbę o obserwowanie." + step6_1: "Powinieneś teraz widzieć wpisy innych użytkowników na swojej osi czasu." + step6_2: "Możesz także umieścić „reakcje” na wpisach innych osób, aby szybko na nie odpowiedzieć." + step6_3: "Aby dodać \"reakcję\", naciśnij znak \"+\" na wpisie innego użytkownika i wybierz emotikonę, którą chcesz zareagować." + step7_1: "Gratulacje! Ukończyłeś podstawowy samouczek Misskey." + step7_2: "Jeśli chcesz dowiedzieć się więcej o Misskey, wypróbuj sekcję {help}." + step7_3: "A teraz powodzenia i baw się dobrze z Misskey! 🚀" _2fa: + alreadyRegistered: "Zarejestrowałeś już urządzenie do uwierzytelniania dwuskładnikowego." registerDevice: "Zarejestruj nowe urządzenie" + registerKey: "Zarejestruj klucz bezpieczeństwa" step1: "Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu." step2: "Następnie, zeskanuje kod QR z ekranu." step3: "Wprowadź token podany w aplikacji, aby ukończyć konfigurację." @@ -990,6 +1153,7 @@ _permissions: "write:favorites": "Edycja Twojej listy ulubionych." "read:following": "Wyświetlanie informacji o obserwowanych" "write:following": "Obserwowanie lub cofanie obserwacji innych kont" + "read:messaging": "Zobacz swoje czaty" "read:mutes": "Wyświetlanie listy osób, które wyciszyłeś(-aś)" "write:mutes": "Edycja listy osób, które wyciszyłeś(-aś)" "read:notifications": "Wyświetlanie powiadomień" @@ -1003,6 +1167,10 @@ _permissions: "write:page-likes": "Edycja polubień na stronach" "read:user-groups": "Wyświetlanie grup użytkownika" "write:user-groups": "Edycja lub usuwanie grup użytkownika" + "read:channels": "Zobacz swoje kanały" + "write:channels": "Edytuj swoje kanały" + "read:gallery": "Zobacz swoją galerię" + "write:gallery": "Edytuj swoją galerię" _auth: shareAccess: "Czy chcesz autoryzować „{name}” do dostępu do tego konta?" permissionAsk: "Ta aplikacja wymaga następujących uprawnień:" @@ -1021,12 +1189,21 @@ _widgets: calendar: "Kalendarz" trends: "Na czasie" clock: "Zegar" + rss: "Czytnik RSS" activity: "Aktywność" photos: "Zdjęcia" + digitalClock: "Zegar cyfrowy" + unixClock: "Zegar UNIX" federation: "Federacja" - postForm: "Utwórz wpis" + instanceCloud: "Chmura instancji" + postForm: "Formularz tworzenia wpisu" + slideshow: "Pokaz slajdów" button: "Przycisk" + onlineUsers: "Użytkownicy online" jobQueue: "Kolejka zadań" + serverMetric: "Metryka serwera" + aiscript: "Konsola AiScript" + aichan: "Ai" _cw: hide: "Ukryj" show: "Załaduj więcej" @@ -1393,9 +1570,11 @@ _notification: youReceivedFollowRequest: "Otrzymałeś(-aś) prośbę o możliwość obserwacji" yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta" youWereInvitedToGroup: "Zaproszony(-a) do grupy" + pollEnded: "Wyniki ankiety stały się dostępne" + emptyPushNotificationMessage: "Powiadomienia push zostały zaktualizowane" _types: all: "Wszystkie" - follow: "Obserwowani" + follow: "Nowi obserwujący" mention: "Wspomnij" reply: "Odpowiedzi" renote: "Udostępnij" @@ -1407,12 +1586,14 @@ _notification: groupInvited: "Zaproszono do grup" app: "Powiadomienia z aplikacji" _actions: + followBack: "zaobserwował cię z powrotem" reply: "Odpowiedz" renote: "Udostępnij" _deck: alwaysShowMainColumn: "Zawsze pokazuj główną kolumnę" columnAlign: "Wyrównaj kolumny" addColumn: "Dodaj kolumnę" + configureColumn: "Ustawienia kolumny" swapLeft: "Przesuń w lewo" swapRight: "Przesuń w prawo" swapUp: "Zamień z powyższym" @@ -1420,6 +1601,9 @@ _deck: stackLeft: "Przypnij do lewej" popRight: "Odepnij w prawo" profile: "Profil" + newProfile: "Nowy profil" + deleteProfile: "Usuń profil" + widgetsIntroduction: "Wybierz \"Edytuj widżety\" w menu kolumny i dodaj widżet." _columns: main: "Główna" widgets: "Widżety" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 2a6988e9b..afce5ec02 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -562,6 +562,7 @@ author: "Автор" leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?" manage: "Управление" plugins: "Расширения" +preferencesBackups: "Резервная копия" deck: "Пульт" undeck: "Покинуть пульт" useBlurEffectForModal: "Размывка под формой поверх всего" diff --git a/locales/th-TH.yml b/locales/th-TH.yml index 6c731ea6e..6f794a7c7 100644 --- a/locales/th-TH.yml +++ b/locales/th-TH.yml @@ -562,6 +562,7 @@ author: "ผู้เขียน" leaveConfirm: "คุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึกนะ นายต้องการทิ้งการเปลี่ยนแปลงเหล่านั้นหรอ?" manage: "การจัดการ" plugins: "ปลั๊กอิน" +preferencesBackups: "ตั้งค่าการสำรองข้อมูล" deck: "เด็ค" undeck: "ออกจากเด็ค" useBlurEffectForModal: "ใช้เอฟเฟกต์เบลอสำหรับโมดอล" @@ -598,7 +599,7 @@ wordMute: "ปิดเสียงคำ" regexpError: "ข้อผิดพลาดของนิพจน์ทั่วไป" regexpErrorDescription: "เกิดข้อผิดพลาดในนิพจน์ทั่วไปในบรรทัดที่ {line} ของการปิดเสียงคำ {tab} ของคุณ:" instanceMute: "ปิดเสียง อินสแตนซ์" -userSaysSomething: "{ชื่อ} พูดอะไรบางอย่าง" +userSaysSomething: "{name} พูดอะไรบางอย่าง" makeActive: "เปิดใช้งาน" display: "แสดงผล" copy: "คัดลอก" @@ -913,13 +914,89 @@ _ffVisibility: _signup: almostThere: "เกือบจะมี" emailAddressInfo: "โปรดกรอกอีเมลของคุณ มันจะไม่เปิดเผยต่อสาธารณะ" + emailSent: "เราได้ส่งอีเมลยืนยันไปยังที่อยู่อีเมลของคุณแล้วนะ ({email}) โปรดคลิกลิงก์ที่รวมไว้เพื่อสร้างบัญชีให้เสร็จสิ้น" +_accountDelete: + accountDelete: "ลบบัญชีผู้ใช้" + mayTakeTime: "เนื่องจากการลบบัญชีนี้จะเป็นกระบวนการที่ต้องใช้ทรัพยากรมาก จึงอาจจะต้องใช้เวลาสักครู่ถึงจะเสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับจำนวนเนื้อหาที่คุณสร้างและจำนวนไฟล์ที่คุณอัปโหลดนะ" + sendEmail: "เมื่อการลบบัญชีนี้เสร็จสิ้น เราอาจจะส่งอีเมลไปยังที่อยู่อีเมลของคุณที่เคยลงทะเบียนไว้กับบัญชีนี้นะ" + requestAccountDelete: "ร้องขอให้ลบบัญชี" + started: "การลบได้เริ่มต้นขึ้น" + inProgress: "ปัจจุบันกำลังดำเนินการลบอยู่" _ad: back: "ย้อนกลับ" + reduceFrequencyOfThisAd: "แสดงโฆษณานี้ให้น้อยลง" +_forgotPassword: + enterEmail: "ป้อนที่อยู่อีเมลที่คุณเคยใช้ในการลงทะเบียนไว้ ลิงก์ที่คุณสามารถรีเซ็ตรหัสผ่านได้นั้นจะถูกส่งไปนะ" + ifNoEmail: "ถ้าหากคุณไม่ได้ใช้อีเมลระหว่างการลงทะเบียน กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์แทนนะ" + contactAdmin: "อินสแตนซ์นี้ไม่รองรับการใช้งานที่อยู่อีเมลนี้ กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์เพื่อรีเซ็ตรหัสผ่านของคุณแทน" +_gallery: + my: "แกลลอรี่ของฉัน" + liked: "โพสต์ที่ถูกใจ" + like: "ชื่นชอบ" + unlike: "ลบไลค์" _email: _follow: title: "ได้ติดตามคุณ" + _receiveFollowRequest: + title: "คุณได้รับคำขอติดตาม" +_plugin: + install: "ติดตั้งปลั๊กอิน" + installWarn: "กรุณาอย่าติดตั้งปลั๊กอินที่ไม่น่าเชื่อถือนะคะ" + manage: "จัดการปลั๊กอิน" +_preferencesBackups: + list: "สร้างการสำรองข้อมูล" + saveNew: "บันทึกใหม่" + loadFile: "โหลดจากไฟล์" + apply: "นำไปใช้กับอุปกรณ์นี้" + save: "บันทึก" + inputName: "กรุณาป้อนชื่อสำหรับข้อมูลสำรองนี้" + cannotSave: "การบันทึกล้มเหลว" + nameAlreadyExists: "มีข้อมูลสำรองชื่อ \"{name}\" นี้อยู่แล้ว กรุณาป้อนชื่ออื่นนะ" + applyConfirm: "คุณต้องการใช้ข้อมูลสำรอง \"{name}\" กับอุปกรณ์นี้อย่างงั้นจริงหรอ การตั้งค่าที่มีอยู่ของอุปกรณ์นี้จะถูกเขียนทับนะ" + saveConfirm: "บันทึกข้อมูลสำรองเป็น {name} มั้ย?" + deleteConfirm: "ลบข้อมูลสำรอง {name} มั้ย?" + renameConfirm: "เปลี่ยนชื่อข้อมูลสำรองนี้จาก \"{old}\" เป็น \"{new}\" หรือป่าว" + noBackups: "ไม่มีข้อมูลสำรองนะ คุณสามารถสำรองข้อมูลการตั้งค่าไคลเอนต์ของคุณบนเซิร์ฟเวอร์นี้โดยใช้ \"สร้างการสำรองข้อมูลใหม่\"ได้นะ" + createdAt: "สร้างเมื่อ: {date} {time}" + updatedAt: "อัปเดตเมื่อ: {date} {time}" + cannotLoad: "การโหลดล้มเหลว" + invalidFile: "รูปแบบไฟล์ไม่ถูกต้องนะ" +_registry: + scope: "สโคป" + key: "คีย์" + keys: "คีย์" + domain: "โดเมน" + createKey: "สร้างคีย์" +_aboutMisskey: + about: "Misskey เป็นซอฟต์แวร์โอเพ่นซอร์สที่ถูกพัฒนาโดย Syuilo ตั้งแต่ปี 2014" + contributors: "ผู้สนับสนุนหลัก" + allContributors: "ผู้มีส่วนร่วมทั้งหมด" + source: "ซอร์สโค้ด" + translation: "รับแปลภาษา Misskey" + donate: "บริจาคให้กับ Misskey" + morePatrons: "เราขอขอบคุณสำหรับความช่วยเหลือจากผู้ช่วยอื่นๆ ที่ไม่ได้ระบุไว้ที่นี่นะ ขอขอบคุณ! 🥰" + patrons: "สมาชิกพันธมิตร" +_nsfw: + respect: "ซ่อนสื่อ NSFW" + ignore: "อย่าซ่อนสื่อ NSFW" + force: "ซ่อนสื่อทั้งหมด" _mfm: + cheatSheet: "โค้ด MFM Cheat Sheet" + intro: "MFM เป็นภาษามาร์กอัปพิเศษเฉพาะของ Misskey ที่สามารถใช้ได้ในหลายที่ คุณยังสามารถดูรายการไวยากรณ์ MFM ที่มีอยู่ทั้งหมดได้ที่นี่นะ" + dummy: "Misskey ขยายโลกของ Fediverse" mention: "กล่าวถึง" + mentionDescription: "คุณสามารถระบุผู้ใช้โดยใช้ At-Symbol และชื่อผู้ใช้ได้นะ" + hashtag: "แฮชแท็ก" + hashtagDescription: "คุณสามารถระบุชื่อแฮชแท็กได้โดยใช้เครื่องหมายตัวเลขและข้อความได้นะ" + url: "URL" + urlDescription: "สามารถแสดง URL ได้นะ" + link: "ลิงก์" + linkDescription: "เจาะจงเฉพาะ ส่วนของข้อความที่สามารถแสดงเป็น URL ได้" + bold: "ตัวหนา" + boldDescription: "ไฮไลท์ตัวอักษรโดยทำให้หนาขึ้น" + small: "ขนาดเล็ก" + smallDescription: "แสดงผลเนื้อหาขนาดเล็กและบาง" + center: "เซ็นเตอร์" centerDescription: "แสดงผลเนื้อหาเป็นศูนย์กลาง" inlineCode: "โค้ด (อินไลน์)" inlineCodeDescription: "แสดงผลการเน้นไวยากรณ์แบบอินไลน์สำหรับโค้ด (โปรแกรม)" @@ -936,9 +1013,117 @@ _mfm: search: "ค้นหา" searchDescription: "แสดงผลกล่องค้นหาพร้อมกับข้อความที่ป้อนไว้ล่วงหน้า" flip: "พลิก" + flipDescription: "พลิกเนื้อหาในแนวนอนหรือแนวตั้ง" + jelly: "แอนิเมชั่น (เยลลี่)" + jellyDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือนเยลลี่" + tada: "แอนิเมชั่น (ธาดา)" + tadaDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือน \"ทาด้า!\"" + jump: "อนิเมชั่น (กระโดด)" + jumpDescription: "ให้เนื้อหามีภาพเคลื่อนไหวแบบกระโดด" + bounce: "อนิเมชั่น (เด้ง)" + bounceDescription: "ให้เนื้อหามีอนิเมชั่นเด้ง" + shake: "อนิเมชั่น (เขย่า)" + shakeDescription: "ให้เนื้อหามีภาพเคลื่อนไหวสั่น" + twitch: "แอนิเมชั่น (Twitch)" + twitchDescription: "ให้เนื้อหามีแอนิเมชั่นกระตุกอย่างแรง" + spin: "แอนิเมชั่น (สปิน)" + spinDescription: "ให้เนื้อหาเป็นภาพเคลื่อนไหวแบบหมุน" + x2: "ขนาดใหญ่" + x2Description: "แสดงเนื้อหาที่ใหญ่ขึ้น" + x3: "ใหญ่มาก" + x3Description: "แสดงเนื้อหาอีเว้นท์ที่ใหญ่ขึ้น" + x4: "ใหญ่อย่างไม่น่าเชื่อ" + x4Description: "แสดงผลเนื้อหาที่ใหญ่กว่าใหญ่กว่าขนาดใหญ่" + blur: "เบลอ" + blurDescription: "เบลอเนื้อหา จะแสดงผลอย่างชัดเจนต่อเมื่อวางเมาส์เหนือ" + font: "ตัวอักษร" + fontDescription: "ตั้งค่าตัวอักษรเพื่อแสดงเนื้อหาใน" + rainbow: "สายรุ้ง" + rainbowDescription: "ทำให้เนื้อหานั้นปรากฏเป็นสีรุ้ง" + sparkle: "กลิตเตอร์" + sparkleDescription: "ให้เนื้อหานั้นมีเอฟเฟกต์แบบอนุภาคประกาย" + rotate: "หมุนหน้าจอ" + rotateDescription: "เปลี่ยนเนื้อหาตามด้วยมุมที่ระบุไว้" + plain: "เรียบง่าย" + plainDescription: "ปิดการใช้งานเอฟเฟกต์ของ MFM ทั้งหมดที่มีอยู่ในเอฟเฟกต์ MFM นี้" +_instanceTicker: + none: "ไม่ต้องแสดง" + remote: "แสดงสำหรับผู้ใช้ระยะไกล" + always: "แสดงเสมอ" +_serverDisconnectedBehavior: + reload: "โหลดใหม่โดยอัตโนมัติ" + dialog: "แสดงกล่องโต้ตอบคำเตือน" + quiet: "แสดงคำเตือนที่ไม่เป็นการรบกวน" +_channel: + create: "สร้างแชนแนลใหม่" + edit: "แก้ไขแชนแนล" + setBanner: "เซตแบนเนอร์" + removeBanner: "ลบแบนเนอร์" + featured: "เทรนด์" + owned: "เจ้าของ" + following: "ติดตามแล้ว" + usersCount: "{n} ผู้เข้าร่วม" + notesCount: "{n} โน้ต" +_menuDisplay: + sideFull: "ด้านข้าง" + sideIcon: "ด้านข้าง (ไอคอน)" + top: "ท็อป" + hide: "ซ่อน" +_wordMute: + muteWords: "ปิดเสียงคำ" + muteWordsDescription: "คั่นด้วยช่องว่างสำหรับเงื่อนไข AND หรือด้วยการขึ้นบรรทัดใหม่สำหรับเงื่อนไข OR นะ" + muteWordsDescription2: "ล้อมรอบคีย์เวิร์ดด้วยเครื่องหมายทับเพื่อใช้นิพจน์ทั่วไป" + softDescription: "ซ่อนโน้ตให้ตรงตามเงื่อนไขที่ตั้งไว้จากไทม์ไลน์" + hardDescription: "ป้องกันไม่ให้โน้ตย่อที่ตรงตามเงื่อนไขที่ตั้งไว้ไม่ให้ถูกเพิ่มลงในไทม์ไลน์ นอกจากนี้ โน้ตเหล่านี้จะไม่ถูกเพิ่มลงในไทม์ไลน์แม้ว่าจะมีการเปลี่ยนแปลงเงื่อนไขยังไงก็ตาม" + soft: "ซอฟ" + hard: "ยาก" + mutedNotes: "ปิดเสียงโน้ต" +_instanceMute: + instanceMuteDescription: "การดำเนินการนี้จะปิดเสียง\"โน้ต/รีโน้ต\"จากอินสแตนซ์ที่อยู่ในรายการ รวมถึงบันทึกของผู้ใช้ที่ตอบกลับผู้ใช้จากอินสแตนซ์ที่ปิดเสียง" + instanceMuteDescription2: "คั่นด้วยการขึ้นบรรทัดใหม่" + title: "ซ่อนโน้ตจากอินสแตนซ์ที่มีอยู่ในรายการ" + heading: "รายชื่ออินสแตนซ์ที่ถูกปิดเสียง" _theme: + explore: "สำรวจธีม" + install: "ติดตั้งธีม" + manage: "จัดการธีม" + code: "โค้ดธีม" description: "รายละเอียด" + installed: "{name} ได้รับการติดตั้ง" + installedThemes: "ธีมที่ติดตั้ง" + builtinThemes: "ธีมในตัว" + alreadyInstalled: "ธีมนี้ได้รับการติดตั้งแล้ว" + invalid: "รูปแบบของธีมนี้ไม่ถูกต้องนะ" + make: "ทำธีม" + base: "ฐาน" + addConstant: "เพิ่มค่าคงที่" + constant: "ตัวแปร" + defaultValue: "ค่าเริ่มต้น" + color: "สี" + refProp: "อ้างอิงคุณสมบัติ" + refConst: "อ้างอิงค่าคงที่" + key: "คีย์" + func: "ฟังก์ชัน" + funcKind: "ประเภทฟังก์ชัน" + argument: "อากิวเม้นต์" + basedProp: "ทรัพย์สินอ้างอิง" + alpha: "ความทึบแสง" + darken: "มืดลง" + lighten: "สว่าง" + inputConstantName: "ป้อนชื่อสำหรับค่าคงที่นี้" + importInfo: "ถ้าหากต้องการป้อนโค้ดที่นี่ คุณยังสามารถนำเข้าไปยังโปรแกรมแก้ไขธีมได้" + deleteConstantConfirm: "คุณต้องการลบค่าคงที่ {const} หรือป่าว?" keys: + accent: "เน้น" + bg: "ภาพพื้นหลัง" + fg: "ข้อความ" + focus: "โฟกัส" + indicator: "ตัวบ่งชี้" + panel: "แผงควบคุม" + shadow: "เงา" + header: "ส่วนหัว" + navBg: "พื้นหลังแถบด้านข้าง" + navFg: "ข้อความแถบด้านข้าง" mention: "กล่าวถึง" renote: "รีโน้ต" divider: "ตัวแบ่ง" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 182cebf5a..1b6f29667 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -141,7 +141,7 @@ cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远 flagAsBot: "这是一个机器人账号" flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。" flagAsCat: "将这个账户设定为一只猫" -flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。" +flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。" flagShowTimelineReplies: "在时间线上显示帖子的回复" flagShowTimelineRepliesDescription: "启用时,时间线除了显示用户的帖子外,还会显示其他用户对帖子的回复。" autoAcceptFollowed: "自动允许关注者的关注" @@ -252,7 +252,7 @@ messageRead: "已读" noMoreHistory: "没有更多的历史记录" startMessaging: "添加聊天" nUsersRead: "{n}人已读" -agreeTo: "{0}勾选则表示已阅读并同意" +agreeTo: "勾选则表示已阅读并同意{0}" tos: "服务条款" start: "开始" home: "首页" @@ -668,7 +668,7 @@ yes: "是" no: "否" driveFilesCount: "网盘的文件数" driveUsage: "网盘的空间用量" -noCrawle: "要求搜索引擎不索引该站点" +noCrawle: "要求搜索引擎不索引该用户" noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。" lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。" alwaysMarkSensitive: "默认将媒体文件标记为敏感内容" @@ -747,7 +747,7 @@ userInfo: "用户信息" unknown: "未知" onlineStatus: "在线状态" hideOnlineStatus: "隐藏在线状态" -hideOnlineStatusDescription: "隐藏在线状态后,可能会降低例如搜索等功能的便利性。" +hideOnlineStatusDescription: "隐藏在线状态后,可能会降低搜索等功能的便利性。" online: "在线" active: "活动" offline: "离线" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index c7b4fe77f..3449da99a 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -883,8 +883,8 @@ sensitiveMediaDetection: "敏感性媒體的檢測" localOnly: "僅限本地" remoteOnly: "僅限遠端" failedToUpload: "上傳失敗" -cannotUploadBecauseInappropriate: "由於判定可能包含不適當的內容,因此無法上船。" -cannotUploadBecauseNoFreeSpace: "由於雲端硬碟沒有可用空間,因此無法上船>" +cannotUploadBecauseInappropriate: "由於判定可能包含不適當的內容,因此無法上傳。" +cannotUploadBecauseNoFreeSpace: "由於雲端硬碟沒有可用空間,因此無法上傳。" beta: "Beta" enableAutoSensitive: "自動NSFW判定" enableAutoSensitiveDescription: "如果可用,請利用機器學習在媒體上自動設置 NSFW 旗標。 即使關閉此功能,依實例而定也可能會自動設置。" @@ -917,7 +917,7 @@ _signup: emailSent: "已將確認郵件發送至您輸入的電子郵件地址 ({email})。請開啟電子郵件中的連結以完成帳戶創建。" _accountDelete: accountDelete: "刪除帳戶" - mayTakeTime: "刪除帳戶的處理負荷較大,如果帳戶產生的內容數量上船的檔案數量較多的話,就需要花费一段時間才能完成。" + mayTakeTime: "刪除帳戶的處理負荷較大,如果帳戶產生的內容數量上傳的檔案數量較多的話,就需要花费一段時間才能完成。" sendEmail: "帳戶删除完成後,將向註冊地電子郵件地址發送通知。" requestAccountDelete: "刪除帳戶請求" started: "已開始刪除作業。" diff --git a/package.json b/package.json index 27d5fd20a..37f0762f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "12.118.1", + "version": "12.119.0", "codename": "indigo", "repository": { "type": "git", @@ -41,10 +41,10 @@ "devDependencies": { "@types/gulp": "4.0.9", "@types/gulp-rename": "2.0.1", - "@typescript-eslint/parser": "5.33.0", + "@typescript-eslint/parser": "5.36.2", "cross-env": "7.0.3", - "cypress": "10.4.0", + "cypress": "10.7.0", "start-server-and-test": "1.14.0", - "typescript": "4.7.4" + "typescript": "4.8.3" } } diff --git a/packages/backend/package.json b/packages/backend/package.json index 5ddcaeb91..be8283e4a 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -14,7 +14,7 @@ "lodash": "^4.17.21" }, "optionalDependencies": { - "@tensorflow/tfjs-node": "3.19.0" + "@tensorflow/tfjs-node": "3.20.0" }, "dependencies": { "@bull-board/koa": "4.2.2", @@ -30,10 +30,10 @@ "archiver": "5.3.1", "autobind-decorator": "2.4.0", "autwh": "0.1.0", - "aws-sdk": "2.1194.0", + "aws-sdk": "2.1213.0", "bcryptjs": "2.4.3", "blurhash": "1.1.5", - "bull": "4.8.5", + "bull": "4.9.0", "cacheable-lookup": "6.1.0", "cbor": "8.1.0", "chalk": "5.0.1", @@ -42,7 +42,7 @@ "cli-highlight": "2.1.11", "color-convert": "2.0.1", "content-disposition": "0.5.4", - "date-fns": "2.29.1", + "date-fns": "2.29.2", "deep-email-validator": "0.1.21", "escape-regexp": "0.0.1", "feed": "4.2.2", @@ -58,7 +58,7 @@ "json5": "2.2.1", "json5-loader": "4.0.1", "jsonld": "6.0.0", - "jsrsasign": "10.5.26", + "jsrsasign": "10.5.27", "koa": "2.13.4", "koa-bodyparser": "4.3.0", "koa-favicon": "2.1.0", @@ -77,10 +77,10 @@ "nested-property": "4.0.0", "node-fetch": "3.2.10", "nodemailer": "6.7.8", - "nsfwjs": "2.4.1", + "nsfwjs": "2.4.2", "os-utils": "0.0.14", - "parse5": "7.0.0", - "pg": "8.7.3", + "parse5": "7.1.1", + "pg": "8.8.0", "private-ip": "2.3.4", "probe-image-size": "7.2.3", "promise-limit": "2.7.0", @@ -105,7 +105,7 @@ "stringz": "2.1.0", "summaly": "2.7.0", "syslog-pro": "1.0.0", - "systeminformation": "5.12.5", + "systeminformation": "5.12.6", "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.3.1", @@ -113,17 +113,17 @@ "tsc-alias": "1.7.0", "tsconfig-paths": "4.1.0", "twemoji-parser": "14.0.0", - "typeorm": "0.3.7", + "typeorm": "0.3.9", "ulid": "2.3.0", "unzipper": "0.10.11", - "uuid": "8.3.2", + "uuid": "9.0.0", "web-push": "3.5.0", "websocket": "1.0.34", "ws": "8.8.1", "xev": "3.0.2" }, "devDependencies": { - "@redocly/openapi-core": "1.0.0-beta.106", + "@redocly/openapi-core": "1.0.0-beta.108", "@types/bcryptjs": "2.4.2", "@types/bull": "3.15.9", "@types/cbor": "6.0.0", @@ -145,13 +145,13 @@ "@types/koa__multer": "2.0.4", "@types/koa__router": "8.0.11", "@types/mocha": "9.1.1", - "@types/node": "18.7.2", + "@types/node": "18.7.16", "@types/node-fetch": "3.0.3", "@types/nodemailer": "6.4.5", "@types/oauth": "0.9.1", "@types/pug": "2.0.6", "@types/punycode": "2.1.0", - "@types/qrcode": "1.4.2", + "@types/qrcode": "1.5.0", "@types/random-seed": "0.3.3", "@types/ratelimiter": "3.4.3", "@types/redis": "4.0.11", @@ -167,12 +167,12 @@ "@types/web-push": "3.3.2", "@types/websocket": "1.0.5", "@types/ws": "8.5.3", - "@typescript-eslint/eslint-plugin": "5.33.0", - "@typescript-eslint/parser": "5.33.0", + "@typescript-eslint/eslint-plugin": "5.36.2", + "@typescript-eslint/parser": "5.36.2", "cross-env": "7.0.3", - "eslint": "8.21.0", + "eslint": "8.23.0", "eslint-plugin-import": "2.26.0", "execa": "6.1.0", - "typescript": "4.7.4" + "typescript": "4.8.3" } } diff --git a/packages/backend/src/server/api/common/read-notification.ts b/packages/backend/src/server/api/common/read-notification.ts index cf993ade3..b0d38a9e3 100644 --- a/packages/backend/src/server/api/common/read-notification.ts +++ b/packages/backend/src/server/api/common/read-notification.ts @@ -1,18 +1,19 @@ +import { In } from 'typeorm'; import { publishMainStream } from '@/services/stream.js'; import { pushNotification } from '@/services/push-notification.js'; import { User } from '@/models/entities/user.js'; import { Notification } from '@/models/entities/notification.js'; import { Notifications, Users } from '@/models/index.js'; -import { In } from 'typeorm'; export async function readNotification( userId: User['id'], - notificationIds: Notification['id'][] + notificationIds: Notification['id'][], ) { if (notificationIds.length === 0) return; // Update documents const result = await Notifications.update({ + notifieeId: userId, id: In(notificationIds), isRead: false, }, { @@ -27,7 +28,7 @@ export async function readNotification( export async function readNotificationByQuery( userId: User['id'], - query: Record + query: Record, ) { const notificationIds = await Notifications.findBy({ ...query, diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index b0d529ec3..2aef689d3 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -92,6 +92,10 @@ } } } + const colorSchema = localStorage.getItem('colorSchema'); + if (colorSchema) { + document.documentElement.style.setProperty('color-schema', colorSchema); + } //#endregion const fontSize = localStorage.getItem('fontSize'); diff --git a/packages/backend/yarn.lock b/packages/backend/yarn.lock index cbc63d873..3be2f0d52 100644 --- a/packages/backend/yarn.lock +++ b/packages/backend/yarn.lock @@ -91,14 +91,14 @@ pump "^3.0.0" secure-json-parse "^2.1.0" -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@eslint/eslintrc@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" + integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -125,6 +125,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -282,22 +287,22 @@ jsprim "^1.2.2" sshpk "^1.14.1" -"@redocly/ajv@^8.6.4": - version "8.6.4" - resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.4.tgz#94053e7a9d4146d1a4feacd3813892873f229a85" - integrity sha512-y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw== +"@redocly/ajv@^8.6.5": + version "8.6.5" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.5.tgz#b6e737248b791905b3f600fb329779a807f0f774" + integrity sha512-3P2TY/u4c6OBqkP+1cTH1iGAEv0O34PV3vV2Wnos/nNHu62OTrtC4zcaxttG0pHtPtn42StrhGq7SsiFgP4Bfw== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -"@redocly/openapi-core@1.0.0-beta.106": - version "1.0.0-beta.106" - resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.106.tgz#5df810aee2ed64ecadf3d5100d8fbdf0d74c2924" - integrity sha512-ZHeczZ6iJrHL7K1v4s+NRFUOHsfZ1ZrB+bcS42CP4bhL/Y17PkOMWA+6Ubk0NVT4Ihdt5cLLWGfjVABD/bEM2A== +"@redocly/openapi-core@1.0.0-beta.108": + version "1.0.0-beta.108" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.108.tgz#fbf1b4e31c148f8816d2d63aa37b7831e305ec0f" + integrity sha512-4Lq7KB+XiBvVzpaY/M0a8qog/Zr8kGrvJbRW2z7Sk2Zpc/m+8LTuZbRh15eMoneVc13M9qbHFIRh3PG18g3Tng== dependencies: - "@redocly/ajv" "^8.6.4" + "@redocly/ajv" "^8.6.5" "@types/node" "^14.11.8" colorette "^1.2.0" js-levenshtein "^1.1.6" @@ -362,35 +367,35 @@ dependencies: defer-to-connect "^2.0.1" -"@tensorflow/tfjs-backend-cpu@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.19.0.tgz#c7524ccdfded81df0c5cb53185b14e5222ac51e5" - integrity sha512-02f+WkiL9gc9G7P8PwfsvuXREcAUdM/3uAL6fTle3xKEj7KOxX+E/mc3jxPY5UzjAsgHVBZrPJ2xi6AG16WPkQ== +"@tensorflow/tfjs-backend-cpu@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.20.0.tgz#338ec5cfc7c713355839fd85ddf90b5b59b6099a" + integrity sha512-gf075YaBLwSAAiUwa0D4GvYyUBhbJ1BVSivUNQmUfGKvIr2lIhF0qstBr033YTc3lhkbFSHEEPAHh/EfpqyjXQ== dependencies: "@types/seedrandom" "^2.4.28" seedrandom "^3.0.5" -"@tensorflow/tfjs-backend-webgl@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.19.0.tgz#64b8a14df35ee7d27859c7d141c527cefc6d9484" - integrity sha512-2HTkAE21t3WQTt8P6iK80ni03AzC8UNZmbIB7/pBDYBbhDwZwe/C5fXrJWnP9m6u4hvCdMAJ3o+OP3NeaEL1pw== +"@tensorflow/tfjs-backend-webgl@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.20.0.tgz#1ea6dff51a62cda64bd80ff9e7861a6010924f5a" + integrity sha512-SucbyQ08re3HvRgVfarRtKFIjNM4JvIAzcXmw4vaE/HrCtPEePkGO1VrmfQoN470EdUmGiwgqAjoyBvM2VOlVg== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.19.0" + "@tensorflow/tfjs-backend-cpu" "3.20.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "^2.4.28" "@types/webgl-ext" "0.0.30" "@types/webgl2" "0.0.6" seedrandom "^3.0.5" -"@tensorflow/tfjs-converter@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.19.0.tgz#701db7255ef45578811a191478db5a09bcca6dda" - integrity sha512-B69HQq9/orsM8pGJPjNp1cV+hIcc90mxcRIsQSYGovTUNEcftmz2Sh+mqXDWysKUk0gRfx5CX6eJk6NaE55Xow== +"@tensorflow/tfjs-converter@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.20.0.tgz#5d3d2b388775997585204bc867ecdf1e52789a38" + integrity sha512-8EIYqtQwvSYw9GFNW2OFU8Qnl/FQF/kKAsQJoORYaZ419WJo+FIZWbAWDtCpJSAgkgoHH1jYWgV9H313cVmqxg== -"@tensorflow/tfjs-core@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.19.0.tgz#981c50bb38a6441a4375cfc8806784e7490f01bc" - integrity sha512-znJ+TOJ3NdNL5yjw8M7dn2jO96sokiH1wfFuD7gglCkbZ4SXlFpFj2xelNdRHHmeYanMhJzqeyOW9whUnNcBqw== +"@tensorflow/tfjs-core@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.20.0.tgz#b6f89ae6490099e2c0c992faa59c96f563f9eba2" + integrity sha512-L16JyVA4a8jFJXFgB9/oYZxcGq/GfLypt5dMVTyedznARZZ9SiY/UMMbo3IKl9ZylG1dOVVTpjzV3EvBYfeJXw== dependencies: "@types/long" "^4.0.1" "@types/offscreencanvas" "~2019.3.0" @@ -401,27 +406,27 @@ node-fetch "~2.6.1" seedrandom "^3.0.5" -"@tensorflow/tfjs-data@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.19.0.tgz#31de23cbea6cc594d60bd2216ab39faa8b2219cb" - integrity sha512-rkZv+YZowZwnm4RaedkV44WDrjokRHld9Py/0Fb7IvMyUh37lY0WsAsV94kJ+QuLc6iVNcDLaV29K+dUz57bRA== +"@tensorflow/tfjs-data@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.20.0.tgz#8e267ea9f01066e0276be3226cb21b7d38711144" + integrity sha512-DiD3M/K/RYyTpOsrTL0ZUsdLgoczbSEx1+cQgCtlO3wUFoMxGYMxRTFeqp4hnJalY9MDptEqZ2gXAO1BMd2IXA== dependencies: "@types/node-fetch" "^2.1.2" node-fetch "~2.6.1" string_decoder "^1.3.0" -"@tensorflow/tfjs-layers@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.19.0.tgz#b624c25a2bdec09ea1c71db6547eb0952707fb35" - integrity sha512-+sVWjWWyTuT3sImrtNLtMv8/4FS30GAYpTgyJKhCQ3+GSvHUXulxJfncD0QqOg9fTbhtuF1TRAkzDU8v64791g== +"@tensorflow/tfjs-layers@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.20.0.tgz#53aac3e719c9aa06cdff894e564704555e73a069" + integrity sha512-CbeDFX7XgWVsjsqp9HisbhO+a+soLt9tMNNBD/F+Rmw+YDJ5+X64iRpsMj3OWK8yKp895waoeads56UhG+Pxlw== -"@tensorflow/tfjs-node@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.19.0.tgz#b7e58ff8bbea48881554d9178361726a83e56f92" - integrity sha512-6l8+56J66zf5k+WS8zTA1SbXno+iV7LgchwKPa62fsPRwjdzNIm1QondJbQYbFOILYx6bsgJs7nOoxStOlygAw== +"@tensorflow/tfjs-node@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.20.0.tgz#df401f99a6e7690d64f35136910d541cd337ba0f" + integrity sha512-lhMaqydtFNQ89kiET2nNMsV/rhOVa/Xh+hUHpxJP5e6KpVBzACmcJD8MjxM122G2EBntbf/vOQUAfnbX9AI9PA== dependencies: "@mapbox/node-pre-gyp" "1.0.9" - "@tensorflow/tfjs" "3.19.0" + "@tensorflow/tfjs" "3.20.0" adm-zip "^0.5.2" google-protobuf "^3.9.2" https-proxy-agent "^2.2.1" @@ -429,17 +434,17 @@ rimraf "^2.6.2" tar "^4.4.6" -"@tensorflow/tfjs@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.19.0.tgz#a08c35e6101bdbc0bf9a58f468270eee15f77bb0" - integrity sha512-fZF3HOON8jgKhFk06WIScIXf7j/gkl6cLbU1brFWutBhHlPSzxSWvdJR/TivCK7p+yMBunoyK50TjiwOrcoclA== +"@tensorflow/tfjs@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.20.0.tgz#4a525be52c72deb9964fe2e5a0abaae04b95d862" + integrity sha512-Vx6MBFgZs+o413a/tM9nLdo4LM5U8Rh3d1fB8ioPL4j8dsqoqfCeee/215J3zzWPHIiSqv3pcD7bkK3fDA27GQ== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.19.0" - "@tensorflow/tfjs-backend-webgl" "3.19.0" - "@tensorflow/tfjs-converter" "3.19.0" - "@tensorflow/tfjs-core" "3.19.0" - "@tensorflow/tfjs-data" "3.19.0" - "@tensorflow/tfjs-layers" "3.19.0" + "@tensorflow/tfjs-backend-cpu" "3.20.0" + "@tensorflow/tfjs-backend-webgl" "3.20.0" + "@tensorflow/tfjs-converter" "3.20.0" + "@tensorflow/tfjs-core" "3.20.0" + "@tensorflow/tfjs-data" "3.20.0" + "@tensorflow/tfjs-layers" "3.20.0" argparse "^1.0.10" chalk "^4.1.0" core-js "3" @@ -806,10 +811,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== -"@types/node@18.7.2": - version "18.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.2.tgz#22306626110c459aedd2cdf131c749ec781e3b34" - integrity sha512-ce7MIiaYWCFv6A83oEultwhBXb22fxwNOQf5DIxWA4WXvDQ7K+L0fbWl/YOfCzlR5B/uFkSnVBhPcOfOECcWvA== +"@types/node@18.7.16": + version "18.7.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601" + integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg== "@types/node@^14.11.8": version "14.17.9" @@ -845,10 +850,10 @@ resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== -"@types/qrcode@1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.4.2.tgz#7d7142d6fa9921f195db342ed08b539181546c74" - integrity sha512-7uNT9L4WQTNJejHTSTdaJhfBSCN73xtXaHFyBJ8TSwiLhe4PRuTue7Iph0s2nG9R/ifUaSnGhLUOZavlBEqDWQ== +"@types/qrcode@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.0.tgz#6a98fe9a9a7b2a9a3167b6dde17eff999eabe40b" + integrity sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA== dependencies: "@types/node" "*" @@ -995,14 +1000,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec" - integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg== +"@typescript-eslint/eslint-plugin@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz#6df092a20e0f9ec748b27f293a12cb39d0c1fe4d" + integrity sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/type-utils" "5.33.0" - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/type-utils" "5.36.2" + "@typescript-eslint/utils" "5.36.2" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -1010,69 +1015,70 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383" - integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w== +"@typescript-eslint/parser@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" + integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/typescript-estree" "5.36.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d" - integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw== +"@typescript-eslint/scope-manager@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" + integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/visitor-keys" "5.36.2" -"@typescript-eslint/type-utils@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338" - integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA== +"@typescript-eslint/type-utils@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz#752373f4babf05e993adf2cd543a763632826391" + integrity sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw== dependencies: - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/typescript-estree" "5.36.2" + "@typescript-eslint/utils" "5.36.2" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b" - integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw== +"@typescript-eslint/types@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" + integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== -"@typescript-eslint/typescript-estree@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf" - integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ== +"@typescript-eslint/typescript-estree@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" + integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/visitor-keys" "5.36.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038" - integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw== +"@typescript-eslint/utils@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.2.tgz#b01a76f0ab244404c7aefc340c5015d5ce6da74c" + integrity sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/typescript-estree" "5.36.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.33.0": - version "5.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484" - integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw== +"@typescript-eslint/visitor-keys@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" + integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== dependencies: - "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/types" "5.36.2" eslint-visitor-keys "^3.3.0" "@ungap/promise-all-settled@1.1.2": @@ -1458,10 +1464,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk@2.1194.0: - version "2.1194.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1194.0.tgz#6a820684fa3f58ea40caf90d302414a23df7c308" - integrity sha512-wbgib7r7sHPkZIhqSMduueKYqe+DrFyxsKnUKHj6hdNcRKqEeqzvKp4olWmFs/3z3qU8+g78kBXr9rujvko1ug== +aws-sdk@2.1213.0: + version "2.1213.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1213.0.tgz#efdbe52c72e6879348650ff9a69ab55ef948b6f3" + integrity sha512-ZfrUfhlLjwvQ6QTbg8lR4+SRFHaivzZMmfpS+64YzafcKjwc7rklYqiyh4MPTSmdNZkErgaAykYpXPMuTiWBug== dependencies: buffer "4.9.2" events "1.1.1" @@ -1681,10 +1687,10 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "~3.7.0" -bull@4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/bull/-/bull-4.8.5.tgz#eebafddc3249d6d5e8ced1c42b8bfa8efcc274aa" - integrity sha512-2Z630e4f6VsLJnWMAtfEHwIqJYmND4W3dcG48RIbXeWpvb4UnYtpe/zxEdslJu0PKrltB4IkFj5YtBsdeQRn8w== +bull@4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/bull/-/bull-4.9.0.tgz#522a955fa045141ce2c063ab24c2c78e4ee3782e" + integrity sha512-yiaSb41dywjIhJ3i1mczjQGDmM6pLIoM1Ea0Gcf5HKDxOoEzL5i9XEEKW7fbsj7u083UEOnQ4gSWfbWIUDO6JQ== dependencies: cron-parser "^4.2.1" debuglog "^1.0.0" @@ -2293,10 +2299,10 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" -date-fns@2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.1.tgz#9667c2615525e552b5135a3116b95b1961456e60" - integrity sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw== +date-fns@2.29.2: + version "2.29.2" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" + integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== date-fns@^2.28.0: version "2.28.0" @@ -2732,6 +2738,11 @@ entities@^4.3.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.0.tgz#62915f08d67353bb4eb67e3d62641a4059aec656" integrity sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg== +entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + env-paths@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" @@ -2949,14 +2960,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.21.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" - integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== +eslint@8.23.0: + version "8.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" + integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== dependencies: - "@eslint/eslintrc" "^1.3.0" + "@eslint/eslintrc" "^1.3.1" "@humanwhocodes/config-array" "^0.10.4" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2966,7 +2978,7 @@ eslint@8.21.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.3" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -2992,21 +3004,11 @@ eslint@8.21.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" - integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -4568,10 +4570,10 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -jsrsasign@10.5.26: - version "10.5.26" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.5.26.tgz#bc36d4c4019c83f144066725ea0ca6ab306702fc" - integrity sha512-TjEu1yPdI+8whpe6CA/6XNb7U1sm9+PUItOUfSThOLvx7JCfYHIfuvZK2Egz2DWUKioafn98LPuk+geLGckxMg== +jsrsasign@10.5.27: + version "10.5.27" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.5.27.tgz#481defb1206aa48cd740c3fce8ff546efb5bb45e" + integrity sha512-1F4LmDeJZHYwoVvB44jEo2uZL3XuwYNzXCDOu53Ui6vqofGQ/gCYDmaxfVZtN0TGd92UKXr/BONcfrPonUIcQQ== jstransformer@1.0.0: version "1.0.0" @@ -5595,10 +5597,10 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -nsfwjs@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/nsfwjs/-/nsfwjs-2.4.1.tgz#406dff6e379f4fc1c5fd4d16b7a64e4ae4b355c1" - integrity sha512-8XPUPVeIIfkSeWjHEytDMedZNISR0SCjv67JYbS75SIYcmz8Y7GZqNfLupltjcwsqV0e4bwdc4l4bEOno58QdA== +nsfwjs@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/nsfwjs/-/nsfwjs-2.4.2.tgz#dd8656705f79f53d789245eaf317d6b6818a0032" + integrity sha512-i4Pp2yt59qPQgeZFyg3wXFBX52uSeu/hkDoqdZfe+sILRxNBUu0VDogj7Lmqak0GlrXviS/wLiVeIx40IDUu7A== dependencies: "@nsfw-filter/gif-frames" "1.0.2" @@ -5868,12 +5870,12 @@ parse5-htmlparser2-tree-adapter@^6.0.0: dependencies: parse5 "^6.0.1" -parse5@7.0.0, parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== +parse5@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" + integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== dependencies: - entities "^4.3.0" + entities "^4.4.0" parse5@^5.1.1: version "5.1.1" @@ -5885,6 +5887,13 @@ parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parse5@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" + integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== + dependencies: + entities "^4.3.0" + parseurl@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -5955,10 +5964,10 @@ pg-int8@1.0.1: resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.1.tgz#f499ce76f9bf5097488b3b83b19861f28e4ed905" - integrity sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ== +pg-pool@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.2.tgz#ed1bed1fb8d79f1c6fd5fb1c99e990fbf9ddf178" + integrity sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w== pg-protocol@^1.5.0: version "1.5.0" @@ -5976,15 +5985,15 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@8.7.3: - version "8.7.3" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.3.tgz#8a5bdd664ca4fda4db7997ec634c6e5455b27c44" - integrity sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw== +pg@8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.8.0.tgz#a77f41f9d9ede7009abfca54667c775a240da686" + integrity sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" pg-connection-string "^2.5.0" - pg-pool "^3.5.1" + pg-pool "^3.5.2" pg-protocol "^1.5.0" pg-types "^2.1.0" pgpass "1.x" @@ -7246,10 +7255,10 @@ syslog-pro@1.0.0: dependencies: moment "^2.22.2" -systeminformation@5.12.5: - version "5.12.5" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.12.5.tgz#ba223aca6d99453136986fb6a4c96518d13d27b5" - integrity sha512-lWhWMZTQzwHaB2aacQ9wbhSncgXo8bYv7M9K5Qrz9tJuvqPepiCvb5Uauq2xwH+JhbjPO9YJD2qLXQEXFAjwwA== +systeminformation@5.12.6: + version "5.12.6" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.12.6.tgz#b75d7aaf9f5da32439fc633d2be9eb741691d200" + integrity sha512-FkCvT5BOuH1OE3+8lFM25oXIYJ0CM8kq4Wgvz2jyBTrsOIgha/6gdJXgbF4rv+g0j/5wJqQLDKan7kc/p7uIvw== tapable@^2.2.0: version "2.2.0" @@ -7586,10 +7595,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typeorm@0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.7.tgz#5776ed5058f0acb75d64723b39ff458d21de64c1" - integrity sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q== +typeorm@0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.9.tgz#ad0f525d81c081fd11006f97030f47a55978ac81" + integrity sha512-xNcE44D4hn74n7pjuMog9hRgep+BiO3IBpjEaQZ8fb56zsDz7xHT1GAeWwmGuuU+4nDEELp2mIqgSCR+zxR7Jw== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" @@ -7609,10 +7618,10 @@ typeorm@0.3.7: xml2js "^0.4.23" yargs "^17.3.1" -typescript@4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +typescript@4.8.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" + integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== ulid@2.3.0: version "2.3.0" @@ -7743,26 +7752,26 @@ uuid@8.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== -uuid@8.3.2, uuid@^8.3.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== - vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" diff --git a/packages/client/package.json b/packages/client/package.json index 0cab29f27..c90c7f966 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -15,8 +15,8 @@ "@rollup/plugin-alias": "3.1.9", "@rollup/plugin-json": "4.1.0", "@syuilo/aiscript": "0.11.1", - "@vitejs/plugin-vue": "3.0.3", - "@vue/compiler-sfc": "3.2.37", + "@vitejs/plugin-vue": "3.1.0", + "@vue/compiler-sfc": "3.2.39", "autobind-decorator": "2.4.0", "autosize": "5.0.1", "blurhash": "1.1.5", @@ -24,11 +24,11 @@ "browser-image-resizer": "git+https://github.com/misskey-dev/browser-image-resizer#v2.2.1-misskey.2", "chart.js": "3.9.1", "chartjs-adapter-date-fns": "2.0.0", - "chartjs-plugin-gradient": "0.5.0", + "chartjs-plugin-gradient": "0.5.1", "chartjs-plugin-zoom": "1.2.1", - "compare-versions": "4.1.3", + "compare-versions": "5.0.1", "cropperjs": "2.0.0-beta", - "date-fns": "2.29.1", + "date-fns": "2.29.2", "escape-regexp": "0.0.1", "eventemitter3": "4.0.7", "idb-keyval": "6.2.0", @@ -38,35 +38,35 @@ "matter-js": "0.18.0", "mfm-js": "0.23.0", "misskey-js": "0.0.14", - "photoswipe": "5.3.0", - "prismjs": "1.28.0", + "photoswipe": "5.3.2", + "prismjs": "1.29.0", "punycode": "2.1.1", "querystring": "0.2.1", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.54.4", + "sass": "1.54.9", "seedrandom": "3.0.5", "strict-event-emitter-types": "2.0.0", "stringz": "2.1.0", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", - "three": "0.143.0", + "three": "0.144.0", "throttle-debounce": "5.0.0", "tinycolor2": "1.4.2", "tsc-alias": "1.7.0", "tsconfig-paths": "4.1.0", "twemoji-parser": "14.0.0", - "typescript": "4.7.4", - "uuid": "8.3.2", + "typescript": "4.8.3", + "uuid": "9.0.0", "vanilla-tilt": "1.7.2", - "vite": "3.0.7", - "vue": "3.2.37", + "vite": "3.1.0", + "vue": "3.2.39", "vue-prism-editor": "2.0.0-alpha.2", "vuedraggable": "4.0.1" }, "devDependencies": { "@types/escape-regexp": "0.0.1", - "@types/glob": "7.2.0", + "@types/glob": "8.0.0", "@types/gulp": "4.0.9", "@types/gulp-rename": "2.0.1", "@types/katex": "0.14.0", @@ -76,14 +76,14 @@ "@types/throttle-debounce": "5.0.0", "@types/tinycolor2": "1.4.3", "@types/uuid": "8.3.4", - "@typescript-eslint/eslint-plugin": "5.33.0", - "@typescript-eslint/parser": "5.33.0", + "@typescript-eslint/eslint-plugin": "5.36.2", + "@typescript-eslint/parser": "5.36.2", "cross-env": "7.0.3", - "cypress": "10.4.0", - "eslint": "8.21.0", + "cypress": "10.7.0", + "eslint": "8.23.0", "eslint-plugin-import": "2.26.0", - "eslint-plugin-vue": "9.3.0", - "rollup": "2.77.3", + "eslint-plugin-vue": "9.4.0", + "rollup": "2.79.0", "start-server-and-test": "1.14.0" } } diff --git a/packages/client/src/account.ts b/packages/client/src/account.ts index 243aea68c..10257b841 100644 --- a/packages/client/src/account.ts +++ b/packages/client/src/account.ts @@ -146,7 +146,7 @@ export async function openAccountMenu(opts: { onChoose?: (account: misskey.entities.UserDetailed) => void; }, ev: MouseEvent) { function showSigninDialog() { - popup(defineAsyncComponent(() => import('@/components/signin-dialog.vue')), {}, { + popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, { done: res => { addAccount(res.id, res.i); success(); @@ -155,7 +155,7 @@ export async function openAccountMenu(opts: { } function createAccount() { - popup(defineAsyncComponent(() => import('@/components/signup-dialog.vue')), {}, { + popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, { done: res => { addAccount(res.id, res.i); switchAccountWithToken(res.i); diff --git a/packages/client/src/components/abuse-report.vue b/packages/client/src/components/MkAbuseReport.vue similarity index 96% rename from packages/client/src/components/abuse-report.vue rename to packages/client/src/components/MkAbuseReport.vue index 8c25df110..9a3464b64 100644 --- a/packages/client/src/components/abuse-report.vue +++ b/packages/client/src/components/MkAbuseReport.vue @@ -36,9 +36,9 @@ diff --git a/packages/client/src/components/user-card-mini.vue b/packages/client/src/components/MkUserCardMini.vue similarity index 97% rename from packages/client/src/components/user-card-mini.vue rename to packages/client/src/components/MkUserCardMini.vue index 732adf7f5..1a4c49498 100644 --- a/packages/client/src/components/user-card-mini.vue +++ b/packages/client/src/components/MkUserCardMini.vue @@ -11,7 +11,7 @@ diff --git a/packages/client/src/components/user-select-dialog.vue b/packages/client/src/components/MkUserSelectDialog.vue similarity index 98% rename from packages/client/src/components/user-select-dialog.vue rename to packages/client/src/components/MkUserSelectDialog.vue index 4d8e427a7..07caedfe3 100644 --- a/packages/client/src/components/user-select-dialog.vue +++ b/packages/client/src/components/MkUserSelectDialog.vue @@ -56,7 +56,7 @@ import { nextTick, onMounted } from 'vue'; import * as misskey from 'misskey-js'; import MkInput from '@/components/form/input.vue'; import FormSplit from '@/components/form/split.vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import XModalWindow from '@/components/MkModalWindow.vue'; import * as os from '@/os'; import { defaultStore } from '@/store'; import { i18n } from '@/i18n'; diff --git a/packages/client/src/components/users-tooltip.vue b/packages/client/src/components/MkUsersTooltip.vue similarity index 95% rename from packages/client/src/components/users-tooltip.vue rename to packages/client/src/components/MkUsersTooltip.vue index 2df19bcd3..4ccc44b47 100644 --- a/packages/client/src/components/users-tooltip.vue +++ b/packages/client/src/components/MkUsersTooltip.vue @@ -12,7 +12,7 @@ diff --git a/packages/client/src/components/global/avatar.vue b/packages/client/src/components/global/MkAvatar.vue similarity index 98% rename from packages/client/src/components/global/avatar.vue rename to packages/client/src/components/global/MkAvatar.vue index 4868896c9..5f3e3c176 100644 --- a/packages/client/src/components/global/avatar.vue +++ b/packages/client/src/components/global/MkAvatar.vue @@ -15,7 +15,7 @@ import * as misskey from 'misskey-js'; import { getStaticImageUrl } from '@/scripts/get-static-image-url'; import { extractAvgColorFromBlurhash } from '@/scripts/extract-avg-color-from-blurhash'; import { acct, userPage } from '@/filters/user'; -import MkUserOnlineIndicator from '@/components/user-online-indicator.vue'; +import MkUserOnlineIndicator from '@/components/MkUserOnlineIndicator.vue'; import { defaultStore } from '@/store'; const props = withDefaults(defineProps<{ diff --git a/packages/client/src/components/global/ellipsis.vue b/packages/client/src/components/global/MkEllipsis.vue similarity index 100% rename from packages/client/src/components/global/ellipsis.vue rename to packages/client/src/components/global/MkEllipsis.vue diff --git a/packages/client/src/components/global/emoji.vue b/packages/client/src/components/global/MkEmoji.vue similarity index 100% rename from packages/client/src/components/global/emoji.vue rename to packages/client/src/components/global/MkEmoji.vue diff --git a/packages/client/src/components/global/error.vue b/packages/client/src/components/global/MkError.vue similarity index 93% rename from packages/client/src/components/global/error.vue rename to packages/client/src/components/global/MkError.vue index 4e2ba07d3..6e75a69ec 100644 --- a/packages/client/src/components/global/error.vue +++ b/packages/client/src/components/global/MkError.vue @@ -9,7 +9,7 @@ diff --git a/packages/client/src/components/global/loading.vue b/packages/client/src/components/global/MkLoading.vue similarity index 99% rename from packages/client/src/components/global/loading.vue rename to packages/client/src/components/global/MkLoading.vue index bcc6dfac0..bcf592523 100644 --- a/packages/client/src/components/global/loading.vue +++ b/packages/client/src/components/global/MkLoading.vue @@ -44,7 +44,7 @@ const props = withDefaults(defineProps<{ text-align: center; cursor: wait; - --size: 40px; + --size: 38px; &.colored { color: var(--accent); diff --git a/packages/client/src/components/global/misskey-flavored-markdown.vue b/packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue similarity index 100% rename from packages/client/src/components/global/misskey-flavored-markdown.vue rename to packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue diff --git a/packages/client/src/components/global/page-header.vue b/packages/client/src/components/global/MkPageHeader.vue similarity index 100% rename from packages/client/src/components/global/page-header.vue rename to packages/client/src/components/global/MkPageHeader.vue diff --git a/packages/client/src/components/global/spacer.vue b/packages/client/src/components/global/MkSpacer.vue similarity index 100% rename from packages/client/src/components/global/spacer.vue rename to packages/client/src/components/global/MkSpacer.vue diff --git a/packages/client/src/components/global/sticky-container.vue b/packages/client/src/components/global/MkStickyContainer.vue similarity index 100% rename from packages/client/src/components/global/sticky-container.vue rename to packages/client/src/components/global/MkStickyContainer.vue diff --git a/packages/client/src/components/global/time.vue b/packages/client/src/components/global/MkTime.vue similarity index 100% rename from packages/client/src/components/global/time.vue rename to packages/client/src/components/global/MkTime.vue diff --git a/packages/client/src/components/global/url.vue b/packages/client/src/components/global/MkUrl.vue similarity index 60% rename from packages/client/src/components/global/url.vue rename to packages/client/src/components/global/MkUrl.vue index dc79a2064..37c0212ea 100644 --- a/packages/client/src/components/global/url.vue +++ b/packages/client/src/components/global/MkUrl.vue @@ -18,54 +18,39 @@ - diff --git a/packages/client/src/components/global/i18n.ts b/packages/client/src/components/global/i18n.ts index abf0c9685..1fd293ba1 100644 --- a/packages/client/src/components/global/i18n.ts +++ b/packages/client/src/components/global/i18n.ts @@ -30,7 +30,7 @@ export default defineComponent({ } else { if (nextBracketOpen > 0) parsed.push(str.substr(0, nextBracketOpen)); parsed.push({ - arg: str.substring(nextBracketOpen + 1, nextBracketClose) + arg: str.substring(nextBracketOpen + 1, nextBracketClose), }); } @@ -38,5 +38,5 @@ export default defineComponent({ } return h(this.tag, parsed.map(x => typeof x === 'string' ? (this.textTag ? h(this.textTag, x) : x) : this.$slots[x.arg]())); - } + }, }); diff --git a/packages/client/src/components/index.ts b/packages/client/src/components/index.ts index aa8a591e5..863925700 100644 --- a/packages/client/src/components/index.ts +++ b/packages/client/src/components/index.ts @@ -1,22 +1,22 @@ import { App } from 'vue'; -import Mfm from './global/misskey-flavored-markdown.vue'; -import MkA from './global/a.vue'; -import MkAcct from './global/acct.vue'; -import MkAvatar from './global/avatar.vue'; -import MkEmoji from './global/emoji.vue'; -import MkUserName from './global/user-name.vue'; -import MkEllipsis from './global/ellipsis.vue'; -import MkTime from './global/time.vue'; -import MkUrl from './global/url.vue'; +import Mfm from './global/MkMisskeyFlavoredMarkdown.vue'; +import MkA from './global/MkA.vue'; +import MkAcct from './global/MkAcct.vue'; +import MkAvatar from './global/MkAvatar.vue'; +import MkEmoji from './global/MkEmoji.vue'; +import MkUserName from './global/MkUserName.vue'; +import MkEllipsis from './global/MkEllipsis.vue'; +import MkTime from './global/MkTime.vue'; +import MkUrl from './global/MkUrl.vue'; import I18n from './global/i18n'; -import RouterView from './global/router-view.vue'; -import MkLoading from './global/loading.vue'; -import MkError from './global/error.vue'; -import MkAd from './global/ad.vue'; -import MkPageHeader from './global/page-header.vue'; -import MkSpacer from './global/spacer.vue'; -import MkStickyContainer from './global/sticky-container.vue'; +import RouterView from './global/RouterView.vue'; +import MkLoading from './global/MkLoading.vue'; +import MkError from './global/MkError.vue'; +import MkAd from './global/MkAd.vue'; +import MkPageHeader from './global/MkPageHeader.vue'; +import MkSpacer from './global/MkSpacer.vue'; +import MkStickyContainer from './global/MkStickyContainer.vue'; export default function(app: App) { app.component('I18n', I18n); diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts index 16ae45bfe..688857a49 100644 --- a/packages/client/src/components/mfm.ts +++ b/packages/client/src/components/mfm.ts @@ -1,15 +1,15 @@ import { VNode, defineComponent, h } from 'vue'; import * as mfm from 'mfm-js'; -import MkUrl from '@/components/global/url.vue'; -import MkLink from '@/components/link.vue'; -import MkMention from '@/components/mention.vue'; -import MkEmoji from '@/components/global/emoji.vue'; +import MkUrl from '@/components/global/MkUrl.vue'; +import MkLink from '@/components/MkLink.vue'; +import MkMention from '@/components/MkMention.vue'; +import MkEmoji from '@/components/global/MkEmoji.vue'; import { concat } from '@/scripts/array'; -import MkFormula from '@/components/formula.vue'; -import MkCode from '@/components/code.vue'; -import MkGoogle from '@/components/google.vue'; -import MkSparkle from '@/components/sparkle.vue'; -import MkA from '@/components/global/a.vue'; +import MkFormula from '@/components/MkFormula.vue'; +import MkCode from '@/components/MkCode.vue'; +import MkGoogle from '@/components/MkGoogle.vue'; +import MkSparkle from '@/components/MkSparkle.vue'; +import MkA from '@/components/global/MkA.vue'; import { host } from '@/config'; import { MFM_TAGS } from '@/scripts/mfm-tags'; diff --git a/packages/client/src/components/page/page.button.vue b/packages/client/src/components/page/page.button.vue index a87f6e9f0..e8878df8d 100644 --- a/packages/client/src/components/page/page.button.vue +++ b/packages/client/src/components/page/page.button.vue @@ -6,7 +6,7 @@ diff --git a/packages/client/src/components/ui/hr.vue b/packages/client/src/components/ui/hr.vue deleted file mode 100644 index 0cb5b4887..000000000 --- a/packages/client/src/components/ui/hr.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/packages/client/src/components/url-preview-popup.vue b/packages/client/src/components/url-preview-popup.vue deleted file mode 100644 index 5f3717ab9..000000000 --- a/packages/client/src/components/url-preview-popup.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/packages/client/src/directives/ripple.ts b/packages/client/src/directives/ripple.ts index f1d41ddb0..5329d021f 100644 --- a/packages/client/src/directives/ripple.ts +++ b/packages/client/src/directives/ripple.ts @@ -1,4 +1,4 @@ -import Ripple from '@/components/ripple.vue'; +import Ripple from '@/components/MkRipple.vue'; import { popup } from '@/os'; export default { diff --git a/packages/client/src/directives/tooltip.ts b/packages/client/src/directives/tooltip.ts index 8b68771ca..5d13497b5 100644 --- a/packages/client/src/directives/tooltip.ts +++ b/packages/client/src/directives/tooltip.ts @@ -46,7 +46,7 @@ export default { if (self.text == null) return; const showing = ref(true); - popup(defineAsyncComponent(() => import('@/components/ui/tooltip.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkTooltip.vue')), { showing, text: self.text, asMfm: binding.modifiers.mfm, diff --git a/packages/client/src/directives/user-preview.ts b/packages/client/src/directives/user-preview.ts index 9d18a6987..c46167662 100644 --- a/packages/client/src/directives/user-preview.ts +++ b/packages/client/src/directives/user-preview.ts @@ -24,7 +24,7 @@ export class UserPreview { const showing = ref(true); - popup(defineAsyncComponent(() => import('@/components/user-preview.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkUserPreview.vue')), { showing, q: this.user, source: this.el diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts index 94e7f9f6b..737c044e6 100644 --- a/packages/client/src/init.ts +++ b/packages/client/src/init.ts @@ -14,7 +14,7 @@ if (localStorage.getItem('accounts') != null) { //#endregion import { computed, createApp, watch, markRaw, version as vueVersion, defineAsyncComponent } from 'vue'; -import compareVersions from 'compare-versions'; +import { compareVersions } from 'compare-versions'; import JSON5 from 'json5'; import widgets from '@/widgets'; @@ -241,7 +241,7 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; if (lastVersion != null && compareVersions(version, lastVersion) === 1) { // ログインしてる場合だけ if ($i) { - popup(defineAsyncComponent(() => import('@/components/updated.vue')), {}, {}, 'closed'); + popup(defineAsyncComponent(() => import('@/components/MkUpdated.vue')), {}, {}, 'closed'); } } } catch (err) { diff --git a/packages/client/src/os.ts b/packages/client/src/os.ts index 00dae867d..515fc4781 100644 --- a/packages/client/src/os.ts +++ b/packages/client/src/os.ts @@ -5,8 +5,8 @@ import { EventEmitter } from 'eventemitter3'; import insertTextAtCursor from 'insert-text-at-cursor'; import * as Misskey from 'misskey-js'; import { apiUrl, url } from '@/config'; -import MkPostFormDialog from '@/components/post-form-dialog.vue'; -import MkWaitingDialog from '@/components/waiting-dialog.vue'; +import MkPostFormDialog from '@/components/MkPostFormDialog.vue'; +import MkWaitingDialog from '@/components/MkWaitingDialog.vue'; import { MenuItem } from '@/types/menu'; import { $i } from '@/account'; @@ -187,19 +187,19 @@ export async function popup(component: Component, props: Record, ev } export function pageWindow(path: string) { - popup(defineAsyncComponent(() => import('@/components/page-window.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkPageWindow.vue')), { initialPath: path, }, {}, 'closed'); } export function modalPageWindow(path: string) { - popup(defineAsyncComponent(() => import('@/components/modal-page-window.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkModalPageWindow.vue')), { initialPath: path, }, {}, 'closed'); } export function toast(message: string) { - popup(defineAsyncComponent(() => import('@/components/toast.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkToast.vue')), { message, }, {}, 'closed'); } @@ -210,7 +210,7 @@ export function alert(props: { text?: string | null; }): Promise { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), props, { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), props, { done: result => { resolve(); }, @@ -224,7 +224,7 @@ export function confirm(props: { text?: string | null; }): Promise<{ canceled: boolean }> { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { ...props, showCancelButton: true, }, { @@ -245,7 +245,7 @@ export function inputText(props: { canceled: false; result: string; }> { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { title: props.title, text: props.text, input: { @@ -270,7 +270,7 @@ export function inputNumber(props: { canceled: false; result: number; }> { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { title: props.title, text: props.text, input: { @@ -295,7 +295,7 @@ export function inputDate(props: { canceled: false; result: Date; }> { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { title: props.title, text: props.text, input: { @@ -332,7 +332,7 @@ export function select(props: { canceled: false; result: C; }> { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { title: props.title, text: props.text, select: { @@ -354,7 +354,7 @@ export function success() { window.setTimeout(() => { showing.value = false; }, 1000); - popup(defineAsyncComponent(() => import('@/components/waiting-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), { success: true, showing: showing, }, { @@ -366,7 +366,7 @@ export function success() { export function waiting() { return new Promise((resolve, reject) => { const showing = ref(true); - popup(defineAsyncComponent(() => import('@/components/waiting-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), { success: false, showing: showing, }, { @@ -377,7 +377,7 @@ export function waiting() { export function form(title, form) { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/form-dialog.vue')), { title, form }, { + popup(defineAsyncComponent(() => import('@/components/MkFormDialog.vue')), { title, form }, { done: result => { resolve(result); }, @@ -387,7 +387,7 @@ export function form(title, form) { export async function selectUser() { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/user-select-dialog.vue')), {}, { + popup(defineAsyncComponent(() => import('@/components/MkUserSelectDialog.vue')), {}, { ok: user => { resolve(user); }, @@ -397,7 +397,7 @@ export async function selectUser() { export async function selectDriveFile(multiple: boolean) { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/drive-select-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDriveSelectDialog.vue')), { type: 'file', multiple, }, { @@ -412,7 +412,7 @@ export async function selectDriveFile(multiple: boolean) { export async function selectDriveFolder(multiple: boolean) { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/drive-select-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkDriveSelectDialog.vue')), { type: 'folder', multiple, }, { @@ -427,7 +427,7 @@ export async function selectDriveFolder(multiple: boolean) { export async function pickEmoji(src: HTMLElement | null, opts) { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/emoji-picker-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerDialog.vue')), { src, ...opts, }, { @@ -442,7 +442,7 @@ export async function cropImage(image: Misskey.entities.DriveFile, options: { aspectRatio: number; }): Promise { return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/cropper-dialog.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkCropperDialog.vue')), { file: image, aspectRatio: options.aspectRatio, }, { @@ -492,7 +492,7 @@ export async function openEmojiPicker(src?: HTMLElement, opts, initialTextarea: characterData: false, }); - openingEmojiPicker = await popup(defineAsyncComponent(() => import('@/components/emoji-picker-window.vue')), { + openingEmojiPicker = await popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerWindow.vue')), { src, ...opts, }, { @@ -514,7 +514,7 @@ export function popupMenu(items: MenuItem[] | Ref, src?: HTMLElement }) { return new Promise((resolve, reject) => { let dispose; - popup(defineAsyncComponent(() => import('@/components/ui/popup-menu.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkPopupMenu.vue')), { items, src, width: options?.width, @@ -535,7 +535,7 @@ export function contextMenu(items: MenuItem[] | Ref, ev: MouseEvent) ev.preventDefault(); return new Promise((resolve, reject) => { let dispose; - popup(defineAsyncComponent(() => import('@/components/ui/context-menu.vue')), { + popup(defineAsyncComponent(() => import('@/components/MkContextMenu.vue')), { items, ev, }, { diff --git a/packages/client/src/pages/_error_.vue b/packages/client/src/pages/_error_.vue index 6ac1f4297..a90a023cb 100644 --- a/packages/client/src/pages/_error_.vue +++ b/packages/client/src/pages/_error_.vue @@ -20,7 +20,7 @@ diff --git a/packages/client/src/pages/about.federation.vue b/packages/client/src/pages/about.federation.vue index 8d9390872..c501a7758 100644 --- a/packages/client/src/pages/about.federation.vue +++ b/packages/client/src/pages/about.federation.vue @@ -48,11 +48,11 @@ diff --git a/packages/client/src/pages/gallery/edit.vue b/packages/client/src/pages/gallery/edit.vue index 2e0e5063e..8f716d9eb 100644 --- a/packages/client/src/pages/gallery/edit.vue +++ b/packages/client/src/pages/gallery/edit.vue @@ -32,7 +32,7 @@