Merge branch 'develop' into firefish-docs/develop

This commit is contained in:
naskya 2024-03-07 04:09:38 +09:00
commit 9ddc5096b3
No known key found for this signature in database
GPG key ID: 712D413B3A9FED5C
61 changed files with 369 additions and 271 deletions

View file

@ -2,7 +2,6 @@
"recommendations": [ "recommendations": [
"editorconfig.editorconfig", "editorconfig.editorconfig",
"vue.volar", "vue.volar",
"vue.vscode-typescript-vue-plugin",
"arcanis.vscode-zipfs", "arcanis.vscode-zipfs",
"orta.vscode-twoslash-queries", "orta.vscode-twoslash-queries",
"antfu.iconify", "antfu.iconify",

View file

@ -60,7 +60,7 @@ For install production environment details, read [this document](https://firefis
## Dependencies ## Dependencies
- At least [NodeJS](https://nodejs.org/en/) v18.16.0 (v20/v21 recommended) - At least [NodeJS](https://nodejs.org/en/) v18.17.0 (v20/v21 recommended)
- At least [PostgreSQL](https://www.postgresql.org/) v12 (v16 recommended) with [PGroonga](https://pgroonga.github.io/) extension - At least [PostgreSQL](https://www.postgresql.org/) v12 (v16 recommended) with [PGroonga](https://pgroonga.github.io/) extension
- At least [Redis](https://redis.io/) v7 - At least [Redis](https://redis.io/) v7
- Web Proxy (one of the following) - Web Proxy (one of the following)

View file

@ -0,0 +1,10 @@
# Firefish's ActivityPub extensions
These are the extensions to ActivityPub that Firefish implements. This page uses [compact IRIs](https://www.w3.org/TR/json-ld/#dfn-compact-iri). The `firefish` prefix is used to refer to `https://firefish.dev/ns#`.
## speakAsCat
- Compact IRI: `firefish:speakAsCat`
- Canonical IRI: `https://firefish.dev/ns#speakascat`
Used on actors to indicate that they not only identify as a cat, but also want to have their text be transformed to speak like one, expressed as a boolean value. If this property is set to true, displaying the actors posts will make them speak with “nya” instead of “na” and other cat-related text mannerisms. Used in combination with [misskey:isCat](https://misskey-hub.net/ns/#iscat).

View file

@ -8,6 +8,10 @@ Critical security updates are indicated by the :warning: icon.
- Refactoring - Refactoring
- Show unlisted posts from following users in antennas (similar to [Fedibird](https://github.com/fedibird/mastodon/tree/fedibird) and [kmyblue](https://github.com/kmycode/mastodon), unlisted posts from people you don't follow won't be shown) - Show unlisted posts from following users in antennas (similar to [Fedibird](https://github.com/fedibird/mastodon/tree/fedibird) and [kmyblue](https://github.com/kmycode/mastodon), unlisted posts from people you don't follow won't be shown)
- Add ability to publish the Local and Global timelines on `/timeline` page - Add ability to publish the Local and Global timelines on `/timeline` page
- Add langage annotation to post contents (!10687)
- Add a toggleable setting to show a warning when you attempt to post files without alt text
- Fix bugs
- Update documents
## v20240301 ## v20240301

View file

@ -4,6 +4,9 @@ The full-text search engine used in Firefish has been changed to [PGroonga](http
## For systemd/pm2 users ## For systemd/pm2 users
- Required Node.js version has been bumped from v18.16.0 to v18.17.0.
- You need to install PGroonga on your system. Please follow the instructions below.
### 1. Install PGroonga ### 1. Install PGroonga
Please execute `psql --version` to check your PostgreSQL major version. This will print a message like this: Please execute `psql --version` to check your PostgreSQL major version. This will print a message like this:

View file

@ -14,8 +14,8 @@ unpin: Откачане от профила
copyLink: Копиране на връзката copyLink: Копиране на връзката
pin: Закачане в профила pin: Закачане в профила
deleted: Изтрито deleted: Изтрито
deleteAndEditConfirm: Сигурен ли си, че искаш да изтриеш тази публикация и да я редактираш? deleteAndEditConfirm: Сигурни ли сте, че искате да изтриете тази публикация и да я
Ще загубиш всички реакции, подсилвания и отговори към нея. редактирате? Ще загубите всички реакции, подсилвания и отговори към нея.
copyUsername: Копиране на потребителското име copyUsername: Копиране на потребителското име
searchUser: Търсене на потребител searchUser: Търсене на потребител
reply: Отговор reply: Отговор
@ -549,8 +549,8 @@ _sfx:
antenna: Антени antenna: Антени
note: Нова публикация note: Нова публикация
_permissions: _permissions:
"read:favorites": Виж списъка си с отметки "read:favorites": Преглед на списъка ви с отметки
"write:favorites": Редактирай списъка си с отметки "write:favorites": Редактиране на списъка ви с отметки
_visibility: _visibility:
followers: Последователи followers: Последователи
specified: Директна specified: Директна
@ -595,18 +595,18 @@ _tutorial:
step5_1: Инфопотоци, инфопотоци навсякъде! step5_1: Инфопотоци, инфопотоци навсякъде!
step3_1: Сега е време да последвате няколко хора! step3_1: Сега е време да последвате няколко хора!
step1_2: Нека да ви настроим. Ще бъдете готови за нула време! step1_2: Нека да ви настроим. Ще бъдете готови за нула време!
step5_3: Началният {icon} инфопоток е мястото, където можеш да видиш публикации step5_3: Началният {icon} инфопоток е мястото, където можете да видите публикации
от акаунтите, които следваш. от акаунтите, които следвате.
step6_1: И така, какво е това място? step6_1: И така, какво е това място?
step5_7: Глобалният {icon} инфопоток е мястото, където можете да видиш публикации step5_7: Глобалният {icon} инфопоток е мястото, където можете да видите публикации
от всеки друг свързан сървър. от всеки друг свързан сървър.
step4_2: За първата си публикация някои хора обичат да правят публикация {introduction} step4_2: За първата си публикация някои хора обичат да правят публикация {introduction}
или просто „Здравей свят!“ или просто „Здравей свят!“
step5_2: Вашият сървър има активирани {timelines} различни инфопотоци. step5_2: Вашият сървър има активирани {timelines} различни инфопотоци.
step5_4: Местният {icon} инфопоток е мястото, където можеш да видиш публикации от step5_4: Местният {icon} инфопоток е мястото, където можете да видите публикации
всички останали на този сървър. от всички останали на този сървър.
step5_5: Социалният {icon} инфопоток е комбинация от Началния и Местния инфопоток. step5_5: Социалният {icon} инфопоток е комбинация от Началния и Местния инфопоток.
step5_6: Препоръчаният {icon} инфопоток е мястото, където можеш да видиш публикации step5_6: Препоръчаният {icon} инфопоток е мястото, където можете да видите публикации
от сървъри, препоръчани от администраторите. от сървъри, препоръчани от администраторите.
step6_4: Сега отидете, изследвайте и се забавлявайте! step6_4: Сега отидете, изследвайте и се забавлявайте!
step6_3: Всеки сървър работи по различни начини и не всички сървъри работят с Firefish. step6_3: Всеки сървър работи по различни начини и не всички сървъри работят с Firefish.
@ -663,7 +663,7 @@ operations: Операции
mutedUsers: Заглушени потребители mutedUsers: Заглушени потребители
imageUrl: URL адрес на изображение imageUrl: URL адрес на изображение
announcements: Оповестявания announcements: Оповестявания
removeAreYouSure: Сигурен ли си, че искаш да премахнеш "{x}"? removeAreYouSure: Сигурни ли сте, че искате да премахнете "{x}"?
fromUrl: От URL адрес fromUrl: От URL адрес
manageGroups: Управление на групи manageGroups: Управление на групи
nUsersRead: прочетено от {n} nUsersRead: прочетено от {n}
@ -758,7 +758,7 @@ reload: Опресняване
invites: Покани invites: Покани
blockedInstances: Блокирани сървъри blockedInstances: Блокирани сървъри
inMb: В мегабайти inMb: В мегабайти
unfollowConfirm: Сигурен ли си, че искаш да спреш да следваш {name}? unfollowConfirm: Сигурни ли сте, че искате да прекратите следването на {name}?
somethingHappened: Възникна грешка somethingHappened: Възникна грешка
pageLoadError: Възникна грешка при зареждането на страницата. pageLoadError: Възникна грешка при зареждането на страницата.
enterListName: Въведи име за списъка enterListName: Въведи име за списъка
@ -768,9 +768,9 @@ selectChannel: Избор на канал
all: Всичко all: Всичко
muteAndBlock: Заглушени и блокирани muteAndBlock: Заглушени и блокирани
blockedUsers: Блокирани потребители blockedUsers: Блокирани потребители
noteDeleteConfirm: Сигурен ли си, че искаш да изтриеш тази публикация? noteDeleteConfirm: Сигурни ли сте, че искате да изтриете тази публикация?
hiddenTags: Скрити хаштагове hiddenTags: Скрити хаштагове
deleteAreYouSure: Сигурен ли си, че искаш да изтриеш "{x}"? deleteAreYouSure: Сигурни ли сте, че искате да изтриете "{x}"?
startMessaging: Започване на нов чат startMessaging: Започване на нов чат
uploadFromUrl: Качване от URL адрес uploadFromUrl: Качване от URL адрес
instanceName: Име на сървъра instanceName: Име на сървъра
@ -778,7 +778,6 @@ instanceDescription: Описание на сървъра
accept: Приемане accept: Приемане
enableLocalTimeline: Включване на местния инфопоток enableLocalTimeline: Включване на местния инфопоток
enableGlobalTimeline: Включване на глобалния инфопоток enableGlobalTimeline: Включване на глобалния инфопоток
findOtherInstance: Намиране на друг сървър
removeMember: Премахване на член removeMember: Премахване на член
isAdmin: Администратор isAdmin: Администратор
isModerator: Модератор isModerator: Модератор
@ -858,3 +857,13 @@ apply: Прилагане
selectAccount: Избор на акаунт selectAccount: Избор на акаунт
muteThread: Заглушаване на нишката muteThread: Заглушаване на нишката
ffVisibility: Видимост на Последвани/Последователи ffVisibility: Видимост на Последвани/Последователи
renoteMute: Заглушаване на подсилванията в инфопотоците
replyMute: Заглушаване на отговорите в инфопотоците
blockConfirm: Сигурни ли сте, че искате да блокирате този акаунт?
appearance: Облик
fontSize: Размер на шрифта
describeFile: Добавяне на описание
unblockConfirm: Сигурни ли сте, че искате да отблокирате този акаунт?
followConfirm: Сигурни ли сте, че искате да последвате {name}?
accountMoved: 'Потребителят се премести на нов акаунт:'
inputNewDescription: Въведете ново описание

View file

@ -15,10 +15,10 @@ ok: "ঠিক"
gotIt: "বুঝেছি" gotIt: "বুঝেছি"
cancel: "বাতিল" cancel: "বাতিল"
enterUsername: "ইউজারনেম লিখুন" enterUsername: "ইউজারনেম লিখুন"
renotedBy: "{user} রিনোট করেছেন" renotedBy: "{user} দ্বারা বুস্ট করা হয়েছে"
noNotes: "কোন নোট নেই" noNotes: "No posts"
noNotifications: "কোনো বিজ্ঞপ্তি নেই" noNotifications: "কোনো বিজ্ঞপ্তি নেই"
instance: "ইন্সট্যান্স" instance: "সার্ভার"
settings: "সেটিংস" settings: "সেটিংস"
basicSettings: "সাধারণ সেটিংস" basicSettings: "সাধারণ সেটিংস"
otherSettings: "অন্যান্য সেটিংস" otherSettings: "অন্যান্য সেটিংস"
@ -46,8 +46,8 @@ copyContent: "বিষয়বস্তু কপি করুন"
copyLink: "লিঙ্ক কপি করুন" copyLink: "লিঙ্ক কপি করুন"
delete: "মুছুন" delete: "মুছুন"
deleteAndEdit: "মুছুন এবং সম্পাদনা করুন" deleteAndEdit: "মুছুন এবং সম্পাদনা করুন"
deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি deleteAndEditConfirm: "আপনি কি এই পোস্টটি মুছে ফেলার এবং এটি সম্পাদনা করার বিষয়ে
এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।" নিশ্চিত? আপনি এটির সমস্ত প্রতিক্রিয়া, বুস্ট এবং উত্তর হারাবেন।"
addToList: "লিস্ট এ যোগ করুন" addToList: "লিস্ট এ যোগ করুন"
sendMessage: "একটি বার্তা পাঠান" sendMessage: "একটি বার্তা পাঠান"
copyUsername: "ব্যবহারকারীর নাম কপি করুন" copyUsername: "ব্যবহারকারীর নাম কপি করুন"
@ -61,18 +61,18 @@ receiveFollowRequest: "অনুসরণ করার জন্য অনুর
followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে" followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
mention: "উল্লেখ" mention: "উল্লেখ"
mentions: "উল্লেখসমূহ" mentions: "উল্লেখসমূহ"
directNotes: "ডাইরেক্ট নোটগুলি" directNotes: "প্রত্যক্ষ বার্তা"
importAndExport: "আমদানি এবং রপ্তানি" importAndExport: "ডেটা ইমপোর্ট/এক্সপোর্ট"
import: "আমদানি করুণ" import: "ইমপোর্ট করুণ"
export: "রপ্তানি" export: "এক্সপোর্ট করুন"
files: "ফাইলগুলি" files: "ফাইলগুলি"
download: "ডাউনলোড" download: "ডাউনলোড"
driveFileDeleteConfirm: "আপনি কি নিশ্চিত যে আপনি \"{name}\" ডিলিট করতে চান? যে সকল driveFileDeleteConfirm: "আপনি কি নিশ্চিত যে আপনি \"{name}\" ডিলিট করতে চান? যে সকল
নোটের সাথে এই ফাইলটি সংযুক্ত সেগুলোও ডিলিট করা হবে।" পোস্ট এর সাথে এই ফাইলটি সংযুক্ত সেগুলোও ডিলিট করা হবে।"
unfollowConfirm: "{name} কে আনফলোও করার ব্যাপারে নিশ্চিত?" unfollowConfirm: "{name} কে আনফলোও করার ব্যাপারে নিশ্চিত?"
exportRequested: "আপনার তথ্যসমূহ রপ্তানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। exportRequested: "আপনার তথ্যসমূহ এক্সপোর্ট জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে
রপ্তানি সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।" পারে। এক্সপোর্ট সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।"
importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। " importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে।"
lists: "লিস্ট" lists: "লিস্ট"
noLists: "কোন লিস্ট নেই" noLists: "কোন লিস্ট নেই"
note: "নোট" note: "নোট"
@ -87,7 +87,7 @@ somethingHappened: "একটি ত্রুটি হয়েছে"
retry: "আবার চেষ্টা করুন" retry: "আবার চেষ্টা করুন"
pageLoadError: "পেজ লোড করা যায়নি" pageLoadError: "পেজ লোড করা যায়নি"
pageLoadErrorDescription: "এটি সাধারনত নেটওয়ার্কের সমস্যার বা ব্রাউজার ক্যাশের কারণে pageLoadErrorDescription: "এটি সাধারনত নেটওয়ার্কের সমস্যার বা ব্রাউজার ক্যাশের কারণে
ঘটে থাকে। ব্রাউজার এর ক্যাশ পরিষ্কার করুন এবং একটু পর আবার চেষ্টা করুন। " ঘটে থাকে। ব্রাউজার এর ক্যাশ পরিষ্কার করুন এবং একটু পর আবার চেষ্টা করুন।"
serverIsDead: "এই সার্ভার বর্তমানে সাড়া দিচ্ছে না। একটু পরে আবার চেষ্টা করুন।" serverIsDead: "এই সার্ভার বর্তমানে সাড়া দিচ্ছে না। একটু পরে আবার চেষ্টা করুন।"
youShouldUpgradeClient: "এই পেজ দেখার জন্য আপনার ব্রাউজার রিফ্রেশ করে ক্লায়েন্ট আপডেট youShouldUpgradeClient: "এই পেজ দেখার জন্য আপনার ব্রাউজার রিফ্রেশ করে ক্লায়েন্ট আপডেট
করুন। " করুন। "
@ -102,13 +102,13 @@ unfollow: "অনুসরণ বাতিল"
followRequestPending: "অনুসরণ করার অনুরোধ বিচারাধীন" followRequestPending: "অনুসরণ করার অনুরোধ বিচারাধীন"
enterEmoji: "ইমোজি প্রবেশ করান" enterEmoji: "ইমোজি প্রবেশ করান"
renote: "রিনোট" renote: "রিনোট"
unrenote: "রিনোট সরান " unrenote: "বুস্ট ফিরিয়ে নিন"
renoted: "রিনোট করা হয়েছে" renoted: "বুস্ট করা হয়েছে।"
cantRenote: "এই নোটটি রিনোট করা যাবে না।" cantRenote: "এই পোস্টটি বুস্ট করা যাবে না।"
cantReRenote: "রিনোটকে রিনোট করা যাবে না।" cantReRenote: "বুস্টকে বুস্ট করা যাবে না।"
quote: "উদ্ধৃতি" quote: "উক্তি"
pinnedNote: "পিন করা নোট" pinnedNote: "পিন করা পোস্ট"
pinned: "পিন করা" pinned: "প্রোফাইলে পিন করুন"
you: "আপনি" you: "আপনি"
clickToShow: "দেখার জন্য ক্লিক করুন" clickToShow: "দেখার জন্য ক্লিক করুন"
sensitive: "সংবেদনশীল বিষয়বস্তু" sensitive: "সংবেদনশীল বিষয়বস্তু"
@ -1761,3 +1761,14 @@ _deck:
list: "লিস্ট" list: "লিস্ট"
mentions: "উল্লেখসমূহ" mentions: "উল্লেখসমূহ"
direct: "ডাইরেক্ট নোটগুলি" direct: "ডাইরেক্ট নোটগুলি"
removeReaction: আপনার প্রতিক্রিয়া সরান
addInstance: একটি সার্ভার যোগ করুন
deleted: মুছে ফেলা হয়েছে
editNote: পোস্ট এডিট করুন
edited: '{date} {time} এ সম্পাদিত'
searchPlaceholder: ফায়ারফিশে খুঁজুন
noThankYou: না, ধন্যবাদ
cw: সতর্কবার্তা
replies: উত্তর
quotes: উক্তি গুলো
reactions: প্রতিক্রিয়াগুলি

View file

@ -2031,6 +2031,7 @@ _wordMute:
de temps. de temps.
muteLangs: Llenguatges silenciats muteLangs: Llenguatges silenciats
muteLangsDescription: Separar amb espais o línies no es per una condició OR. muteLangsDescription: Separar amb espais o línies no es per una condició OR.
mutePatterns: Patrons per silenciar
_auth: _auth:
shareAccessAsk: Estàs segur que vols autoritzar aquesta aplicació per accedir al shareAccessAsk: Estàs segur que vols autoritzar aquesta aplicació per accedir al
teu compte? teu compte?
@ -2066,7 +2067,6 @@ _relayStatus:
deleted: Eliminat deleted: Eliminat
editNote: Edita la publicació editNote: Edita la publicació
edited: 'Editat el {date} {time}' edited: 'Editat el {date} {time}'
findOtherInstance: Cercar un altre servidor
signupsDisabled: Actualment, les inscripcions en aquest servidor estan desactivades, signupsDisabled: Actualment, les inscripcions en aquest servidor estan desactivades,
però sempre podeu registrar-vos en un altre servidor. Si teniu un codi d'invitació però sempre podeu registrar-vos en un altre servidor. Si teniu un codi d'invitació
per a aquest servidor, introduïu-lo a continuació. per a aquest servidor, introduïu-lo a continuació.
@ -2244,3 +2244,16 @@ noSentFollowRequests: No tens cap sol·licitud de seguiment enviada
sentFollowRequests: Enviar sol·licituds de seguiment sentFollowRequests: Enviar sol·licituds de seguiment
replyMute: Silencia les respostes a les línies de temps replyMute: Silencia les respostes a les línies de temps
replyUnmute: Treu el silencia de les respostes a les línies de temps replyUnmute: Treu el silencia de les respostes a les línies de temps
searchWordsDescription: "Per cercar publicacions, escriu el terme a buscar. Separa
les paraules amb espais per fer condicions AND o escriules dins de cometes per fer
una cerca OR.\nPer exemple, 'dia nit' trobarà publicacions que continguin tan 'dia'
com 'nit', i 'dia OR nit' trobaran publicacions que continguin tan 'dia' com 'nit'
o ambdues.\nPots combinar condicions AND/OR per exemple '(dia OR nit) endormiscar'.\n
\nSi vols anar a una pàgina d'usuari o publicació en concret, escriu la adreça URL
o la ID en aquest camp i fes clic al botó 'Trobar'. Fent clic a 'Cercar' trobarà
publicacions que, literalment , continguin la ID/adreça URL."
searchPostsWithFiles: Només publicacions amb fitxers
searchCwAndAlt: Inclou avisos de contingut i arxius amb descripcions.
searchUsers: Publicat per (opcional)
searchRange: Publicat dintre de (opcional)
publishTimelines: Publica línies de temps per visitants

View file

@ -2024,7 +2024,6 @@ moveAccountDescription: 'Dieser Vorgang kann nicht rückgängig gemacht werden!
sie vor dem Umzug dieses Nutzerkontos sicher, dass Sie einen Namen für Ihr neues sie vor dem Umzug dieses Nutzerkontos sicher, dass Sie einen Namen für Ihr neues
Nutzerkonto eingerichtet haben. Bitte geben sie die Bezeichnung des neuen Nutzerkontos Nutzerkonto eingerichtet haben. Bitte geben sie die Bezeichnung des neuen Nutzerkontos
wie folgt ein: @name@server.xyz' wie folgt ein: @name@server.xyz'
findOtherInstance: Einen anderen Server finden
sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden
Benachrichtigungen oder Nachrichten gelesen wurden Benachrichtigungen oder Nachrichten gelesen wurden
signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen

View file

@ -59,6 +59,7 @@ copyUsername: "Copy username"
searchUser: "Search for a user" searchUser: "Search for a user"
reply: "Reply" reply: "Reply"
replies: "Replies" replies: "Replies"
toReply: "Reply"
jumpToPrevious: "Jump to previous" jumpToPrevious: "Jump to previous"
loadMore: "Load more" loadMore: "Load more"
showMore: "Show more" showMore: "Show more"
@ -89,6 +90,7 @@ listsDesc: "Lists let you create timelines with specified users. They can be acc
noLists: "You don't have any lists" noLists: "You don't have any lists"
note: "Post" note: "Post"
notes: "Posts" notes: "Posts"
toPost: "Post"
following: "Following" following: "Following"
followers: "Followers" followers: "Followers"
followsYou: "Follows you" followsYou: "Follows you"
@ -121,6 +123,7 @@ cantRenote: "This post can't be boosted."
cantReRenote: "A boost can't be boosted." cantReRenote: "A boost can't be boosted."
quote: "Quote" quote: "Quote"
quotes: "Quotes" quotes: "Quotes"
toQuote: "Quote"
pinnedNote: "Pinned post" pinnedNote: "Pinned post"
pinned: "Pin to profile" pinned: "Pin to profile"
you: "You" you: "You"
@ -671,6 +674,7 @@ pluginTokenRequestedDescription: "This plugin will be able to use the permission
set here." set here."
notificationType: "Notification type" notificationType: "Notification type"
edit: "Edit" edit: "Edit"
toEdit: "Edit"
emailServer: "Email server" emailServer: "Email server"
enableEmail: "Enable email distribution" enableEmail: "Enable email distribution"
emailConfigInfo: "Used to confirm your email during sign-up or if you forget your emailConfigInfo: "Used to confirm your email during sign-up or if you forget your
@ -1104,10 +1108,8 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea
advanced syntax, such as conditional branching, cannot be used here." advanced syntax, such as conditional branching, cannot be used here."
enableCustomKaTeXMacro: "Enable custom KaTeX macros" enableCustomKaTeXMacro: "Enable custom KaTeX macros"
noteId: "Post ID" noteId: "Post ID"
signupsDisabled: "Signups on this server are currently disabled, but you can always signupsDisabled: "Signups on this server are currently disabled. If you have an invitation
sign up at another server! If you have an invitation code for this server, please code for this server, please enter it below."
enter it below."
findOtherInstance: "Find another server"
apps: "Apps" apps: "Apps"
sendModMail: "Send Moderation Notice" sendModMail: "Send Moderation Notice"
preventAiLearning: "Prevent AI bot scraping" preventAiLearning: "Prevent AI bot scraping"
@ -1214,6 +1216,8 @@ searchCwAndAlt: "Include content warnings and file descriptions"
publishTimelines: "Publish timelines for visitors" publishTimelines: "Publish timelines for visitors"
publishTimelinesDescription: "If enabled, the Local and Global timeline will be shown publishTimelinesDescription: "If enabled, the Local and Global timeline will be shown
on {url} even when signed out." on {url} even when signed out."
noAltTextWarning: "Some attached file(s) have no description. Did you forget to write?"
showNoAltTextWarning: "Show a warning if you attempt to post files without a description"
_emojiModPerm: _emojiModPerm:
unauthorized: "None" unauthorized: "None"
@ -2216,3 +2220,4 @@ _iconSets:
moreUrls: "Pinned pages" moreUrls: "Pinned pages"
moreUrlsDescription: "Enter the pages you want to pin to the help menu in the lower moreUrlsDescription: "Enter the pages you want to pin to the help menu in the lower
left corner using this notation:\n\"Display name\": https://example.com/" left corner using this notation:\n\"Display name\": https://example.com/"
messagingUnencryptedInfo: "Chats on Firefish are not end-to-end encrypted. Don't share any sensitive infomation over Firefish."

View file

@ -1985,7 +1985,6 @@ deleted: Eliminado
edited: 'Editado a las {date} {time}' edited: 'Editado a las {date} {time}'
editNote: Editar publicación editNote: Editar publicación
silenceThisInstance: Silenciar este servidor silenceThisInstance: Silenciar este servidor
findOtherInstance: Buscar otro servidor
userSaysSomethingReasonRenote: '{name} impulsó una publicación que contiene {reason]' userSaysSomethingReasonRenote: '{name} impulsó una publicación que contiene {reason]'
enableRecommendedTimeline: Habilitar línea de tiempo "Recomendado" enableRecommendedTimeline: Habilitar línea de tiempo "Recomendado"
searchPlaceholder: Buscar en Firefish searchPlaceholder: Buscar en Firefish

View file

@ -2090,7 +2090,6 @@ _experiments:
de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela
peut entraîner des ralentissements lors du chargement si votre file d'attente peut entraîner des ralentissements lors du chargement si votre file d'attente
est congestionnée. est congestionnée.
findOtherInstance: Trouver un autre serveur
userSaysSomethingReasonQuote: '{name} a cité une publication contenant {reason}' userSaysSomethingReasonQuote: '{name} a cité une publication contenant {reason}'
signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais
vous pouvez toujours vous inscrire sur un autre serveur ! Si vous avez un code d'invitation vous pouvez toujours vous inscrire sur un autre serveur ! Si vous avez un code d'invitation

View file

@ -2007,7 +2007,6 @@ enterSendsMessage: Tekan Enter pada Pesan untuk mengirim pesan (matikan dengan C
+ Enter) + Enter)
showAdminUpdates: Indikasi versi Firefish baru tersedia (hanya admin) showAdminUpdates: Indikasi versi Firefish baru tersedia (hanya admin)
noteId: ID Postingan noteId: ID Postingan
findOtherInstance: Cari server lain
caption: Deskripsi itomatis caption: Deskripsi itomatis
splash: Layar Percik splash: Layar Percik
migration: Migrasi migration: Migrasi

View file

@ -1839,7 +1839,6 @@ customKaTeXMacro: Macro KaTeX personalizzate
signupsDisabled: Le iscrizioni su questo server al momento non sono possibili, ma signupsDisabled: Le iscrizioni su questo server al momento non sono possibili, ma
puoi sempre iscriverti su un altro server! Se invece hai un codice di invito per puoi sempre iscriverti su un altro server! Se invece hai un codice di invito per
questo server, inseriscilo qua sotto. questo server, inseriscilo qua sotto.
findOtherInstance: Scegli un altro server
apps: App apps: App
expandOnNoteClick: Apri i post con un click expandOnNoteClick: Apri i post con un click
userSaysSomethingReasonReply: '{name} ha risposto a un post che contiene {reason}' userSaysSomethingReasonReply: '{name} ha risposto a un post che contiene {reason}'

View file

@ -53,6 +53,7 @@ copyUsername: "ユーザー名をコピー"
searchUser: "ユーザーを検索" searchUser: "ユーザーを検索"
reply: "返信" reply: "返信"
replies: "返信" replies: "返信"
toReply: "返信"
loadMore: "もっと読み込む" loadMore: "もっと読み込む"
showMore: "もっと見る" showMore: "もっと見る"
showLess: "閉じる" showLess: "閉じる"
@ -75,6 +76,7 @@ lists: "リスト"
noLists: "リストはありません" noLists: "リストはありません"
note: "投稿" note: "投稿"
notes: "投稿" notes: "投稿"
toPost: "投稿する"
following: "フォロー" following: "フォロー"
followers: "フォロワー" followers: "フォロワー"
followsYou: "フォローされています" followsYou: "フォローされています"
@ -105,6 +107,7 @@ cantRenote: "この投稿はブーストできません。"
cantReRenote: "ブーストをブーストすることはできません。" cantReRenote: "ブーストをブーストすることはできません。"
quote: "引用" quote: "引用"
quotes: "引用" quotes: "引用"
toQuote: "引用"
pinnedNote: "ピン留めされた投稿" pinnedNote: "ピン留めされた投稿"
pinned: "ピン留め" pinned: "ピン留め"
you: "あなた" you: "あなた"
@ -606,6 +609,7 @@ tokenRequested: "アカウントへのアクセス許可"
pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。" pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。"
notificationType: "通知の種類" notificationType: "通知の種類"
edit: "編集" edit: "編集"
toEdit: "編集する"
emailServer: "メールサーバー" emailServer: "メールサーバー"
enableEmail: "メール配信機能を有効化する" enableEmail: "メール配信機能を有効化する"
emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います" emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います"
@ -1018,6 +1022,8 @@ searchPostsWithFiles: "添付ファイルのある投稿のみ"
searchCwAndAlt: "閲覧注意の注釈と添付ファイルの代替テキストも検索する" searchCwAndAlt: "閲覧注意の注釈と添付ファイルの代替テキストも検索する"
publishTimelines: "非ログインユーザーにもタイムラインを公開する" publishTimelines: "非ログインユーザーにもタイムラインを公開する"
publishTimelinesDescription: "有効にすると、{url} でローカルタイムラインとグローバルタイムラインが公開されます。" publishTimelinesDescription: "有効にすると、{url} でローカルタイムラインとグローバルタイムラインが公開されます。"
noAltTextWarning: "説明が書かれていない添付ファイルがあります。書き忘れてはいませんか?"
showNoAltTextWarning: "説明が書かれていない添付ファイルを投稿しようとした場合に警告する"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てられます。サーバーの負荷が少し増えます。" description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てられます。サーバーの負荷が少し増えます。"
@ -1941,9 +1947,7 @@ sendModMail: モデレーション通知を送る
deleted: 削除済み deleted: 削除済み
editNote: 投稿を編集 editNote: 投稿を編集
edited: '編集済み: {date} {time}' edited: '編集済み: {date} {time}'
signupsDisabled: signupsDisabled: 現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。
現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。招待コードをお持ちでない場合にも、新規登録を開放している他のサーバーには入れますよ!
findOtherInstance: 他のサーバーを探す
newer: 新しい投稿 newer: 新しい投稿
older: 古い投稿 older: 古い投稿
accessibility: アクセシビリティ accessibility: アクセシビリティ

View file

@ -1824,7 +1824,6 @@ pushNotificationNotSupported: 브라우저 및 서버가 푸시 알림을 지원
enableRecommendedTimeline: 추천 타임라인을 활성화 enableRecommendedTimeline: 추천 타임라인을 활성화
pushNotificationAlreadySubscribed: 푸시 알림이 활성화되었습니다 pushNotificationAlreadySubscribed: 푸시 알림이 활성화되었습니다
caption: 자동으로 설명 붙이기 caption: 자동으로 설명 붙이기
findOtherInstance: 다른 서버 둘러보기
enableIdenticonGeneration: 유저 별 Identicon의 생성을 활성화 enableIdenticonGeneration: 유저 별 Identicon의 생성을 활성화
secureModeInfo: 인증 정보가 없는 리모트 서버로부터의 요청에 응답하지 않습니다. secureModeInfo: 인증 정보가 없는 리모트 서버로부터의 요청에 응답하지 않습니다.
allowedInstances: 허가된 서버 allowedInstances: 허가된 서버

View file

@ -1196,7 +1196,6 @@ customKaTeXMacroDescription: 'Sett opp makroer for å skrive matematiske uttrykk
signupsDisabled: Registreringer av nye konti på denne tjeneren er slått av, men du signupsDisabled: Registreringer av nye konti på denne tjeneren er slått av, men du
kan alltids registrere deg på en annen tjener! Hvis du har en invitasjonskode for kan alltids registrere deg på en annen tjener! Hvis du har en invitasjonskode for
denne tjeneren, skriv den inn under. denne tjeneren, skriv den inn under.
findOtherInstance: Finn en annen tjener
preventAiLearningDescription: Ber tredjeparts AI-språkmodeller om å ikke bruke innhold preventAiLearningDescription: Ber tredjeparts AI-språkmodeller om å ikke bruke innhold
du laster opp, sliks om poster og bilder. du laster opp, sliks om poster og bilder.
enableCustomKaTeXMacro: Slå på egne KaTeX-makroer enableCustomKaTeXMacro: Slå på egne KaTeX-makroer

View file

@ -1992,7 +1992,6 @@ deleted: Usunięte
editNote: Edytuj wpis editNote: Edytuj wpis
edited: 'Edytowano o {date} {time}' edited: 'Edytowano o {date} {time}'
silenced: Wyciszony silenced: Wyciszony
findOtherInstance: Znajdź inny serwer
userSaysSomethingReasonReply: '{name} odpowiedział na wpis zawierający {reason}' userSaysSomethingReasonReply: '{name} odpowiedział na wpis zawierający {reason}'
userSaysSomethingReasonRenote: '{name} podbił post zawierający {reason}' userSaysSomethingReasonRenote: '{name} podbił post zawierający {reason}'
signupsDisabled: Rejestracja na tym serwerze jest obecnie zamknięta, ale zawsze możesz signupsDisabled: Rejestracja na tym serwerze jest obecnie zamknięta, ale zawsze możesz

View file

@ -2086,7 +2086,6 @@ enableServerMachineStats: Включить статистику серверно
enableIdenticonGeneration: Включить генерацию Identicon enableIdenticonGeneration: Включить генерацию Identicon
reactionPickerSkinTone: Предпочитаемый цвет кожи эмодзи reactionPickerSkinTone: Предпочитаемый цвет кожи эмодзи
sendModMail: Отправить сообщение о модерации sendModMail: Отправить сообщение о модерации
findOtherInstance: Найти другой сервер
signupsDisabled: Регистрация на этом сервере сейчас отключена, но вы всегда можете signupsDisabled: Регистрация на этом сервере сейчас отключена, но вы всегда можете
зарегистрироваться на другом сервере! Если у вас есть код приглашения на этот сервер, зарегистрироваться на другом сервере! Если у вас есть код приглашения на этот сервер,
пожалуйста, введите его ниже. пожалуйста, введите его ниже.

View file

@ -1288,7 +1288,6 @@ customMOTD: ข้อความหน้าจอเริ่มต้นท
swipeOnMobile: อนุญาตให้ปัดระหว่างหน้า swipeOnMobile: อนุญาตให้ปัดระหว่างหน้า
breakFollowConfirm: คุณแน่ใจหรือไม่ที่จะลบผู้ติดตาม? breakFollowConfirm: คุณแน่ใจหรือไม่ที่จะลบผู้ติดตาม?
defaultReaction: ค่าเริ่มต้นของปฏิกิริยาอีโมจิสำหรับโพสต์ขาออกและขาเข้า defaultReaction: ค่าเริ่มต้นของปฏิกิริยาอีโมจิสำหรับโพสต์ขาออกและขาเข้า
findOtherInstance: ค้นหาเซิร์ฟเวอร์อื่น
silenceThisInstance: ปิดเงียบสำหรับเซิร์ฟเวอร์นี้ silenceThisInstance: ปิดเงียบสำหรับเซิร์ฟเวอร์นี้
antennaInstancesDescription: เขียนชื่อเซิร์ฟเวอร์ได้ 1 ชื่อต่อ 1 บรรทัด antennaInstancesDescription: เขียนชื่อเซิร์ฟเวอร์ได้ 1 ชื่อต่อ 1 บรรทัด
splash: หน้าจอเริ่มต้น splash: หน้าจอเริ่มต้น

View file

@ -1284,7 +1284,6 @@ _emailUnavailable:
used: Bu mail zaten kullanılıyor used: Bu mail zaten kullanılıyor
format: Bu mail adresi yanlış format: Bu mail adresi yanlış
apps: Uygulamalar apps: Uygulamalar
findOtherInstance: Başka bir sunucu bul
showWithSparkles: Parıltılarla göster showWithSparkles: Parıltılarla göster
showPopup: Kullanıcıları pop-up ile bilgilendirin showPopup: Kullanıcıları pop-up ile bilgilendirin
silencedWarning: Bu sayfa, bu kullanıcılar yöneticinizin susturduğu sunuculardan olduğu silencedWarning: Bu sayfa, bu kullanıcılar yöneticinizin susturduğu sunuculardan olduğu

View file

@ -1977,7 +1977,6 @@ license: Ліцензія
signupsDisabled: Реєстрація на цьому сервері наразі відключена, але ви завжди можете signupsDisabled: Реєстрація на цьому сервері наразі відключена, але ви завжди можете
зареєструватися на іншому сервері! Якщо у вас є код запрошення на цей сервер, будь зареєструватися на іншому сервері! Якщо у вас є код запрошення на цей сервер, будь
ласка, введіть його нижче. ласка, введіть його нижче.
findOtherInstance: Знайти інший сервер
customKaTeXMacro: Користувацькі макроси KaTeX customKaTeXMacro: Користувацькі макроси KaTeX
enableCustomKaTeXMacro: Увімкнути користувацькі макроси KaTeX enableCustomKaTeXMacro: Увімкнути користувацькі макроси KaTeX
apps: Додатки apps: Додатки

View file

@ -1908,7 +1908,6 @@ renoteMute: Ẩn lượt chia sẻ
renoteUnmute: Bỏ ẩn lượt chia sẻ renoteUnmute: Bỏ ẩn lượt chia sẻ
searchPlaceholder: Lướt Firefish searchPlaceholder: Lướt Firefish
edited: Đã sửa {date} {time} edited: Đã sửa {date} {time}
findOtherInstance: Tìm máy chủ khác
noThankYou: Từ chối noThankYou: Từ chối
_filters: _filters:
withFile: Có file withFile: Có file

View file

@ -50,6 +50,7 @@ copyUsername: "复制用户名"
searchUser: "搜索用户" searchUser: "搜索用户"
reply: "回复" reply: "回复"
replies: "回复" replies: "回复"
toReply: "回复"
loadMore: "加载更多" loadMore: "加载更多"
showMore: "查看更多" showMore: "查看更多"
showLess: "关闭" showLess: "关闭"
@ -70,8 +71,9 @@ exportRequested: "导出请求已提交,这可能需要花一些时间,导
importRequested: "导入请求已提交,这可能需要花一点时间。" importRequested: "导入请求已提交,这可能需要花一点时间。"
lists: "列表" lists: "列表"
noLists: "列表为空" noLists: "列表为空"
note: "帖" note: ""
notes: "帖子" notes: "帖子"
toPost: "发帖"
following: "关注中" following: "关注中"
followers: "关注者" followers: "关注者"
followsYou: "关注了您" followsYou: "关注了您"
@ -103,6 +105,7 @@ cantRenote: "此帖子无法被转发。"
cantReRenote: "转发无法被再次转发。" cantReRenote: "转发无法被再次转发。"
quote: "引用" quote: "引用"
quotes: "引用" quotes: "引用"
toQuote: "引用"
pinnedNote: "已置顶的帖子" pinnedNote: "已置顶的帖子"
pinned: "置顶" pinned: "置顶"
you: "您" you: "您"
@ -589,6 +592,7 @@ tokenRequested: "允许访问账号"
pluginTokenRequestedDescription: "此插件将能够拥有这里设置的权限。" pluginTokenRequestedDescription: "此插件将能够拥有这里设置的权限。"
notificationType: "通知类型" notificationType: "通知类型"
edit: "编辑" edit: "编辑"
toEdit: "编辑"
emailServer: "邮件服务器" emailServer: "邮件服务器"
enableEmail: "启用发送邮件功能" enableEmail: "启用发送邮件功能"
emailConfigInfo: "用于确认电子邮件和密码重置" emailConfigInfo: "用于确认电子邮件和密码重置"
@ -1912,10 +1916,9 @@ _skinTones:
mediumDark: 中等偏深 mediumDark: 中等偏深
isModerator: 监察员 isModerator: 监察员
isAdmin: 管理员 isAdmin: 管理员
findOtherInstance: 寻找其它服务器
moveFromDescription: 这将为您的旧账号设置一个别名,以便您可以从该旧账号迁移到当前账号。在从旧账号迁移之前执行此操作。请输入格式如 @person@server.com moveFromDescription: 这将为您的旧账号设置一个别名,以便您可以从该旧账号迁移到当前账号。在从旧账号迁移之前执行此操作。请输入格式如 @person@server.com
的账号标签 的账号标签
signupsDisabled: 该服务器目前关闭注册,但您随时可以在另一台服务器上注册!如果您有该服务器的邀请码,请在下面输入。 signupsDisabled: 该服务器目前关闭注册如果您有该服务器的邀请码,请在下面输入。
silencedWarning: 显示这个页面是因为这些用户来自您的管理员设置的禁言服务器,所以他们有可能是垃圾信息。 silencedWarning: 显示这个页面是因为这些用户来自您的管理员设置的禁言服务器,所以他们有可能是垃圾信息。
isBot: 这个账号是一个自动化账号 isBot: 这个账号是一个自动化账号
moveAccountDescription: 这个过程是不可逆的。在迁移之前,请确保您已在新账号上为当前账号设置了别名。请输入格式如 @person@server.com moveAccountDescription: 这个过程是不可逆的。在迁移之前,请确保您已在新账号上为当前账号设置了别名。请输入格式如 @person@server.com
@ -2030,7 +2033,7 @@ emojiModPermDescription: "添加:允许该用户添加新的自定义表情符
权限的基础上,允许该用户编辑现有自定义表情符号的名称/类别/标签/授权。\n全部允许在 “添加和编辑” 权限的基础上,允许该用户删除现有的自定义表情符号。" 权限的基础上,允许该用户编辑现有自定义表情符号的名称/类别/标签/授权。\n全部允许在 “添加和编辑” 权限的基础上,允许该用户删除现有的自定义表情符号。"
replyMute: 静音回复 replyMute: 静音回复
replyUnmute: 取消静音回复 replyUnmute: 取消静音回复
searchWords: 要搜索的词 / ID 或者要查找的 URL searchWords: 要搜索的关键词 / 要查询的用户 ID 或 URL
searchRange: 发表于(可选) searchRange: 发表于(可选)
searchUsers: 发布者(可选) searchUsers: 发布者(可选)
searchUsersDescription: "要搜索特定用户/服务器的帖子,请输入 ID@user@example.com或 @user 对于本地用户或域名example.com。\n searchUsersDescription: "要搜索特定用户/服务器的帖子,请输入 ID@user@example.com或 @user 对于本地用户或域名example.com。\n
@ -2039,10 +2042,11 @@ searchPostsWithFiles: 只带有文件的帖子
searchCwAndAlt: 包括内容警告和文件描述 searchCwAndAlt: 包括内容警告和文件描述
publishTimelines: 为访客发布时间线 publishTimelines: 为访客发布时间线
publishTimelinesDescription: 如果启用,在用户登出时本地和全局时间线也会显示在 {url} 上。 publishTimelinesDescription: 如果启用,在用户登出时本地和全局时间线也会显示在 {url} 上。
searchWordsDescription: "要搜索帖子,请输入搜索词。交集搜索用空格分隔单词,并集搜索单词之间用 OR 分隔。\n例如 '早上 晚上' 将查找包含 searchWordsDescription: "要搜索帖子,请输入关键词。交集搜索关键词之间使用空格进行区分,并集搜索关键词之间使用 OR 进行区分。\n例如 '早上
'早上' 和 '晚上' 的帖子,而 '早上 OR 晚上' 将查找包含 '早上' 或 '晚上' (以及同时包含两者)的帖子。\n您还可以组合交集/并集条件,例如 晚上' 将查找包含 '早上' 和 '晚上' 的帖子,而 '早上 OR 晚上' 将查找包含 '早上' 或 '晚上' (以及同时包含两者)的帖子。\n您还可以组合交集/并集条件,例如
'(早上 OR 晚上) 困了' 。\n\n如果您想转到特定的用户页面或帖子页面请在此字段中输入 ID 或 URL然后单击 “查找” 按钮。 单击 “搜索” '(早上 OR 晚上) 困了' 。\n\n如果您想转到特定的用户页面或帖子页面请在此字段中输入用户 ID 或 URL然后单击 “查询” 按钮。 单击 “搜索”
将搜索字面包含 ID/URL 的帖子。" 将搜索字面包含用户 ID/URL 的帖子。"
searchRangeDescription: "如果您要过滤时间段请按以下格式输入20220615-20231031\n\n如果您省略年份例如 0105-0106 searchRangeDescription: "如果您要过滤时间段请按以下格式输入20220615-20231031\n\n如果您省略年份例如 0105-0106
或 20231105-0110它将被解释为当前年份。\n\n您还可以省略开始日期或结束日期。 例如 -0102 将过滤搜索结果以仅显示今年 1 月 2 日之前发布的帖子,而 或 20231105-0110它将被解释为当前年份。\n\n您还可以省略开始日期或结束日期。 例如 -0102 将过滤搜索结果以仅显示今年 1 月 2 日之前发布的帖子,而
20231026- 将过滤结果以仅显示 2023 年 10 月 26 日之后发布的帖子。" 20231026- 将过滤结果以仅显示 2023 年 10 月 26 日之后发布的帖子。"
messagingUnencryptedInfo: "Firefish 上的聊天没有经过端到端加密,请不要在聊天中分享您的敏感信息。"

View file

@ -50,6 +50,7 @@ copyUsername: "複製使用者名稱"
searchUser: "搜尋使用者" searchUser: "搜尋使用者"
reply: "回覆" reply: "回覆"
replies: "回覆" replies: "回覆"
toReply: "回覆"
loadMore: "載入更多" loadMore: "載入更多"
showMore: "載入更多" showMore: "載入更多"
showLess: "關閉" showLess: "關閉"
@ -72,6 +73,7 @@ lists: "清單"
noLists: "你沒有任何清單" noLists: "你沒有任何清單"
note: "貼文" note: "貼文"
notes: "貼文" notes: "貼文"
toPost: "發貼文"
following: "追隨中" following: "追隨中"
followers: "追隨者" followers: "追隨者"
followsYou: "追隨你的人" followsYou: "追隨你的人"
@ -103,6 +105,7 @@ cantRenote: "無法轉發此貼文。"
cantReRenote: "無法轉發之前已經轉發過的內容。" cantReRenote: "無法轉發之前已經轉發過的內容。"
quote: "引用" quote: "引用"
quotes: "引用" quotes: "引用"
toQuote: "引用"
pinnedNote: "已置頂的貼文" pinnedNote: "已置頂的貼文"
pinned: "置頂" pinned: "置頂"
you: "您" you: "您"
@ -585,6 +588,7 @@ tokenRequested: "允許存取帳戶"
pluginTokenRequestedDescription: "此外掛將擁有在此設定的權限。" pluginTokenRequestedDescription: "此外掛將擁有在此設定的權限。"
notificationType: "通知形式" notificationType: "通知形式"
edit: "編輯" edit: "編輯"
toEdit: "編輯"
emailServer: "電郵伺服器" emailServer: "電郵伺服器"
enableEmail: "啟用發送電郵功能" enableEmail: "啟用發送電郵功能"
emailConfigInfo: "用於確認電郵地址及密碼重置" emailConfigInfo: "用於確認電郵地址及密碼重置"
@ -1870,7 +1874,6 @@ _experiments:
enablePostImports: 啟用匯入貼文的功能 enablePostImports: 啟用匯入貼文的功能
postImportsCaption: postImportsCaption:
允許使用者從舊有的Firefish・Misskey・Mastodon・Akkoma・Pleroma帳號匯入貼文。在伺服器佇列堵塞時匯入貼文可能會導致載入速度變慢。 允許使用者從舊有的Firefish・Misskey・Mastodon・Akkoma・Pleroma帳號匯入貼文。在伺服器佇列堵塞時匯入貼文可能會導致載入速度變慢。
findOtherInstance: 找找另一個伺服器
noGraze: 瀏覽器擴充元件 "Graze for Mastodon" 會與Firefish發生衝突請停用該擴充元件。 noGraze: 瀏覽器擴充元件 "Graze for Mastodon" 會與Firefish發生衝突請停用該擴充元件。
userSaysSomethingReasonRenote: '{name} 轉發了包含 {reason} 的貼文' userSaysSomethingReasonRenote: '{name} 轉發了包含 {reason} 的貼文'
pushNotificationNotSupported: 你的瀏覽器或伺服器不支援推送通知 pushNotificationNotSupported: 你的瀏覽器或伺服器不支援推送通知
@ -1928,7 +1931,7 @@ isModerator: 板主
isAdmin: 管理員 isAdmin: 管理員
isPatron: Firefish 項目贊助者 isPatron: Firefish 項目贊助者
silencedWarning: 顯示此頁面是因為這些使用者來自您伺服器管理員已靜音的伺服器,因此他們可能是垃圾訊息。 silencedWarning: 顯示此頁面是因為這些使用者來自您伺服器管理員已靜音的伺服器,因此他們可能是垃圾訊息。
signupsDisabled: 此伺服器目前停止註冊,但您隨時可以在另一台伺服器上註冊!如果您有此伺服器的邀請碼,請在下面輸入。 signupsDisabled: 此伺服器目前停止註冊如果您有此伺服器的邀請碼,請在下面輸入。
showPopup: 通過彈出式視窗通知使用者 showPopup: 通過彈出式視窗通知使用者
showWithSparkles: 讓標題閃閃發光 showWithSparkles: 讓標題閃閃發光
youHaveUnreadAnnouncements: 您有未讀的公告 youHaveUnreadAnnouncements: 您有未讀的公告

View file

@ -30,9 +30,9 @@ dependencies = [
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.8.10" version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"getrandom", "getrandom",
@ -182,9 +182,9 @@ dependencies = [
[[package]] [[package]]
name = "atomic-write-file" name = "atomic-write-file"
version = "0.1.2" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" checksum = "a8204db279bf648d64fe845bd8840f78b39c8132ed4d6a4194c3b10d4b4cfb0b"
dependencies = [ dependencies = [
"nix", "nix",
"rand", "rand",
@ -388,9 +388,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.88" version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
@ -406,9 +406,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.34" version = "0.4.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
@ -421,9 +421,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.1" version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
"clap_derive", "clap_derive",
@ -431,9 +431,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.1" version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [ dependencies = [
"anstream", "anstream",
"anstyle", "anstyle",
@ -900,7 +900,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [ dependencies = [
"ahash 0.8.10", "ahash 0.8.11",
"allocator-api2", "allocator-api2",
] ]
@ -963,9 +963,9 @@ dependencies = [
[[package]] [[package]]
name = "http" name = "http"
version = "0.2.11" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [ dependencies = [
"bytes", "bytes",
"fnv", "fnv",
@ -1105,9 +1105,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.68" version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
dependencies = [ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
@ -1118,7 +1118,7 @@ version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a071f4f7efc9a9118dfb627a0a94ef247986e1ab8606a4c806ae2b3aa3b6978" checksum = "2a071f4f7efc9a9118dfb627a0a94ef247986e1ab8606a4c806ae2b3aa3b6978"
dependencies = [ dependencies = [
"ahash 0.8.10", "ahash 0.8.11",
"anyhow", "anyhow",
"base64", "base64",
"bytecount", "bytecount",
@ -1168,12 +1168,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]] [[package]]
name = "libloading" name = "libloading"
version = "0.8.1" version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"windows-sys 0.48.0", "windows-targets 0.52.4",
] ]
[[package]] [[package]]
@ -1254,9 +1254,9 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.8.10" version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [ dependencies = [
"libc", "libc",
"wasi", "wasi",
@ -1323,12 +1323,13 @@ dependencies = [
[[package]] [[package]]
name = "nix" name = "nix"
version = "0.27.1" version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [ dependencies = [
"bitflags 2.4.2", "bitflags 2.4.2",
"cfg-if", "cfg-if",
"cfg_aliases",
"libc", "libc",
] ]
@ -1766,9 +1767,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-automata" name = "regex-automata"
version = "0.4.5" version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -2299,7 +2300,7 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
dependencies = [ dependencies = [
"ahash 0.8.10", "ahash 0.8.11",
"atoi", "atoi",
"bigdecimal", "bigdecimal",
"byteorder", "byteorder",
@ -2923,10 +2924,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasite"
version = "0.2.91" version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"wasm-bindgen-macro", "wasm-bindgen-macro",
@ -2934,9 +2941,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-backend" name = "wasm-bindgen-backend"
version = "0.2.91" version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"log", "log",
@ -2949,9 +2956,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.41" version = "0.4.42"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"js-sys", "js-sys",
@ -2961,9 +2968,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.91" version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
@ -2971,9 +2978,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.91" version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2984,15 +2991,15 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.91" version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.68" version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",
@ -3006,9 +3013,13 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
[[package]] [[package]]
name = "whoami" name = "whoami"
version = "1.4.1" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e"
dependencies = [
"redox_syscall",
"wasite",
]
[[package]] [[package]]
name = "windows-core" name = "windows-core"

View file

@ -28,8 +28,8 @@ thiserror = "1.0.52"
tokio = { version = "1.35.1", features = ["full"] } tokio = { version = "1.35.1", features = ["full"] }
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
napi = { version = "2.14.1", default-features = false, features = ["napi6", "tokio_rt"], optional = true } napi = { version = "2.16.0", default-features = false, features = ["napi9", "tokio_rt"], optional = true }
napi-derive = { version = "2.14.5", optional = true } napi-derive = { version = "2.16.0", optional = true }
basen = "0.1.0" basen = "0.1.0"
[dev-dependencies] [dev-dependencies]

View file

@ -14,11 +14,9 @@
"keepImportAssertions": true, "keepImportAssertions": true,
"emitAssertForImportAttributes": true "emitAssertForImportAttributes": true
}, },
"baseUrl": ".", "baseUrl": "src",
"paths": { "paths": {
"@/*": [ "@/*": ["*"]
"./src/*"
]
}, },
"target": "es2022" "target": "es2022"
}, },

View file

@ -31,14 +31,14 @@
"@koa/router": "12.0.1", "@koa/router": "12.0.1",
"@ladjs/koa-views": "9.0.0", "@ladjs/koa-views": "9.0.0",
"@peertube/http-signature": "1.7.0", "@peertube/http-signature": "1.7.0",
"@redocly/openapi-core": "1.10.1", "@redocly/openapi-core": "1.10.3",
"@sinonjs/fake-timers": "11.2.2", "@sinonjs/fake-timers": "11.2.2",
"@twemoji/parser": "^15.0.0", "@twemoji/parser": "^15.0.0",
"adm-zip": "^0.5.10", "adm-zip": "^0.5.10",
"ajv": "8.12.0", "ajv": "8.12.0",
"archiver": "7.0.0", "archiver": "7.0.0",
"argon2": "^0.40.1", "argon2": "^0.40.1",
"aws-sdk": "2.1569.0", "aws-sdk": "2.1571.0",
"axios": "^1.6.7", "axios": "^1.6.7",
"backend-rs": "workspace:*", "backend-rs": "workspace:*",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
@ -103,8 +103,8 @@
"qs": "6.11.2", "qs": "6.11.2",
"random-seed": "0.3.0", "random-seed": "0.3.0",
"ratelimiter": "3.4.1", "ratelimiter": "3.4.1",
"re2": "1.20.9", "re2": "1.20.10",
"redis-semaphore": "5.5.0", "redis-semaphore": "5.5.1",
"reflect-metadata": "0.2.1", "reflect-metadata": "0.2.1",
"rename": "1.0.4", "rename": "1.0.4",
"rndstr": "1.0.0", "rndstr": "1.0.0",
@ -129,7 +129,7 @@
}, },
"devDependencies": { "devDependencies": {
"@swc/cli": "0.3.10", "@swc/cli": "0.3.10",
"@swc/core": "1.4.2", "@swc/core": "1.4.4",
"@types/adm-zip": "^0.5.5", "@types/adm-zip": "^0.5.5",
"@types/bcryptjs": "2.4.6", "@types/bcryptjs": "2.4.6",
"@types/color-convert": "^2.0.3", "@types/color-convert": "^2.0.3",

View file

@ -149,7 +149,7 @@ function showNodejsVersion(): void {
nodejsLogger.info(`Version ${process.version} detected.`); nodejsLogger.info(`Version ${process.version} detected.`);
const minVersion = "v18.16.0"; const minVersion = "v18.17.0";
if (semver.lt(process.version, minVersion)) { if (semver.lt(process.version, minVersion)) {
nodejsLogger.error(`At least Node.js ${minVersion} required!`); nodejsLogger.error(`At least Node.js ${minVersion} required!`);
process.exit(1); process.exit(1);

View file

@ -494,9 +494,7 @@ export const UserRepository = db.getRepository(User).extend({
url: profile!.url, url: profile!.url,
uri: user.uri, uri: user.uri,
movedToUri: user.movedToUri movedToUri: user.movedToUri
? await this.userFromURI(user.movedToUri).catch( ? await this.userFromURI(user.movedToUri).catch(() => null)
() => user.movedToUri,
)
: null, : null,
alsoKnownAs: user.alsoKnownAs, alsoKnownAs: user.alsoKnownAs,
createdAt: user.createdAt.toISOString(), createdAt: user.createdAt.toISOString(),

View file

@ -36,7 +36,7 @@ export const renderActivity = (x: any): IActivity | null => {
PropertyValue: "schema:PropertyValue", PropertyValue: "schema:PropertyValue",
value: "schema:value", value: "schema:value",
// Firefish // Firefish
firefish: "https://joinfirefish.org/ns#", firefish: "https://firefish.dev/ns#",
speakAsCat: "firefish:speakAsCat", speakAsCat: "firefish:speakAsCat",
// Misskey // Misskey
misskey: "https://misskey-hub.net/ns#", misskey: "https://misskey-hub.net/ns#",

View file

@ -53,7 +53,7 @@ const nodeinfo2 = async () => {
name: "firefish", name: "firefish",
version: config.version, version: config.version,
repository: meta.repositoryUrl, repository: meta.repositoryUrl,
homepage: "https://joinfirefish.org/", homepage: "https://firefish.dev/firefish/firefish",
}, },
protocols: ["activitypub"], protocols: ["activitypub"],
services: { services: {

View file

@ -55,33 +55,33 @@ describe("fromHtml", () => {
it("link with different text", () => { it("link with different text", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml('<p>a <a href="https://joinfirefish.org/b">c</a> d</p>'), fromHtml('<p>a <a href="https://firefish.dev/firefish">c</a> d</p>'),
"a [c](https://joinfirefish.org/b) d", "a [c](https://firefish.dev/firefish) d",
); );
}); });
it("link with different text, but not encoded", () => { it("link with different text, but not encoded", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml('<p>a <a href="https://joinfirefish.org/ä">c</a> d</p>'), fromHtml('<p>a <a href="https://firefish.dev/ä">c</a> d</p>'),
"a [c](<https://joinfirefish.org/ä>) d", "a [c](<https://firefish.dev/ä>) d",
); );
}); });
it("link with same text", () => { it("link with same text", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml( fromHtml(
'<p>a <a href="https://joinfirefish.org/b">https://joinfirefish.org/b</a> d</p>', '<p>a <a href="https://firefish.dev/firefish/firefish">https://firefish.dev/firefish/firefish</a> d</p>',
), ),
"a https://joinfirefish.org/b d", "a https://firefish.dev/firefish/firefish d",
); );
}); });
it("link with same text, but not encoded", () => { it("link with same text, but not encoded", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml( fromHtml(
'<p>a <a href="https://joinfirefish.org/ä">https://joinfirefish.org/ä</a> d</p>', '<p>a <a href="https://firefish.dev/ä">https://firefish.dev/ä</a> d</p>',
), ),
"a <https://joinfirefish.org/ä> d", "a <https://firefish.dev/ä> d",
); );
}); });
@ -98,8 +98,8 @@ describe("fromHtml", () => {
it("link without text", () => { it("link without text", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml('<p>a <a href="https://joinfirefish.org/b"></a> d</p>'), fromHtml('<p>a <a href="https://firefish.dev/b"></a> d</p>'),
"a https://joinfirefish.org/b d", "a https://firefish.dev/b d",
); );
}); });
@ -110,15 +110,15 @@ describe("fromHtml", () => {
it("mention", () => { it("mention", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml( fromHtml(
'<p>a <a href="https://joinfirefish.org/@user" class="u-url mention">@user</a> d</p>', '<p>a <a href="https://info.firefish.dev/@firefish" class="u-url mention">@firefish</a> d</p>',
), ),
"a @user@joinfirefish.org d", "a @firefish@info.firefish.dev d",
); );
}); });
it("hashtag", () => { it("hashtag", () => {
assert.deepStrictEqual( assert.deepStrictEqual(
fromHtml('<p>a <a href="https://joinfirefish.org/tags/a">#a</a> d</p>', [ fromHtml('<p>a <a href="https://info.firefish.dev/tags/a">#a</a> d</p>', [
"#a", "#a",
]), ]),
"a #a d", "a #a d",

View file

@ -84,7 +84,7 @@
"typescript": "5.3.3", "typescript": "5.3.3",
"unicode-emoji-json": "^0.4.0", "unicode-emoji-json": "^0.4.0",
"uuid": "9.0.1", "uuid": "9.0.1",
"vite": "5.1.4", "vite": "5.1.5",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",
"vue": "3.4.21", "vue": "3.4.21",
"vue-draggable-plus": "^0.3.5", "vue-draggable-plus": "^0.3.5",

View file

@ -144,16 +144,17 @@
:disabled="okButtonDisabled" :disabled="okButtonDisabled"
@click="ok" @click="ok"
>{{ >{{
showCancelButton || input || select okText ??
(showCancelButton || input || select
? i18n.ts.ok ? i18n.ts.ok
: i18n.ts.gotIt : i18n.ts.gotIt)
}}</MkButton }}</MkButton
> >
<MkButton <MkButton
v-if="showCancelButton || input || select" v-if="showCancelButton || input || select"
inline inline
@click="cancel" @click="cancel"
>{{ i18n.ts.cancel }}</MkButton >{{ cancelText ?? i18n.ts.cancel }}</MkButton
> >
</div> </div>
<div v-else> <div v-else>
@ -194,13 +195,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import { computed, onBeforeUnmount, onMounted, ref, shallowRef } from "vue"; import { computed, onBeforeUnmount, onMounted, ref, shallowRef } from "vue";
import { acct } from "firefish-js";
import MkModal from "@/components/MkModal.vue"; import MkModal from "@/components/MkModal.vue";
import MkButton from "@/components/MkButton.vue"; import MkButton from "@/components/MkButton.vue";
import MkInput from "@/components/form/input.vue"; import MkInput from "@/components/form/input.vue";
import MkTextarea from "@/components/form/textarea.vue"; import MkTextarea from "@/components/form/textarea.vue";
import MkSelect from "@/components/form/select.vue"; import MkSelect from "@/components/form/select.vue";
import * as os from "@/os";
import { i18n } from "@/i18n"; import { i18n } from "@/i18n";
import iconClass from "@/scripts/icon"; import iconClass from "@/scripts/icon";

View file

@ -380,7 +380,7 @@ const showBigPostButton = defaultStore.state.showBigPostButton;
const posting = ref(false); const posting = ref(false);
const text = ref(props.initialText ?? ""); const text = ref(props.initialText ?? "");
const files = ref(props.initialFiles ?? []); const files = ref(props.initialFiles ?? ([] as entities.DriveFile[]));
const poll = ref<{ const poll = ref<{
choices: string[]; choices: string[];
multiple: boolean; multiple: boolean;
@ -461,12 +461,12 @@ const placeholder = computed((): string => {
const submitText = computed((): string => { const submitText = computed((): string => {
return props.editId return props.editId
? i18n.ts.edit ? i18n.ts.toEdit
: props.renote : props.renote
? i18n.ts.quote ? i18n.ts.toQuote
: props.reply : props.reply
? i18n.ts.reply ? i18n.ts.toReply
: i18n.ts.note; : i18n.ts.toPost;
}); });
const textLength = computed((): number => { const textLength = computed((): number => {
@ -1020,6 +1020,22 @@ function deleteDraft() {
} }
async function post() { async function post() {
if (
defaultStore.state.showNoAltTextWarning &&
files.value.some((f) => f.comment == null || f.comment.length === 0)
) {
// "canceled" means "post anyway"
const { canceled } = await os.confirm({
type: "warning",
text: i18n.ts.noAltTextWarning,
okText: i18n.ts.goBack,
cancelText: i18n.ts.toPost,
isPlaintext: true,
});
if (!canceled) return;
}
const processedText = preprocess(text.value); const processedText = preprocess(text.value);
let postData = { let postData = {

View file

@ -55,7 +55,7 @@ export default defineComponent({
this.$i ? this.$i.username : "guest" this.$i ? this.$i.username : "guest"
}.\nAlso, here is ${config.url} and [example link](${ }.\nAlso, here is ${config.url} and [example link](${
config.url config.url
}). for more details, see https://joinfirefish.org.\nAs you know #misskey is open-source software.`, }). for more details, see <https://firefish.dev/firefish/firefish>.\nAs you know #Firefish is open-source software.`,
}; };
}, },

View file

@ -229,7 +229,7 @@ onBeforeUnmount(() => {
} }
.input { .input {
margin: 10px 0; margin: 12px 0;
} }
.title { .title {

View file

@ -1,11 +1,6 @@
<template> <template>
<div v-if="instance.disableRegistration" style="margin-bottom: 1rem"> <div v-if="instance.disableRegistration" style="margin-bottom: 1rem">
<p>{{ i18n.ts.signupsDisabled }}</p> <p>{{ i18n.ts.signupsDisabled }}</p>
<a href="https://joinfirefish.org/join">
<MkButton rounded gradate
>{{ i18n.ts.findOtherInstance }}
</MkButton>
</a>
</div> </div>
<form <form
class="qlvuhzng _formRoot" class="qlvuhzng _formRoot"

View file

@ -32,6 +32,12 @@ const emit = defineEmits<{
.thppypvi { .thppypvi {
max-height: 70%; max-height: 70%;
overflow-y: scroll; overflow-y: scroll;
-ms-overflow-style: none;
scrollbar-width: none;
}
.thppypvi::-webkit-scrollbar {
display: none;
} }
.zrgnubda { .zrgnubda {

View file

@ -97,6 +97,7 @@ function toggle(x) {
display: block; display: block;
transition: inherit; transition: inherit;
color: var(--fg); color: var(--fg);
text-align: initial;
> span { > span {
display: block; display: block;

View file

@ -136,7 +136,7 @@ const headerActions = computed(() => [
? [ ? [
{ {
icon: `${icon("ph-gear-six")}`, icon: `${icon("ph-gear-six")}`,
text: i18n.ts.edit, text: i18n.ts.toEdit,
handler: edit, handler: edit,
}, },
] ]

View file

@ -73,7 +73,7 @@ const headerActions = computed(() =>
? [ ? [
{ {
icon: `${icon("ph-pencil")}`, icon: `${icon("ph-pencil")}`,
text: i18n.ts.edit, text: i18n.ts.toEdit,
handler: async (): Promise<void> => { handler: async (): Promise<void> => {
const { canceled, result } = await os.form( const { canceled, result } = await os.form(
clip.value.name, clip.value.name,

View file

@ -159,7 +159,7 @@ definePageMetadata(
computed(() => computed(() =>
props.postId props.postId
? { ? {
title: i18n.ts.edit, title: i18n.ts.toEdit,
icon: `${icon("ph-pencil")}`, icon: `${icon("ph-pencil")}`,
} }
: { : {

View file

@ -61,7 +61,7 @@
v-if=" v-if="
isSignedIn && $i.id === post.user.id isSignedIn && $i.id === post.user.id
" "
v-tooltip="i18n.ts.edit" v-tooltip="i18n.ts.toEdit"
v-click-anime v-click-anime
class="_button" class="_button"
@click="edit" @click="edit"

View file

@ -8,6 +8,9 @@
/></template> /></template>
<div> <div>
<MkSpacer :content-max="800"> <MkSpacer :content-max="800">
<MkInfo :closeable="false" class="_gap">
<I18n :src="i18n.ts.messagingUnencryptedInfo"> </I18n>
</MkInfo>
<swiper <swiper
:round-lengths="true" :round-lengths="true"
:touch-angle="25" :touch-angle="25"
@ -94,6 +97,7 @@ import { Virtual } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
import MkButton from "@/components/MkButton.vue"; import MkButton from "@/components/MkButton.vue";
import MkChatPreview from "@/components/MkChatPreview.vue"; import MkChatPreview from "@/components/MkChatPreview.vue";
import MkInfo from "@/components/MkInfo.vue";
import MkPagination from "@/components/MkPagination.vue"; import MkPagination from "@/components/MkPagination.vue";
import * as os from "@/os"; import * as os from "@/os";
import { useStream } from "@/stream"; import { useStream } from "@/stream";

View file

@ -121,6 +121,9 @@
<FormSwitch v-model="openServerInfo" class="_formBlock">{{ <FormSwitch v-model="openServerInfo" class="_formBlock">{{
i18n.ts.openServerInfo i18n.ts.openServerInfo
}}</FormSwitch> }}</FormSwitch>
<FormSwitch v-model="showNoAltTextWarning" class="_formBlock">{{
i18n.ts.showNoAltTextWarning
}}</FormSwitch>
<FormSelect v-model="serverDisconnectedBehavior" class="_formBlock"> <FormSelect v-model="serverDisconnectedBehavior" class="_formBlock">
<template #label>{{ i18n.ts.whenServerDisconnected }}</template> <template #label>{{ i18n.ts.whenServerDisconnected }}</template>
@ -524,6 +527,9 @@ const enablePullToRefresh = computed(
const pullToRefreshThreshold = computed( const pullToRefreshThreshold = computed(
defaultStore.makeGetterSetter("pullToRefreshThreshold"), defaultStore.makeGetterSetter("pullToRefreshThreshold"),
); );
const showNoAltTextWarning = computed(
defaultStore.makeGetterSetter("showNoAltTextWarning"),
);
// This feature (along with injectPromo) is currently disabled // This feature (along with injectPromo) is currently disabled
// function onChangeInjectFeaturedNote(v) { // function onChangeInjectFeaturedNote(v) {

View file

@ -124,6 +124,7 @@ const defaultStoreSaveKeys: (keyof (typeof defaultStore)["state"])[] = [
"enableTimelineStreaming", "enableTimelineStreaming",
"enablePullToRefresh", "enablePullToRefresh",
"pullToRefreshThreshold", "pullToRefreshThreshold",
"showNoAltTextWarning",
]; ];
const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [ const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [
"lightTheme", "lightTheme",

View file

@ -67,7 +67,7 @@
rounded rounded
style="margin-left: 12px; margin-top: 12px" style="margin-left: 12px; margin-top: 12px"
onclick="window.location.href='/explore'" onclick="window.location.href='/explore'"
>Explore</MkButton >{{ i18n.ts.explore }}</MkButton
> >
</div> </div>
</div> </div>

View file

@ -445,7 +445,7 @@ export function getNoteMenu(props: {
isAppearAuthor isAppearAuthor
? { ? {
icon: `${icon("ph-pencil-line")}`, icon: `${icon("ph-pencil-line")}`,
text: i18n.ts.edit, text: i18n.ts.toEdit,
accent: true, accent: true,
action: edit, action: edit,
} }

View file

@ -1,4 +1,5 @@
import XTutorial from "../components/MkTutorialDialog.vue"; import XTutorial from "@/components/MkTutorialDialog.vue";
import XCheatSheet from "@/components/MkCheatSheetDialog.vue";
import { defaultStore } from "@/store"; import { defaultStore } from "@/store";
import { instance } from "@/instance"; import { instance } from "@/instance";
import { host } from "@/config"; import { host } from "@/config";
@ -53,14 +54,6 @@ export function openHelpMenu_(ev: MouseEvent) {
...(instanceSpecificItems.length >= 2 ? [null] : []), ...(instanceSpecificItems.length >= 2 ? [null] : []),
...instanceSpecificItems, ...instanceSpecificItems,
null, null,
{
type: "button",
text: i18n.ts.apps,
icon: `${icon("ph-device-mobile")}`,
action: () => {
window.open("https://joinfirefish.org/apps", "_blank");
},
},
{ {
type: "button", type: "button",
action: async () => { action: async () => {
@ -70,6 +63,14 @@ export function openHelpMenu_(ev: MouseEvent) {
text: i18n.ts.replayTutorial, text: i18n.ts.replayTutorial,
icon: `${icon("ph-circle-wavy-question")}`, icon: `${icon("ph-circle-wavy-question")}`,
}, },
{
type: "button",
text: i18n.ts._mfm.cheatSheet,
icon: "ph-question ph-bold ph-lg",
action: async () => {
os.popup(XCheatSheet, {}, {}, "closed");
},
},
null, null,
{ {
type: "parent", type: "parent",

View file

@ -428,6 +428,10 @@ export const defaultStore = markRaw(
where: "device", where: "device",
default: 150, default: 150,
}, },
showNoAltTextWarning: {
where: "account",
default: true,
},
}), }),
); );

View file

@ -120,7 +120,7 @@
@click="os.post" @click="os.post"
> >
<i :class="icon('ph-pencil icon ph-fw')"></i <i :class="icon('ph-pencil icon ph-fw')"></i
><span class="text">{{ i18n.ts.note }}</span> ><span class="text">{{ i18n.ts.toPost }}</span>
</button> </button>
<button <button
v-tooltip.noDelay.right="i18n.ts.help" v-tooltip.noDelay.right="i18n.ts.help"

View file

@ -128,13 +128,13 @@
</nav> </nav>
<div class="bottom"> <div class="bottom">
<button <button
v-tooltip.noDelay.right="i18n.ts.note" v-tooltip.noDelay.right="i18n.ts.toPost"
class="item _button post" class="item _button post"
data-cy-open-post-form data-cy-open-post-form
@click="os.post" @click="os.post"
> >
<i :class="icon('icon ph-pencil ph-fw ph-lg')"></i <i :class="icon('icon ph-pencil ph-fw ph-lg')"></i
><span class="text">{{ i18n.ts.note }}</span> ><span class="text">{{ i18n.ts.toPost }}</span>
</button> </button>
<button <button
v-tooltip.noDelay.right="i18n.ts.help" v-tooltip.noDelay.right="i18n.ts.help"

View file

@ -63,7 +63,9 @@
> >
<small <small
>Powered by >Powered by
<a href="https://joinfirefish.org/" target="_blank" <a
href="https://firefish.dev/firefish/firefish"
target="_blank"
>Firefish</a >Firefish</a
></small ></small
> >

View file

@ -18,7 +18,9 @@
> >
<small <small
>Powered by >Powered by
<a href="https://joinfirefish.org/" target="_blank" <a
href="https://firefish.dev/firefish/firefish"
target="_blank"
>Firefish</a >Firefish</a
></small ></small
> >

View file

@ -69,7 +69,9 @@
> >
<small <small
>Powered by >Powered by
<a href="https://joinfirefish.org/" target="_blank" <a
href="https://firefish.dev/firefish/firefish"
target="_blank"
>Firefish</a >Firefish</a
></small ></small
> >

View file

@ -22,7 +22,7 @@
}, },
"devDependencies": { "devDependencies": {
"@swc/cli": "0.3.10", "@swc/cli": "0.3.10",
"@swc/core": "1.4.2", "@swc/core": "1.4.4",
"@swc/types": "^0.1.5", "@swc/types": "^0.1.5",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/node": "20.11.24", "@types/node": "20.11.24",

View file

@ -11,7 +11,7 @@
"devDependencies": { "devDependencies": {
"firefish-js": "workspace:*", "firefish-js": "workspace:*",
"idb-keyval": "^6.2.1", "idb-keyval": "^6.2.1",
"vite": "5.1.4", "vite": "5.1.5",
"vite-plugin-compression": "^0.5.1" "vite-plugin-compression": "^0.5.1"
} }
} }

View file

@ -82,8 +82,8 @@ importers:
specifier: 1.7.0 specifier: 1.7.0
version: 1.7.0 version: 1.7.0
'@redocly/openapi-core': '@redocly/openapi-core':
specifier: 1.10.1 specifier: 1.10.3
version: 1.10.1 version: 1.10.3
'@sinonjs/fake-timers': '@sinonjs/fake-timers':
specifier: 11.2.2 specifier: 11.2.2
version: 11.2.2 version: 11.2.2
@ -103,8 +103,8 @@ importers:
specifier: ^0.40.1 specifier: ^0.40.1
version: 0.40.1 version: 0.40.1
aws-sdk: aws-sdk:
specifier: 2.1569.0 specifier: 2.1571.0
version: 2.1569.0 version: 2.1571.0
axios: axios:
specifier: ^1.6.7 specifier: ^1.6.7
version: 1.6.7 version: 1.6.7
@ -298,11 +298,11 @@ importers:
specifier: 3.4.1 specifier: 3.4.1
version: 3.4.1 version: 3.4.1
re2: re2:
specifier: 1.20.9 specifier: 1.20.10
version: 1.20.9 version: 1.20.10
redis-semaphore: redis-semaphore:
specifier: 5.5.0 specifier: 5.5.1
version: 5.5.0(ioredis@5.3.2) version: 5.5.1(ioredis@5.3.2)
reflect-metadata: reflect-metadata:
specifier: 0.2.1 specifier: 0.2.1
version: 0.2.1 version: 0.2.1
@ -373,10 +373,10 @@ importers:
devDependencies: devDependencies:
'@swc/cli': '@swc/cli':
specifier: 0.3.10 specifier: 0.3.10
version: 0.3.10(@swc/core@1.4.2) version: 0.3.10(@swc/core@1.4.4)
'@swc/core': '@swc/core':
specifier: 1.4.2 specifier: 1.4.4
version: 1.4.2 version: 1.4.4
'@types/adm-zip': '@types/adm-zip':
specifier: ^0.5.5 specifier: ^0.5.5
version: 0.5.5 version: 0.5.5
@ -526,13 +526,13 @@ importers:
version: 2.0.0 version: 2.0.0
swc-loader: swc-loader:
specifier: ^0.2.6 specifier: ^0.2.6
version: 0.2.6(@swc/core@1.4.2)(webpack@5.90.3) version: 0.2.6(@swc/core@1.4.4)(webpack@5.90.3)
ts-loader: ts-loader:
specifier: 9.5.1 specifier: 9.5.1
version: 9.5.1(typescript@5.3.3)(webpack@5.90.3) version: 9.5.1(typescript@5.3.3)(webpack@5.90.3)
ts-node: ts-node:
specifier: 10.9.2 specifier: 10.9.2
version: 10.9.2(@swc/core@1.4.2)(@types/node@20.11.24)(typescript@5.3.3) version: 10.9.2(@swc/core@1.4.4)(@types/node@20.11.24)(typescript@5.3.3)
tsconfig-paths: tsconfig-paths:
specifier: 4.2.0 specifier: 4.2.0
version: 4.2.0 version: 4.2.0
@ -541,7 +541,7 @@ importers:
version: 5.3.3 version: 5.3.3
webpack: webpack:
specifier: ^5.90.3 specifier: ^5.90.3
version: 5.90.3(@swc/core@1.4.2) version: 5.90.3(@swc/core@1.4.4)
ws: ws:
specifier: 8.16.0 specifier: 8.16.0
version: 8.16.0 version: 8.16.0
@ -622,7 +622,7 @@ importers:
version: 9.0.8 version: 9.0.8
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: 5.0.4 specifier: 5.0.4
version: 5.0.4(vite@5.1.4)(vue@3.4.21) version: 5.0.4(vite@5.1.5)(vue@3.4.21)
'@vue/runtime-core': '@vue/runtime-core':
specifier: 3.4.21 specifier: 3.4.21
version: 3.4.21 version: 3.4.21
@ -777,11 +777,11 @@ importers:
specifier: 9.0.1 specifier: 9.0.1
version: 9.0.1 version: 9.0.1
vite: vite:
specifier: 5.1.4 specifier: 5.1.5
version: 5.1.4(@types/node@20.11.24)(sass@1.71.1) version: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
vite-plugin-compression: vite-plugin-compression:
specifier: ^0.5.1 specifier: ^0.5.1
version: 0.5.1(vite@5.1.4) version: 0.5.1(vite@5.1.5)
vue: vue:
specifier: 3.4.21 specifier: 3.4.21
version: 3.4.21(typescript@5.3.3) version: 3.4.21(typescript@5.3.3)
@ -810,10 +810,10 @@ importers:
devDependencies: devDependencies:
'@swc/cli': '@swc/cli':
specifier: 0.3.10 specifier: 0.3.10
version: 0.3.10(@swc/core@1.4.2) version: 0.3.10(@swc/core@1.4.4)
'@swc/core': '@swc/core':
specifier: 1.4.2 specifier: 1.4.4
version: 1.4.2 version: 1.4.4
'@swc/types': '@swc/types':
specifier: ^0.1.5 specifier: ^0.1.5
version: 0.1.5 version: 0.1.5
@ -840,7 +840,7 @@ importers:
version: 29.1.2(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.3.3) version: 29.1.2(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: ts-node:
specifier: 10.9.2 specifier: 10.9.2
version: 10.9.2(@swc/core@1.4.2)(@types/node@20.11.24)(typescript@5.3.3) version: 10.9.2(@swc/core@1.4.4)(@types/node@20.11.24)(typescript@5.3.3)
tsd: tsd:
specifier: ^0.30.7 specifier: ^0.30.7
version: 0.30.7 version: 0.30.7
@ -975,11 +975,11 @@ importers:
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.1 version: 6.2.1
vite: vite:
specifier: 5.1.4 specifier: 5.1.5
version: 5.1.4(@types/node@20.11.24)(sass@1.71.1) version: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
vite-plugin-compression: vite-plugin-compression:
specifier: ^0.5.1 specifier: ^0.5.1
version: 0.5.1(vite@5.1.4) version: 0.5.1(vite@5.1.5)
packages: packages:
@ -3298,8 +3298,8 @@ packages:
uri-js: 4.4.1 uri-js: 4.4.1
dev: false dev: false
/@redocly/openapi-core@1.10.1: /@redocly/openapi-core@1.10.3:
resolution: {integrity: sha512-WpVmNsIRqWmK4LuE2OER4s4iYu/cAm+djyZZy9ciUflJtew7aIXsC1/7/SsKmWKpoPGzWEfNPRs1/OZ9CeKvAA==} resolution: {integrity: sha512-4SnIWh8r3EM1ylcoHIJSnQnuvqRTpQMnf2RU3BfVdcCBa0A1uEyH6XSxgcO5ehxfQGuGGpUXJ+vPh32PUaQDkA==}
engines: {node: '>=14.19.0', npm: '>=7.0.0'} engines: {node: '>=14.19.0', npm: '>=7.0.0'}
dependencies: dependencies:
'@redocly/ajv': 8.11.0 '@redocly/ajv': 8.11.0
@ -3507,7 +3507,7 @@ packages:
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
dev: false dev: false
/@swc/cli@0.3.10(@swc/core@1.4.2): /@swc/cli@0.3.10(@swc/core@1.4.4):
resolution: {integrity: sha512-YWfYo9kXdbmIuGwIPth9geKgb0KssCMTdZa44zAN5KoqcuCP2rTW9s60heQDSRNpbtCmUr7BKF1VivsoHXrvrQ==} resolution: {integrity: sha512-YWfYo9kXdbmIuGwIPth9geKgb0KssCMTdZa44zAN5KoqcuCP2rTW9s60heQDSRNpbtCmUr7BKF1VivsoHXrvrQ==}
engines: {node: '>= 16.14.0'} engines: {node: '>= 16.14.0'}
hasBin: true hasBin: true
@ -3519,7 +3519,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@mole-inc/bin-wrapper': 8.0.1 '@mole-inc/bin-wrapper': 8.0.1
'@swc/core': 1.4.2 '@swc/core': 1.4.4
'@swc/counter': 0.1.3 '@swc/counter': 0.1.3
commander: 8.3.0 commander: 8.3.0
fast-glob: 3.3.2 fast-glob: 3.3.2
@ -3541,88 +3541,88 @@ packages:
dev: false dev: false
optional: true optional: true
/@swc/core-darwin-arm64@1.4.2: /@swc/core-darwin-arm64@1.4.4:
resolution: {integrity: sha512-1uSdAn1MRK5C1m/TvLZ2RDvr0zLvochgrZ2xL+lRzugLlCTlSA+Q4TWtrZaOz+vnnFVliCpw7c7qu0JouhgQIw==} resolution: {integrity: sha512-goSHS8yvDgha93RHIV2Vn50neYasqbc4K1g/nKOV6T8kiKVv4w/rmqNJu9Aa0mPGVJtjcr0NvX6bBwE0T4HIzg==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-darwin-x64@1.4.2: /@swc/core-darwin-x64@1.4.4:
resolution: {integrity: sha512-TYD28+dCQKeuxxcy7gLJUCFLqrwDZnHtC2z7cdeGfZpbI2mbfppfTf2wUPzqZk3gEC96zHd4Yr37V3Tvzar+lQ==} resolution: {integrity: sha512-PLfgL355qsl5c5kUPsFGITgVXoaqjp9sCd0Y5Z5uN7RtSOvwIX28e23eCxj02dOr7OBr8sq6qBlEMDV03T24Iw==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-linux-arm-gnueabihf@1.4.2: /@swc/core-linux-arm-gnueabihf@1.4.4:
resolution: {integrity: sha512-Eyqipf7ZPGj0vplKHo8JUOoU1un2sg5PjJMpEesX0k+6HKE2T8pdyeyXODN0YTFqzndSa/J43EEPXm+rHAsLFQ==} resolution: {integrity: sha512-BVEZVOGnaZvEcHm//KyYzhte46vdF67wLVtmQEXPAlrkRgZ3b/JSySeLXqeocAcOANWb1/SPHlEmPK5azP+JvQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-linux-arm64-gnu@1.4.2: /@swc/core-linux-arm64-gnu@1.4.4:
resolution: {integrity: sha512-wZn02DH8VYPv3FC0ub4my52Rttsus/rFw+UUfzdb3tHMHXB66LqN+rR0ssIOZrH6K+VLN6qpTw9VizjyoH0BxA==} resolution: {integrity: sha512-ZbOJfVbCjVMKdfvvJDOTpa3tGqU6tfxng1CDjA62RUcqa7sRbovrjSiw6mq5/4EoOF4zK8CtPIG+TlxKPapnuw==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-linux-arm64-musl@1.4.2: /@swc/core-linux-arm64-musl@1.4.4:
resolution: {integrity: sha512-3G0D5z9hUj9bXNcwmA1eGiFTwe5rWkuL3DsoviTj73TKLpk7u64ND0XjEfO0huVv4vVu9H1jodrKb7nvln/dlw==} resolution: {integrity: sha512-+Gjo1W4tY/4kgEe5h22iuCWkpKcPMccXwYaSLNvgBCBQADB0zKFfF0lNf7y6U+81NFEjhRsdwXMsRGZtgTpUrg==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-linux-x64-gnu@1.4.2: /@swc/core-linux-x64-gnu@1.4.4:
resolution: {integrity: sha512-LFxn9U8cjmYHw3jrdPNqPAkBGglKE3tCZ8rA7hYyp0BFxuo7L2ZcEnPm4RFpmSCCsExFH+LEJWuMGgWERoktvg==} resolution: {integrity: sha512-PR/VbGm0LEkhpm5qClovZWhE/jYoQSyIeyPh8XY39uUI1u2yEfuz5UCW2sJJIWOvNiAfu7+TjW+9H/I7zBBDJA==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-linux-x64-musl@1.4.2: /@swc/core-linux-x64-musl@1.4.4:
resolution: {integrity: sha512-dp0fAmreeVVYTUcb4u9njTPrYzKnbIH0EhH2qvC9GOYNNREUu2GezSIDgonjOXkHiTCvopG4xU7y56XtXj4VrQ==} resolution: {integrity: sha512-poT9zub4CyVcH1cxwGdrGiZD3urfOaYs/Kd52ve3ymPPeQZq7qQwKqAB/9NxoSiJDaSzJv5OwTEfgaBYCyw0iw==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-win32-arm64-msvc@1.4.2: /@swc/core-win32-arm64-msvc@1.4.4:
resolution: {integrity: sha512-HlVIiLMQkzthAdqMslQhDkoXJ5+AOLUSTV6fm6shFKZKqc/9cJvr4S8UveNERL9zUficA36yM3bbfo36McwnvQ==} resolution: {integrity: sha512-29V5/fBd6XXFb7J/ri9ZeSS/GTqXfSWa3BiE0zTNbASpQbEXf+YPYiAtO6c1HqNyQobKB9ni+w7sa8KkAGhHXw==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-win32-ia32-msvc@1.4.2: /@swc/core-win32-ia32-msvc@1.4.4:
resolution: {integrity: sha512-WCF8faPGjCl4oIgugkp+kL9nl3nUATlzKXCEGFowMEmVVCFM0GsqlmGdPp1pjZoWc9tpYanoXQDnp5IvlDSLhA==} resolution: {integrity: sha512-2lKEGEjpBOq0z4Nk0tFP9wxVwxgz7FonmjCkzJ95GBb5KNvMrgQQrGNGX6L0hoBo/a1kE752I6V5pOaMyIq5xQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core-win32-x64-msvc@1.4.2: /@swc/core-win32-x64-msvc@1.4.4:
resolution: {integrity: sha512-oV71rwiSpA5xre2C5570BhCsg1HF97SNLsZ/12xv7zayGzqr3yvFALFJN8tHKpqUdCB4FGPjoP3JFdV3i+1wUw==} resolution: {integrity: sha512-xuN0oJhAewga8jNJkT5Wx25RPVnIEMZCYf4irqA5jiK6GckOdcXB8jvEJhggOxnJSW8RDsAtY5q+zw5kNkU+eA==}
engines: {node: '>=10'} engines: {node: '>=10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
optional: true optional: true
/@swc/core@1.4.2: /@swc/core@1.4.4:
resolution: {integrity: sha512-vWgY07R/eqj1/a0vsRKLI9o9klGZfpLNOVEnrv4nrccxBgYPjcf22IWwAoaBJ+wpA7Q4fVjCUM8lP0m01dpxcg==} resolution: {integrity: sha512-P88AHGWM8xPY3Tjj5360V6vqKCS5UfsyffPJVnr7BKSr45rlG4/pjEGGmFYQjg6ztgPyrGLYz1jSyzajTqTVIA==}
engines: {node: '>=10'} engines: {node: '>=10'}
requiresBuild: true requiresBuild: true
peerDependencies: peerDependencies:
@ -3634,16 +3634,16 @@ packages:
'@swc/counter': 0.1.3 '@swc/counter': 0.1.3
'@swc/types': 0.1.5 '@swc/types': 0.1.5
optionalDependencies: optionalDependencies:
'@swc/core-darwin-arm64': 1.4.2 '@swc/core-darwin-arm64': 1.4.4
'@swc/core-darwin-x64': 1.4.2 '@swc/core-darwin-x64': 1.4.4
'@swc/core-linux-arm-gnueabihf': 1.4.2 '@swc/core-linux-arm-gnueabihf': 1.4.4
'@swc/core-linux-arm64-gnu': 1.4.2 '@swc/core-linux-arm64-gnu': 1.4.4
'@swc/core-linux-arm64-musl': 1.4.2 '@swc/core-linux-arm64-musl': 1.4.4
'@swc/core-linux-x64-gnu': 1.4.2 '@swc/core-linux-x64-gnu': 1.4.4
'@swc/core-linux-x64-musl': 1.4.2 '@swc/core-linux-x64-musl': 1.4.4
'@swc/core-win32-arm64-msvc': 1.4.2 '@swc/core-win32-arm64-msvc': 1.4.4
'@swc/core-win32-ia32-msvc': 1.4.2 '@swc/core-win32-ia32-msvc': 1.4.4
'@swc/core-win32-x64-msvc': 1.4.2 '@swc/core-win32-x64-msvc': 1.4.4
/@swc/counter@0.1.3: /@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
@ -4777,14 +4777,14 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.21): /@vitejs/plugin-vue@5.0.4(vite@5.1.5)(vue@3.4.21):
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies: peerDependencies:
vite: ^5.0.0 vite: ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 5.1.4(@types/node@20.11.24)(sass@1.71.1) vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
dev: true dev: true
@ -5644,8 +5644,8 @@ packages:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
/aws-sdk@2.1569.0: /aws-sdk@2.1571.0:
resolution: {integrity: sha512-9puKjesHKOjAYPqFurW/9nv3qhQ+STu3bVa5PN158SCeZPE6NsxZIWnHLglJvKU7N8UXJo1aJHmKDUGrsS7rXw==} resolution: {integrity: sha512-Hixs1aD+7IwsP/Bkb7StFCrOC9ejmw8zBv8xVqEtEughRX6AF8bLKFRoJRbD4V6TrM+gPGpCqoFlpa84HLHkSA==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
dependencies: dependencies:
buffer: 4.9.2 buffer: 4.9.2
@ -11183,7 +11183,7 @@ packages:
pretty-format: 29.7.0 pretty-format: 29.7.0
slash: 3.0.0 slash: 3.0.0
strip-json-comments: 3.1.1 strip-json-comments: 3.1.1
ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@20.11.24)(typescript@5.3.3) ts-node: 10.9.2(@swc/core@1.4.4)(@types/node@20.11.24)(typescript@5.3.3)
transitivePeerDependencies: transitivePeerDependencies:
- babel-plugin-macros - babel-plugin-macros
- supports-color - supports-color
@ -14585,8 +14585,8 @@ packages:
setimmediate: 1.0.5 setimmediate: 1.0.5
dev: false dev: false
/re2@1.20.9: /re2@1.20.10:
resolution: {integrity: sha512-ZYcPTFr5ha2xq3WQjBDTF9CWPSDK1z28MLh5UFRxc//7X8BNQ3A7yR7ITnP0jO346661ertdKVFqw1qoL3FMEQ==} resolution: {integrity: sha512-/5JjSPXobSDaKFL6rD5Gb4qD4CVBITQb7NAxfQ/NA7o0HER3SJAPV3lPO2kvzw0/PN1pVJNVATEUk4y9j7oIIA==}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
install-artifact-from-github: 1.3.5 install-artifact-from-github: 1.3.5
@ -14734,8 +14734,8 @@ packages:
redis-errors: 1.2.0 redis-errors: 1.2.0
dev: false dev: false
/redis-semaphore@5.5.0(ioredis@5.3.2): /redis-semaphore@5.5.1(ioredis@5.3.2):
resolution: {integrity: sha512-JSoCtkcXRr5hN2Hs7cmP/998bKAkZbJJ6C9T+UYh6BlEhYevWkQ6b5IHPRrZxCepPwwJnt/piacmB3a5UoXIYw==} resolution: {integrity: sha512-wqeYg3xWDCR81DRlS2y9lx/5TVKr1Qq0w9QuN6WK9i+R3exGPM8QGwnYarSrb6G/aZFMAJffGgLdmvR3jls9cQ==}
engines: {node: '>= 14.17.0'} engines: {node: '>= 14.17.0'}
peerDependencies: peerDependencies:
ioredis: ^4.1.0 || ^5 ioredis: ^4.1.0 || ^5
@ -15896,15 +15896,15 @@ packages:
whet.extend: 0.9.9 whet.extend: 0.9.9
dev: false dev: false
/swc-loader@0.2.6(@swc/core@1.4.2)(webpack@5.90.3): /swc-loader@0.2.6(@swc/core@1.4.4)(webpack@5.90.3):
resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==}
peerDependencies: peerDependencies:
'@swc/core': ^1.2.147 '@swc/core': ^1.2.147
webpack: '>=2' webpack: '>=2'
dependencies: dependencies:
'@swc/core': 1.4.2 '@swc/core': 1.4.4
'@swc/counter': 0.1.3 '@swc/counter': 0.1.3
webpack: 5.90.3(@swc/core@1.4.2) webpack: 5.90.3(@swc/core@1.4.4)
dev: true dev: true
/swiper@11.0.7: /swiper@11.0.7:
@ -15991,7 +15991,7 @@ packages:
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
dev: true dev: true
/terser-webpack-plugin@5.3.10(@swc/core@1.4.2)(webpack@5.90.3): /terser-webpack-plugin@5.3.10(@swc/core@1.4.4)(webpack@5.90.3):
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
engines: {node: '>= 10.13.0'} engines: {node: '>= 10.13.0'}
peerDependencies: peerDependencies:
@ -16008,12 +16008,12 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.20 '@jridgewell/trace-mapping': 0.3.20
'@swc/core': 1.4.2 '@swc/core': 1.4.4
jest-worker: 27.5.1 jest-worker: 27.5.1
schema-utils: 3.3.0 schema-utils: 3.3.0
serialize-javascript: 6.0.1 serialize-javascript: 6.0.1
terser: 5.27.0 terser: 5.27.0
webpack: 5.90.3(@swc/core@1.4.2) webpack: 5.90.3(@swc/core@1.4.4)
dev: true dev: true
/terser@5.19.2: /terser@5.19.2:
@ -16335,10 +16335,10 @@ packages:
semver: 7.6.0 semver: 7.6.0
source-map: 0.7.4 source-map: 0.7.4
typescript: 5.3.3 typescript: 5.3.3
webpack: 5.90.3(@swc/core@1.4.2) webpack: 5.90.3(@swc/core@1.4.4)
dev: true dev: true
/ts-node@10.9.2(@swc/core@1.4.2)(@types/node@20.11.24)(typescript@5.3.3): /ts-node@10.9.2(@swc/core@1.4.4)(@types/node@20.11.24)(typescript@5.3.3):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -16353,7 +16353,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@cspotcode/source-map-support': 0.8.1 '@cspotcode/source-map-support': 0.8.1
'@swc/core': 1.4.2 '@swc/core': 1.4.4
'@tsconfig/node10': 1.0.9 '@tsconfig/node10': 1.0.9
'@tsconfig/node12': 1.0.11 '@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3 '@tsconfig/node14': 1.0.3
@ -16641,7 +16641,7 @@ packages:
pg: 8.11.3 pg: 8.11.3
reflect-metadata: 0.2.1 reflect-metadata: 0.2.1
sha.js: 2.4.11 sha.js: 2.4.11
ts-node: 10.9.2(@swc/core@1.4.2)(@types/node@20.11.24)(typescript@5.3.3) ts-node: 10.9.2(@swc/core@1.4.4)(@types/node@20.11.24)(typescript@5.3.3)
tslib: 2.6.1 tslib: 2.6.1
uuid: 9.0.1 uuid: 9.0.1
yargs: 17.7.2 yargs: 17.7.2
@ -16985,7 +16985,7 @@ packages:
replace-ext: 1.0.1 replace-ext: 1.0.1
dev: false dev: false
/vite-plugin-compression@0.5.1(vite@5.1.4): /vite-plugin-compression@0.5.1(vite@5.1.5):
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies: peerDependencies:
vite: '>=2.0.0' vite: '>=2.0.0'
@ -16993,13 +16993,13 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@8.1.1)
fs-extra: 10.1.0 fs-extra: 10.1.0
vite: 5.1.4(@types/node@20.11.24)(sass@1.71.1) vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/vite@5.1.4(@types/node@20.11.24)(sass@1.71.1): /vite@5.1.5(@types/node@20.11.24)(sass@1.71.1):
resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -17209,7 +17209,7 @@ packages:
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
dev: true dev: true
/webpack@5.90.3(@swc/core@1.4.2): /webpack@5.90.3(@swc/core@1.4.4):
resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
hasBin: true hasBin: true
@ -17240,7 +17240,7 @@ packages:
neo-async: 2.6.2 neo-async: 2.6.2
schema-utils: 3.3.0 schema-utils: 3.3.0
tapable: 2.2.1 tapable: 2.2.1
terser-webpack-plugin: 5.3.10(@swc/core@1.4.2)(webpack@5.90.3) terser-webpack-plugin: 5.3.10(@swc/core@1.4.4)(webpack@5.90.3)
watchpack: 2.4.0 watchpack: 2.4.0
webpack-sources: 3.2.3 webpack-sources: 3.2.3
transitivePeerDependencies: transitivePeerDependencies: