From 8db2411cd43a23ae3292a817e3524cfdb5ae9b86 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 08:14:10 +0100 Subject: [PATCH 01/83] feat: add Bulgarian language Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> Co-authored-by: Henrique Dias --- .../src/components/settings/Languages.vue | 13 +- frontend/src/i18n/bg.json | 272 ++++++++++++++++++ frontend/src/i18n/index.ts | 9 +- 3 files changed, 286 insertions(+), 8 deletions(-) create mode 100644 frontend/src/i18n/bg.json diff --git a/frontend/src/components/settings/Languages.vue b/frontend/src/components/settings/Languages.vue index f4e4090e..72968511 100644 --- a/frontend/src/components/settings/Languages.vue +++ b/frontend/src/components/settings/Languages.vue @@ -15,10 +15,8 @@ export default { data() { const dataObj = {}; const locales = { - he: "עברית", - hr: "Hrvatski", - hu: "Magyar", ar: "العربية", + bg: "български език", ca: "Català", cs: "Čeština", de: "Deutsch", @@ -26,15 +24,18 @@ export default { en: "English", es: "Español", fr: "Français", + he: "עברית", + hr: "Hrvatski", + hu: "Magyar", is: "Icelandic", it: "Italiano", ja: "日本語", ko: "한국어", - "nl-be": "Dutch (Belgium)", no: "Norsk", + "nl-be": "Dutch (Belgium)", pl: "Polski", - "pt-br": "Português", - pt: "Português (Brasil)", + "pt-br": "Português (Brasil)", + pt: "Português (Portugal)", ro: "Romanian", ru: "Русский", sk: "Slovenčina", diff --git a/frontend/src/i18n/bg.json b/frontend/src/i18n/bg.json new file mode 100644 index 00000000..82fa6b1b --- /dev/null +++ b/frontend/src/i18n/bg.json @@ -0,0 +1,272 @@ +{ + "buttons": { + "cancel": "Отмени", + "clear": "Изчисти", + "close": "Затвори", + "continue": "Продължи", + "copy": "Копирай", + "copyFile": "Копирай файл", + "copyToClipboard": "Копирай в клипборда", + "copyDownloadLinkToClipboard": "Копирай линк за сваляне в клипборда", + "create": "Създай", + "delete": "Изтрий", + "download": "Свали", + "file": "Файл", + "folder": "Папка", + "fullScreen": "Превключване на цял екран", + "hideDotfiles": "Скрий файлове започващи с точка", + "info": "Информация", + "more": "Повече", + "move": "Премести", + "moveFile": "Премести файл", + "new": "Нов", + "next": "Следващ", + "ok": "Потвърди", + "permalink": "Вземи постоянен линк", + "previous": "Предишен", + "preview": "Преглед", + "publish": "Публикуване", + "rename": "Преименуване", + "replace": "Замяна", + "reportIssue": "Докладвай проблем", + "save": "Запис", + "schedule": "График", + "search": "Търсене", + "select": "Избери", + "selectMultiple": "Избери няколко", + "share": "Сподели", + "shell": "Превключване на терминала", + "submit": "Изпрати", + "switchView": "Смени изгледа", + "toggleSidebar": "Превключване на страничен панел", + "update": "Обнови", + "upload": "Качи", + "openFile": "Отвори файл", + "discardChanges": "Изчисти", + "saveChanges": "Запиши промените" + }, + "download": { + "downloadFile": "Свали файл", + "downloadFolder": "Свали папка", + "downloadSelected": "Свали избраното" + }, + "upload": { + "abortUpload": "Сигурни ли сте, че искате да прекратите?" + }, + "errors": { + "forbidden": "Нямате право на достъп.", + "internal": "Взникна грешка.", + "notFound": "Локацията не може да бъде достигната.", + "connection": "Сървъра не може да бъде достигнат." + }, + "files": { + "body": "Тяло", + "closePreview": "Затвори прегледа", + "files": "Файлове", + "folders": "Папки", + "home": "Начало", + "lastModified": "Последна промяна", + "loading": "Зареждане ...", + "lonely": "Тук е самотно ...", + "metadata": "Метаданни", + "multipleSelectionEnabled": "Множествения избор е разрешен", + "name": "Име", + "size": "Размер", + "sortByLastModified": "Подредба по последна промяна", + "sortByName": "Подредба по име", + "sortBySize": "Подредба по размер", + "noPreview": "За този файл не е наличен преглед." + }, + "help": { + "click": "избери файл или директория", + "ctrl": { + "click": "избери файлове или директории", + "f": "отваря търсене", + "s": "запиши файл или свари директория тук" + }, + "del": "изтрий избраните", + "doubleClick": "отвори файл или директория", + "esc": "изтрий избраното и/или затвори", + "f1": "тази информация", + "f2": "преименувай файл", + "help": "Помощ" + }, + "login": { + "createAnAccount": "Създай акаунт", + "loginInstead": "Вече имаш акаунт", + "password": "Парола", + "passwordConfirm": "Парола Потвърждение", + "passwordsDontMatch": "Паролите не съвпадат", + "signup": "Абониране", + "submit": "Вход", + "username": "Потребителско име", + "usernameTaken": "Потребителското име вече се използва", + "wrongCredentials": "Грешни потребителско име и/или парола", + "logout_reasons": { + "inactivity": "Бяхте разлогнати поради неактивност" + } + }, + "permanent": "Постоянен", + "prompts": { + "copy": "Копирай", + "copyMessage": "Избери къде да копираш файловете си:", + "currentlyNavigating": "В момента навигира към:", + "deleteMessageMultiple": "Сигурни ли сте, че искате да изтриете {count} файл(а)?", + "deleteMessageSingle": "Сигурни ли сте, че искате да изтриете този файл/папка?", + "deleteMessageShare": "Сигурни ли сте, че искате на изтриете това споделяне({path})?", + "deleteUser": "Сигурни ли сте, че искате да изтриете този потребител?", + "deleteTitle": "Изтрий файлове", + "displayName": "Име за показване:", + "download": "Свали файлове", + "downloadMessage": "Изберете формата, в който искате да свалите.", + "error": "Възникна грешка", + "fileInfo": "Информация за файла", + "filesSelected": "Избрани са {count} файла.", + "lastModified": "Последна промяна", + "move": "Премести", + "moveMessage": "Избери ново място за вашите файл(ове)/папк(а/и):", + "newArchetype": "Създай нова публикация базирана на шаблон. Вашия файл ще бъде създаден в папката за съдържание.", + "newDir": "Нова директория", + "newDirMessage": "Именувайте вашата нова директория.", + "newFile": "Нов файл", + "newFileMessage": "Именувайте вашия нов файл.", + "numberDirs": "Брой на директорийте", + "numberFiles": "Брой на файловете", + "rename": "Преименувай", + "renameMessage": "Вмъкни ново име за", + "replace": "Замени", + "replaceMessage": "Файл, които се опитвате да качите има конфликтно име. Искате ли да го пропуснете и да продължите качването или да замените съществуващия файл?\n", + "schedule": "График", + "scheduleMessage": "Изберете дата и час за публикуване на тази публикация.", + "show": "Покажи", + "size": "Размер", + "upload": "Качване", + "uploadFiles": "Качване на {files} файла...", + "uploadMessage": "Изберете опция за качване.", + "optionalPassword": "Опционална парола", + "resolution": "Резолюция", + "discardEditorChanges": "Сигурни ли сте, че искате да откажете направените промени?" + }, + "search": { + "images": "Изображения", + "music": "Музика", + "pdf": "PDF", + "pressToSearch": "За търсене, натиснете Enter ...", + "search": "Търсене ...", + "typeToSearch": "Пишете за търсене ...", + "types": "Типове", + "video": "Видео" + }, + "settings": { + "aceEditorTheme": "Тема на \"Ace редактор\"", + "admin": "Админ", + "administrator": "Администратор", + "allowCommands": "Изпълни команди", + "allowEdit": "Редактира, преименува и изтрива файлове и директории", + "allowNew": "Създава нови файлове и директорий", + "allowPublish": "Публикува нови публикации и страници", + "allowSignup": "Разреши потребителите да се абонират", + "hideLoginButton": "Скрий логин бутона от публичните страници", + "avoidChanges": "(остави празно за да избегнеш промени)", + "branding": "Брандиране", + "brandingDirectoryPath": "Брандиране - път до директория", + "brandingHelp": "Можете да настроите как изглежда вашия File Browser, като промените името и логото му, да добавите стилове и дори да забраните външни линкове към GitHub.\nЗа повече информация за бандиране се обърнете към {0}", + "changePassword": "Промени парола", + "commandRunner": "Изпълнение на команди", + "commandRunnerHelp": "Тук можете да зададете команди, които да се изпълнят при определени събития. Пишете по една команда на ред. Системните променливите {0} и {1} ще са на разположение, като {0} е релативна на {1}. За повече информация относно тази възможност и наличните системни променливи, моля прочетете {2}.", + "commandsUpdated": "Командите са запаметени!", + "createUserDir": "Създай автоматично собствена директория на потребителя, когато го добавяш.", + "minimumPasswordLength": "Минимална дължина на паролата", + "tusUploads": "Качване на части", + "tusUploadsHelp": "File Browser поддържа качване на части, което позволява съзадавнето на ефективно, надеждно, и възобновяемо качване на части дори и при ненадеждна мрежа.", + "tusUploadsChunkSize": "Максимален размер на заявката (за малки качвания ще бъдат използвано директо качване). Можете да въведете цяло число, което означава размера на данните в байтове, или пък текст от вида на 10MB, 1GB и т.н..", + "tusUploadsRetryCount": "Брой повторения, когато част от файл не се качи успешно.", + "userHomeBasePath": "Основен път до личните директории на потребителите", + "userScopeGenerationPlaceholder": "Обхватът ще бъде автоматично генериран", + "createUserHomeDirectory": "Създай лична директория на потребителя", + "customStylesheet": "Потребителски Стилове", + "defaultUserDescription": "Настройки по подразбиране за нови потребители.", + "disableExternalLinks": "Забрани външните връзки (с изключение на документацията)", + "disableUsedDiskPercentage": "Забрани графиката за използване на диска", + "documentation": "документация", + "examples": "Примери", + "executeOnShell": "Изпълни в шела", + "executeOnShellDescription": "По подразбиране, File Browser изпълнява командите директно. Ако искате да ги изпълните в сесия (като Bash или PowerShell), можете да я дефинирате тук заедно с необходимите аргументи и флагове. Ако това е зададено, командата която изпълните ще бъде добавена като аргумент. Това се отнася както за потребителски команди, така и за обработка на събития.", + "globalRules": "Това е общия списък от правила за разрешения или забрани. Те са приложими за всеки потребител. Можете да дефинирате специфични правила в настройките на всеки потребител, които ще имат приоритет над общите.", + "globalSettings": "Глобални Настройки", + "hideDotfiles": "Скрий фаловете започващи с точка", + "insertPath": "Вмъкни пътя", + "insertRegex": "Вмъкни регулярен израз", + "instanceName": "Име на инстанцията", + "language": "Език", + "lockPassword": "Забрани на потребителя да променя паролата", + "newPassword": "Вашата нова парола", + "newPasswordConfirm": "Потвърди вашата нова парола", + "newUser": "Нов потребител", + "password": "Парола", + "passwordUpdated": "Паролата е променена!", + "path": "Път", + "perm": { + "create": "Създаване на файлове и директорий", + "delete": "Изтриване на файлове и директорий", + "download": "Сваляне", + "execute": "Изпълни команди", + "modify": "Редактирай файлове", + "rename": "Преименувай или премести файлове и директорий", + "share": "Сподели файлове" + }, + "permissions": "Разрешения", + "permissionsHelp": "Можете да зададете потребител да бъде администратор или да изберете разрешения индивидуално. Ако изберете \"Администратор\" всички други опции ще бъдат автоматично отметнати. Управлението на потребителите е привилегия на администратор.\n", + "profileSettings": "Настройки на Профила", + "ruleExample1": "предотвратете достъпа до всеки файл започващ с точка (като .git, .gitignore) във всяка папка.\n", + "ruleExample2": "блокира достъпа до файл именуван Caddyfile поставен в началото за обхвата.", + "rules": "Правила", + "rulesHelp": "Тук можете да дефинирате списък от правила за разрешаване и забрана за точно този потребител. Блокираните файлове няма да се покажат в списъците и няма да са достъпни за потребителя. Поддържаме регулярни изрази и пътища релативни на обхвата.\n", + "scope": "Обхват", + "setDateFormat": "Задайте точен формат на дата", + "settingsUpdated": "Настройките са обновени!", + "shareDuration": "Продължителност на споделянето", + "shareManagement": "Управление на споделянето", + "shareDeleted": "Споделянето е премахнато!", + "singleClick": "Използвайте единичен клик за да отворите файлове или директорий", + "themes": { + "default": "Настройки по подразбиране", + "dark": "Тъмна", + "light": "Светла", + "title": "Тема" + }, + "user": "Потребител", + "userCommands": "Команди", + "userCommandsHelp": "Списък разделен с интервал от наличните команди за този потребител.\n", + "userCreated": "Потребителя е създаден!", + "userDefaults": "Настройки по подразбиране на потребителя", + "userDeleted": "Потребителя е изтрит!", + "userManagement": "Управление на потребители", + "userUpdated": "Потребителя е обновен!", + "username": "Потребителско име", + "users": "Потребители" + }, + "sidebar": { + "help": "Помощ", + "hugoNew": "Hugo New", + "login": "Вход", + "logout": "Изход", + "myFiles": "Моите файлове", + "newFile": "Нов файл", + "newFolder": "Нова папка", + "preview": "Преглед", + "settings": "Настройки", + "signup": "Абониране", + "siteSettings": "Настройки на сървъра" + }, + "success": { + "linkCopied": "Връзката е копирана!" + }, + "time": { + "days": "Дни", + "hours": "Часове", + "minutes": "Минути", + "seconds": "Секунди", + "unit": "Единица за време" + } +} diff --git a/frontend/src/i18n/index.ts b/frontend/src/i18n/index.ts index a276ee9d..d576d183 100644 --- a/frontend/src/i18n/index.ts +++ b/frontend/src/i18n/index.ts @@ -2,6 +2,8 @@ import dayjs from "dayjs"; import { createI18n } from "vue-i18n"; import("dayjs/locale/ar"); +import("dayjs/locale/bg"); +import("dayjs/locale/cs"); import("dayjs/locale/de"); import("dayjs/locale/el"); import("dayjs/locale/en"); @@ -14,6 +16,7 @@ import("dayjs/locale/is"); import("dayjs/locale/it"); import("dayjs/locale/ja"); import("dayjs/locale/ko"); +import("dayjs/locale/nb"); import("dayjs/locale/nl-be"); import("dayjs/locale/pl"); import("dayjs/locale/pt-br"); @@ -27,8 +30,6 @@ import("dayjs/locale/uk"); import("dayjs/locale/vi"); import("dayjs/locale/zh-cn"); import("dayjs/locale/zh-tw"); -import("dayjs/locale/cs"); -import("dayjs/locale/nb"); // All i18n resources specified in the plugin `include` option can be loaded // at once using the import syntax @@ -109,6 +110,7 @@ export function detectLocale() { case /^uk\b/.test(locale): locale = "uk"; break; + case /^vi\b/.test(locale): locale = "vi"; break; @@ -123,6 +125,9 @@ export function detectLocale() { case /^no\b/.test(locale): locale = "no"; break; + case /^bg\b/.test(locale): + locale = "bg"; + break; default: locale = "en"; } From a3b5584505a5430aa9facfaa2025826259533010 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 08:14:22 +0100 Subject: [PATCH 02/83] chore(deps): update dependency @vitejs/plugin-vue to v6.0.2 (#5564) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- frontend/pnpm-lock.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 782f7987..9feb6b3b 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -116,7 +116,7 @@ importers: version: 7.2.1(terser@5.44.1)(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0)) '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3)) + version: 6.0.2(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3)) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.39.1)(prettier@3.6.2) @@ -965,8 +965,8 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@rolldown/pluginutils@1.0.0-beta.29': - resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} + '@rolldown/pluginutils@1.0.0-beta.50': + resolution: {integrity: sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==} '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} @@ -1276,8 +1276,8 @@ packages: terser: ^5.16.0 vite: ^7.0.0 - '@vitejs/plugin-vue@6.0.1': - resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} + '@vitejs/plugin-vue@6.0.2': + resolution: {integrity: sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -3452,7 +3452,7 @@ snapshots: '@pkgr/core@0.2.9': {} - '@rolldown/pluginutils@1.0.0-beta.29': {} + '@rolldown/pluginutils@1.0.0-beta.50': {} '@rollup/pluginutils@5.3.0(rollup@4.52.5)': dependencies: @@ -3809,9 +3809,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.1(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.2(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3))': dependencies: - '@rolldown/pluginutils': 1.0.0-beta.29 + '@rolldown/pluginutils': 1.0.0-beta.50 vite: 7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) vue: 3.5.24(typescript@5.9.3) From 6d5aa355e433d613e5a3ae137f410c63baeddf0f Mon Sep 17 00:00:00 2001 From: Brian Fromm <69060375+brianfromm@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:42:50 -0700 Subject: [PATCH 03/83] fix: display friendly error message for password validation on signup (#5563) Co-authored-by: Claude --- frontend/src/i18n/en.json | 1 + frontend/src/utils/auth.ts | 6 +++++- frontend/src/views/Login.vue | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index 9272cff4..d7299444 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -102,6 +102,7 @@ "username": "Username", "usernameTaken": "Username already taken", "wrongCredentials": "Wrong credentials", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/utils/auth.ts b/frontend/src/utils/auth.ts index 57e665ea..dcd1cdc5 100644 --- a/frontend/src/utils/auth.ts +++ b/frontend/src/utils/auth.ts @@ -101,7 +101,11 @@ export async function signup(username: string, password: string) { }); if (res.status !== 200) { - throw new StatusError(`${res.status} ${res.statusText}`, res.status); + const body = await res.text(); + throw new StatusError( + body || `${res.status} ${res.statusText}`, + res.status + ); } } diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue index c0e78225..c7f64a5b 100644 --- a/frontend/src/views/Login.vue +++ b/frontend/src/views/Login.vue @@ -112,6 +112,13 @@ const submit = async (event: Event) => { error.value = t("login.usernameTaken"); } else if (e.status === 403) { error.value = t("login.wrongCredentials"); + } else if (e.status === 400) { + const match = e.message.match(/minimum length is (\d+)/); + if (match) { + error.value = t("login.passwordTooShort", { min: match[1] }); + } else { + error.value = e.message; + } } else { $showError(e); } From 5df5508a856ba4e46702aff77ad334c8c99c9ffe Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 20 Nov 2025 07:56:56 +0100 Subject: [PATCH 04/83] chore: add govet, gocritic and revive --- .golangci.yml | 5 +++++ cmd/docs.go | 2 +- cmd/root.go | 4 ++-- cmd/utils.go | 11 ++++++----- diskcache/file_cache_test.go | 6 +++--- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 32d944f3..8819f48b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -2,8 +2,13 @@ version: "2" linters: default: standard + enable: + - gocritic + - govet + - revive exclusions: presets: - std-error-handling + - comments paths: - frontend/ diff --git a/cmd/docs.go b/cmd/docs.go index 7f4f536e..d65a29be 100644 --- a/cmd/docs.go +++ b/cmd/docs.go @@ -35,7 +35,7 @@ var docsCmd = &cobra.Command{ rootCmd.Root().DisableAutoGenTag = true - err = doc.GenMarkdownTreeCustom(cmd.Root(), tempDir, func(f string) string { + err = doc.GenMarkdownTreeCustom(cmd.Root(), tempDir, func(_ string) string { return "" }, func(s string) string { return s diff --git a/cmd/root.go b/cmd/root.go index b0ccd8f5..dd91c1b2 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -54,7 +54,7 @@ var ( ) // TODO(remove): remove after July 2026. -func migrateFlagNames(f *pflag.FlagSet, name string) pflag.NormalizedName { +func migrateFlagNames(_ *pflag.FlagSet, name string) pflag.NormalizedName { if newName, ok := flagNamesMigrations[name]; ok { if !warnedFlags[name] { @@ -146,7 +146,7 @@ The precedence of the configuration values are as follows: Also, if the database path doesn't exist, File Browser will enter into the quick setup mode and a new database will be bootstrapped and a new user created with the credentials from options "username" and "password".`, - RunE: withViperAndStore(func(cmd *cobra.Command, _ []string, v *viper.Viper, st *store) error { + RunE: withViperAndStore(func(_ *cobra.Command, _ []string, v *viper.Viper, st *store) error { if !st.databaseExisted { err := quickSetup(v, st.Storage) if err != nil { diff --git a/cmd/utils.go b/cmd/utils.go index eb953d32..ee637fa3 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -160,13 +160,14 @@ func withViperAndStore(fn func(cmd *cobra.Command, args []string, v *viper.Viper } exists, err := dbExists(path) - if err != nil { + switch { + case err != nil: return err - } else if exists && options.expectsNoDatabase { + case exists && options.expectsNoDatabase: log.Fatal(path + " already exists") - } else if !exists && !options.expectsNoDatabase && !options.allowsNoDatabase { + case !exists && !options.expectsNoDatabase && !options.allowsNoDatabase: log.Fatal(path + " does not exist. Please run 'filebrowser config init' first.") - } else if !exists && !options.expectsNoDatabase { + case !exists && !options.expectsNoDatabase: log.Println("WARNING: filebrowser.db can't be found. Initialing in " + strings.TrimSuffix(path, "filebrowser.db")) } @@ -193,7 +194,7 @@ func withViperAndStore(fn func(cmd *cobra.Command, args []string, v *viper.Viper } func withStore(fn func(cmd *cobra.Command, args []string, store *store) error, options storeOptions) cobraFunc { - return withViperAndStore(func(cmd *cobra.Command, args []string, v *viper.Viper, store *store) error { + return withViperAndStore(func(cmd *cobra.Command, args []string, _ *viper.Viper, store *store) error { return fn(cmd, args, store) }, options) } diff --git a/diskcache/file_cache_test.go b/diskcache/file_cache_test.go index 9a41052e..c6c750c0 100644 --- a/diskcache/file_cache_test.go +++ b/diskcache/file_cache_test.go @@ -25,12 +25,12 @@ func TestFileCache(t *testing.T) { // store new key err := cache.Store(ctx, key, []byte(value)) require.NoError(t, err) - checkValue(t, ctx, fs, filepath.Join(cacheRoot, cachedFilePath), cache, key, value) + checkValue(ctx, t, fs, filepath.Join(cacheRoot, cachedFilePath), cache, key, value) // update existing key err = cache.Store(ctx, key, []byte(newValue)) require.NoError(t, err) - checkValue(t, ctx, fs, filepath.Join(cacheRoot, cachedFilePath), cache, key, newValue) + checkValue(ctx, t, fs, filepath.Join(cacheRoot, cachedFilePath), cache, key, newValue) // delete key err = cache.Delete(ctx, key) @@ -40,7 +40,7 @@ func TestFileCache(t *testing.T) { require.False(t, exists) } -func checkValue(t *testing.T, ctx context.Context, fs afero.Fs, fileFullPath string, cache *FileCache, key, wantValue string) { +func checkValue(ctx context.Context, t *testing.T, fs afero.Fs, fileFullPath string, cache *FileCache, key, wantValue string) { t.Helper() // check actual file content b, err := afero.ReadFile(fs, fileFullPath) From ab367a27407a06fe934278698f7ae296e4e1584a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 09:58:37 +0100 Subject: [PATCH 05/83] chore(deps): update all non-major dependencies (#5567) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- frontend/pnpm-lock.yaml | 438 ++++++++++++++++++++-------------------- go.mod | 4 +- go.sum | 8 +- 3 files changed, 225 insertions(+), 225 deletions(-) diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 9feb6b3b..39576330 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -98,7 +98,7 @@ importers: devDependencies: '@intlify/unplugin-vue-i18n': specifier: ^11.0.1 - version: 11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) + version: 11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) '@tsconfig/node24': specifier: ^24.0.2 version: 24.0.3 @@ -113,10 +113,10 @@ importers: version: 8.47.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) '@vitejs/plugin-legacy': specifier: ^7.2.1 - version: 7.2.1(terser@5.44.1)(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0)) + version: 7.2.1(terser@5.44.1)(vite@7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0)) '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.2(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3)) + version: 6.0.2(vite@7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3)) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.39.1)(prettier@3.6.2) @@ -155,10 +155,10 @@ importers: version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) + version: 7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) vite-plugin-compression2: specifier: ^2.3.1 - version: 2.3.1(rollup@4.52.5) + version: 2.3.1(rollup@4.53.3) vue-tsc: specifier: ^3.1.3 version: 3.1.4(typescript@5.9.3) @@ -665,158 +665,158 @@ packages: peerDependencies: vue: ^3.0.0 - '@esbuild/aix-ppc64@0.25.11': - resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.11': - resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.11': - resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.11': - resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.11': - resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.11': - resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.11': - resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.11': - resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.11': - resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.11': - resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.11': - resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.11': - resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.11': - resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.11': - resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.11': - resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.11': - resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.11': - resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.11': - resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.11': - resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.11': - resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.11': - resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.11': - resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.11': - resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.11': - resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.11': - resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.11': - resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -977,113 +977,113 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.52.5': - resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + '@rollup/rollup-android-arm-eabi@4.53.3': + resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.52.5': - resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + '@rollup/rollup-android-arm64@4.53.3': + resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.52.5': - resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + '@rollup/rollup-darwin-arm64@4.53.3': + resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.52.5': - resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + '@rollup/rollup-darwin-x64@4.53.3': + resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.52.5': - resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + '@rollup/rollup-freebsd-arm64@4.53.3': + resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.52.5': - resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + '@rollup/rollup-freebsd-x64@4.53.3': + resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + '@rollup/rollup-linux-arm-musleabihf@4.53.3': + resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.52.5': - resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + '@rollup/rollup-linux-arm64-gnu@4.53.3': + resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.52.5': - resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + '@rollup/rollup-linux-arm64-musl@4.53.3': + resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.52.5': - resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + '@rollup/rollup-linux-loong64-gnu@4.53.3': + resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + '@rollup/rollup-linux-ppc64-gnu@4.53.3': + resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + '@rollup/rollup-linux-riscv64-gnu@4.53.3': + resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.52.5': - resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + '@rollup/rollup-linux-riscv64-musl@4.53.3': + resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.52.5': - resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + '@rollup/rollup-linux-s390x-gnu@4.53.3': + resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.52.5': - resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + '@rollup/rollup-linux-x64-gnu@4.53.3': + resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.52.5': - resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + '@rollup/rollup-linux-x64-musl@4.53.3': + resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.52.5': - resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + '@rollup/rollup-openharmony-arm64@4.53.3': + resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.52.5': - resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + '@rollup/rollup-win32-arm64-msvc@4.53.3': + resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.52.5': - resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + '@rollup/rollup-win32-ia32-msvc@4.53.3': + resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.52.5': - resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + '@rollup/rollup-win32-x64-gnu@4.53.3': + resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.52.5': - resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + '@rollup/rollup-win32-x64-msvc@4.53.3': + resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==} cpu: [x64] os: [win32] @@ -1626,8 +1626,8 @@ packages: resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} - esbuild@0.25.11: - resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} hasBin: true @@ -2244,8 +2244,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.52.5: - resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + rollup@4.53.3: + resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2435,8 +2435,8 @@ packages: vite-plugin-compression2@2.3.1: resolution: {integrity: sha512-bnhLTsurtvOiiP6EMISIKVsOMCeTAjE6FJbyqQus3W4mtAxF7pCuC4puUIAiCgNs98tOCpqo6GIXJXTLufzIaw==} - vite@7.2.2: - resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==} + vite@7.2.4: + resolution: {integrity: sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3220,82 +3220,82 @@ snapshots: dependencies: vue: 3.5.24(typescript@5.9.3) - '@esbuild/aix-ppc64@0.25.11': + '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/android-arm64@0.25.11': + '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm@0.25.11': + '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-x64@0.25.11': + '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.25.11': + '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-x64@0.25.11': + '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.25.11': + '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.25.11': + '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/linux-arm64@0.25.11': + '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm@0.25.11': + '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-ia32@0.25.11': + '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-loong64@0.25.11': + '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-mips64el@0.25.11': + '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-ppc64@0.25.11': + '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.25.11': + '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-s390x@0.25.11': + '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-x64@0.25.11': + '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.25.11': + '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.25.11': + '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.25.11': + '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.25.11': + '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.25.11': + '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/sunos-x64@0.25.11': + '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/win32-arm64@0.25.11': + '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-ia32@0.25.11': + '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-x64@0.25.11': + '@esbuild/win32-x64@0.25.12': optional: true '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': @@ -3360,7 +3360,7 @@ snapshots: '@intlify/message-compiler': 11.1.12 '@intlify/shared': 11.1.12 acorn: 8.15.0 - esbuild: 0.25.11 + esbuild: 0.25.12 escodegen: 2.1.0 estree-walker: 2.0.2 jsonc-eslint-parser: 2.4.0 @@ -3381,13 +3381,13 @@ snapshots: '@intlify/shared@11.1.12': {} - '@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': + '@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) '@intlify/bundle-utils': 11.0.1(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3))) '@intlify/shared': 11.1.12 '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.24)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) - '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + '@rollup/pluginutils': 5.3.0(rollup@4.53.3) '@typescript-eslint/scope-manager': 8.46.4 '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3) debug: 4.4.3 @@ -3454,78 +3454,78 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.50': {} - '@rollup/pluginutils@5.3.0(rollup@4.52.5)': + '@rollup/pluginutils@5.3.0(rollup@4.53.3)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.5 + rollup: 4.53.3 - '@rollup/rollup-android-arm-eabi@4.52.5': + '@rollup/rollup-android-arm-eabi@4.53.3': optional: true - '@rollup/rollup-android-arm64@4.52.5': + '@rollup/rollup-android-arm64@4.53.3': optional: true - '@rollup/rollup-darwin-arm64@4.52.5': + '@rollup/rollup-darwin-arm64@4.53.3': optional: true - '@rollup/rollup-darwin-x64@4.52.5': + '@rollup/rollup-darwin-x64@4.53.3': optional: true - '@rollup/rollup-freebsd-arm64@4.52.5': + '@rollup/rollup-freebsd-arm64@4.53.3': optional: true - '@rollup/rollup-freebsd-x64@4.52.5': + '@rollup/rollup-freebsd-x64@4.53.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + '@rollup/rollup-linux-arm-gnueabihf@4.53.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.52.5': + '@rollup/rollup-linux-arm-musleabihf@4.53.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.52.5': + '@rollup/rollup-linux-arm64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.52.5': + '@rollup/rollup-linux-arm64-musl@4.53.3': optional: true - '@rollup/rollup-linux-loong64-gnu@4.52.5': + '@rollup/rollup-linux-loong64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.52.5': + '@rollup/rollup-linux-ppc64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.52.5': + '@rollup/rollup-linux-riscv64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-riscv64-musl@4.52.5': + '@rollup/rollup-linux-riscv64-musl@4.53.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.52.5': + '@rollup/rollup-linux-s390x-gnu@4.53.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.52.5': + '@rollup/rollup-linux-x64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-x64-musl@4.52.5': + '@rollup/rollup-linux-x64-musl@4.53.3': optional: true - '@rollup/rollup-openharmony-arm64@4.52.5': + '@rollup/rollup-openharmony-arm64@4.53.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.52.5': + '@rollup/rollup-win32-arm64-msvc@4.53.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.52.5': + '@rollup/rollup-win32-ia32-msvc@4.53.3': optional: true - '@rollup/rollup-win32-x64-gnu@4.52.5': + '@rollup/rollup-win32-x64-gnu@4.53.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.52.5': + '@rollup/rollup-win32-x64-msvc@4.53.3': optional: true '@tsconfig/node24@24.0.3': {} @@ -3790,7 +3790,7 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-legacy@7.2.1(terser@5.44.1)(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))': + '@vitejs/plugin-legacy@7.2.1(terser@5.44.1)(vite@7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) @@ -3805,14 +3805,14 @@ snapshots: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.44.1 - vite: 7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) + vite: 7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.2(vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.2(vite@7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0))(vue@3.5.24(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.50 - vite: 7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) + vite: 7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0) vue: 3.5.24(typescript@5.9.3) '@volar/language-core@2.4.23': @@ -4169,34 +4169,34 @@ snapshots: d: 1.0.2 ext: 1.7.0 - esbuild@0.25.11: + esbuild@0.25.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.11 - '@esbuild/android-arm': 0.25.11 - '@esbuild/android-arm64': 0.25.11 - '@esbuild/android-x64': 0.25.11 - '@esbuild/darwin-arm64': 0.25.11 - '@esbuild/darwin-x64': 0.25.11 - '@esbuild/freebsd-arm64': 0.25.11 - '@esbuild/freebsd-x64': 0.25.11 - '@esbuild/linux-arm': 0.25.11 - '@esbuild/linux-arm64': 0.25.11 - '@esbuild/linux-ia32': 0.25.11 - '@esbuild/linux-loong64': 0.25.11 - '@esbuild/linux-mips64el': 0.25.11 - '@esbuild/linux-ppc64': 0.25.11 - '@esbuild/linux-riscv64': 0.25.11 - '@esbuild/linux-s390x': 0.25.11 - '@esbuild/linux-x64': 0.25.11 - '@esbuild/netbsd-arm64': 0.25.11 - '@esbuild/netbsd-x64': 0.25.11 - '@esbuild/openbsd-arm64': 0.25.11 - '@esbuild/openbsd-x64': 0.25.11 - '@esbuild/openharmony-arm64': 0.25.11 - '@esbuild/sunos-x64': 0.25.11 - '@esbuild/win32-arm64': 0.25.11 - '@esbuild/win32-ia32': 0.25.11 - '@esbuild/win32-x64': 0.25.11 + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 escalade@3.2.0: {} @@ -4765,32 +4765,32 @@ snapshots: rfdc@1.4.1: {} - rollup@4.52.5: + rollup@4.53.3: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.5 - '@rollup/rollup-android-arm64': 4.52.5 - '@rollup/rollup-darwin-arm64': 4.52.5 - '@rollup/rollup-darwin-x64': 4.52.5 - '@rollup/rollup-freebsd-arm64': 4.52.5 - '@rollup/rollup-freebsd-x64': 4.52.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 - '@rollup/rollup-linux-arm-musleabihf': 4.52.5 - '@rollup/rollup-linux-arm64-gnu': 4.52.5 - '@rollup/rollup-linux-arm64-musl': 4.52.5 - '@rollup/rollup-linux-loong64-gnu': 4.52.5 - '@rollup/rollup-linux-ppc64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-musl': 4.52.5 - '@rollup/rollup-linux-s390x-gnu': 4.52.5 - '@rollup/rollup-linux-x64-gnu': 4.52.5 - '@rollup/rollup-linux-x64-musl': 4.52.5 - '@rollup/rollup-openharmony-arm64': 4.52.5 - '@rollup/rollup-win32-arm64-msvc': 4.52.5 - '@rollup/rollup-win32-ia32-msvc': 4.52.5 - '@rollup/rollup-win32-x64-gnu': 4.52.5 - '@rollup/rollup-win32-x64-msvc': 4.52.5 + '@rollup/rollup-android-arm-eabi': 4.53.3 + '@rollup/rollup-android-arm64': 4.53.3 + '@rollup/rollup-darwin-arm64': 4.53.3 + '@rollup/rollup-darwin-x64': 4.53.3 + '@rollup/rollup-freebsd-arm64': 4.53.3 + '@rollup/rollup-freebsd-x64': 4.53.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.3 + '@rollup/rollup-linux-arm-musleabihf': 4.53.3 + '@rollup/rollup-linux-arm64-gnu': 4.53.3 + '@rollup/rollup-linux-arm64-musl': 4.53.3 + '@rollup/rollup-linux-loong64-gnu': 4.53.3 + '@rollup/rollup-linux-ppc64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-musl': 4.53.3 + '@rollup/rollup-linux-s390x-gnu': 4.53.3 + '@rollup/rollup-linux-x64-gnu': 4.53.3 + '@rollup/rollup-linux-x64-musl': 4.53.3 + '@rollup/rollup-openharmony-arm64': 4.53.3 + '@rollup/rollup-win32-arm64-msvc': 4.53.3 + '@rollup/rollup-win32-ia32-msvc': 4.53.3 + '@rollup/rollup-win32-x64-gnu': 4.53.3 + '@rollup/rollup-win32-x64-msvc': 4.53.3 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4973,20 +4973,20 @@ snapshots: dependencies: global: 4.4.0 - vite-plugin-compression2@2.3.1(rollup@4.52.5): + vite-plugin-compression2@2.3.1(rollup@4.53.3): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + '@rollup/pluginutils': 5.3.0(rollup@4.53.3) tar-mini: 0.2.0 transitivePeerDependencies: - rollup - vite@7.2.2(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0): + vite@7.2.4(@types/node@24.10.1)(terser@5.44.1)(yaml@2.7.0): dependencies: - esbuild: 0.25.11 + esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.5 + rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.10.1 diff --git a/go.mod b/go.mod index abaeff87..e828455d 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/spf13/viper v1.21.0 github.com/stretchr/testify v1.11.1 github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce - golang.org/x/crypto v0.44.0 + golang.org/x/crypto v0.45.0 golang.org/x/image v0.33.0 golang.org/x/text v0.31.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 @@ -73,7 +73,7 @@ require ( go.etcd.io/bbolt v1.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org v0.0.0-20230225012048-214862532bf5 // indirect - golang.org/x/net v0.46.0 // indirect + golang.org/x/net v0.47.0 // indirect golang.org/x/sync v0.18.0 // indirect golang.org/x/sys v0.38.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect diff --git a/go.sum b/go.sum index 551f034e..443c885b 100644 --- a/go.sum +++ b/go.sum @@ -266,8 +266,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU= -golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -319,8 +319,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= -golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= From a360f26979d57dd39cb19568844fffecaa5655f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:54:40 +0100 Subject: [PATCH 06/83] chore(deps): update actions/checkout action to v6 (#5572) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 10 +++++----- .github/workflows/docs.yml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b389be5f..846b08f8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,7 +13,7 @@ jobs: name: Lint Frontend runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: pnpm/action-setup@v4 with: package_json_file: "frontend/package.json" @@ -31,7 +31,7 @@ jobs: name: Lint Backend runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: go-version: "1.25.x" @@ -43,7 +43,7 @@ jobs: name: Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: go-version: "1.25.x" @@ -53,7 +53,7 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: actions/setup-go@v6 @@ -77,7 +77,7 @@ jobs: if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: actions/setup-go@v6 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8eec9747..1f64177c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Install Task @@ -35,7 +35,7 @@ jobs: timeout-minutes: 5 steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Install Task From 43db19f8c886f97106fb10d55186a12cb3472d54 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 18:57:20 +0100 Subject: [PATCH 07/83] chore(deps): update all non-major dependencies (#5571) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- frontend/package.json | 2 +- frontend/pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index ade91ff1..cda46e5e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -71,5 +71,5 @@ "vite-plugin-compression2": "^2.3.1", "vue-tsc": "^3.1.3" }, - "packageManager": "pnpm@10.22.0+sha512.bf049efe995b28f527fd2b41ae0474ce29186f7edcb3bf545087bd61fbbebb2bf75362d1307fda09c2d288e1e499787ac12d4fcb617a974718a6051f2eee741c" + "packageManager": "pnpm@10.23.0+sha512.21c4e5698002ade97e4efe8b8b4a89a8de3c85a37919f957e7a0f30f38fbc5bbdd05980ffe29179b2fb6e6e691242e098d945d1601772cad0fef5fb6411e2a4b" } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 39576330..f3ebe665 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -43,7 +43,7 @@ importers: version: 4.17.21 marked: specifier: ^17.0.0 - version: 17.0.0 + version: 17.0.1 material-icons: specifier: ^1.13.14 version: 1.13.14 @@ -2003,8 +2003,8 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - marked@17.0.0: - resolution: {integrity: sha512-KkDYEWEEiYJw/KC+DVm1zzlpMQSMIu6YRltkcCvwheCp8HWPXCk9JwOmHJKBlGfzcpzcIt6x3sMnTsRm/51oDg==} + marked@17.0.1: + resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==} engines: {node: '>= 20'} hasBin: true @@ -4558,7 +4558,7 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - marked@17.0.0: {} + marked@17.0.1: {} marks-pane@1.0.9: {} From 88d1eecc4e9b4c5d7076ecb3c9971c272da287de Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 07:57:55 +0100 Subject: [PATCH 08/83] chore(deps): update dependency eslint-plugin-vue to v10.6.0 (#5573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- frontend/pnpm-lock.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index f3ebe665..3f4d405a 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -122,7 +122,7 @@ importers: version: 10.2.0(eslint@9.39.1)(prettier@3.6.2) '@vue/eslint-config-typescript': specifier: ^14.6.0 - version: 14.6.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)))(eslint@9.39.1)(typescript@5.9.3) + version: 14.6.0(eslint-plugin-vue@10.6.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)))(eslint@9.39.1)(typescript@5.9.3) '@vue/tsconfig': specifier: ^0.8.1 version: 0.8.1(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3)) @@ -140,7 +140,7 @@ importers: version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.6.2) eslint-plugin-vue: specifier: ^10.5.1 - version: 10.5.1(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) + version: 10.6.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) postcss: specifier: ^8.5.6 version: 8.5.6 @@ -1664,8 +1664,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-vue@10.5.1: - resolution: {integrity: sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==} + eslint-plugin-vue@10.6.0: + resolution: {integrity: sha512-TsoFluWxOpsJlE/l2jJygLQLWBPJ3Qdkesv7tBIunICbTcG0dS1/NBw/Ol4tJw5kHWlAVds4lUmC29/vlPUcEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -2144,8 +2144,8 @@ packages: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} hasBin: true - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -3886,11 +3886,11 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.6.0(eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)))(eslint@9.39.1)(typescript@5.9.3)': + '@vue/eslint-config-typescript@14.6.0(eslint-plugin-vue@10.6.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)))(eslint@9.39.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/utils': 8.37.0(eslint@9.39.1)(typescript@5.9.3) eslint: 9.39.1 - eslint-plugin-vue: 10.5.1(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) + eslint-plugin-vue: 10.6.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) fast-glob: 3.3.3 typescript-eslint: 8.37.0(eslint@9.39.1)(typescript@5.9.3) vue-eslint-parser: 10.2.0(eslint@9.39.1) @@ -4223,13 +4223,13 @@ snapshots: optionalDependencies: eslint-config-prettier: 10.1.8(eslint@9.39.1) - eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)): + eslint-plugin-vue@10.6.0(@typescript-eslint/parser@8.37.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) eslint: 9.39.1 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.0 semver: 7.7.3 vue-eslint-parser: 10.2.0(eslint@9.39.1) xml-name-validator: 4.0.0 @@ -4673,7 +4673,7 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 From 33deedf559b80436569282923662078ff2b6cee0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 15:06:10 +0100 Subject: [PATCH 09/83] chore(deps): update dependency vue-i18n to v11.2.1 (#5574) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- frontend/pnpm-lock.yaml | 56 +++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 3f4d405a..8b38a2a4 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -82,7 +82,7 @@ importers: version: 4.5.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(@vueuse/integrations@14.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(vue@3.5.24(typescript@5.9.3)))(focus-trap@7.6.2)(vue@3.5.24(typescript@5.9.3)) vue-i18n: specifier: ^11.1.10 - version: 11.1.12(vue@3.5.24(typescript@5.9.3)) + version: 11.2.1(vue@3.5.24(typescript@5.9.3)) vue-lazyload: specifier: ^3.0.0 version: 3.0.0 @@ -98,7 +98,7 @@ importers: devDependencies: '@intlify/unplugin-vue-i18n': specifier: ^11.0.1 - version: 11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) + version: 11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) '@tsconfig/node24': specifier: ^24.0.2 version: 24.0.3 @@ -887,18 +887,22 @@ packages: vue-i18n: optional: true - '@intlify/core-base@11.1.12': - resolution: {integrity: sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==} + '@intlify/core-base@11.2.1': + resolution: {integrity: sha512-2V1A4yaN9ElAnQ6ih3HHEc+jZ+sHV6BlQHjCsnIVlOotL5NCUgJElIxgUFiJs6zV4puoAq3hHuQIfWNp+J+8yQ==} engines: {node: '>= 16'} - '@intlify/message-compiler@11.1.12': - resolution: {integrity: sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==} + '@intlify/message-compiler@11.2.1': + resolution: {integrity: sha512-J2454D3Agg3Kvgaj14gxTleJU8/H06Sisz7C2BwiHF0/i5Soyfb5ySpwn8GCL6yscDbOGj6xM+lUe6gO6BFQyg==} engines: {node: '>= 16'} '@intlify/shared@11.1.12': resolution: {integrity: sha512-Om86EjuQtA69hdNj3GQec9ZC0L0vPSAnXzB3gP/gyJ7+mA7t06d9aOAiqMZ+xEOsumGP4eEBlfl8zF2LOTzf2A==} engines: {node: '>= 16'} + '@intlify/shared@11.2.1': + resolution: {integrity: sha512-O67LZM4dbfr70WCsZLW+g+pIXdgQ66laLVd/FicW7iYgP/RuH0X1FDGSh+Hr9Gou/8TeldUE6KmTGdLwX2ufIA==} + engines: {node: '>= 16'} + '@intlify/unplugin-vue-i18n@11.0.1': resolution: {integrity: sha512-nH5NJdNjy/lO6Ne8LDtZzv4SbpVsMhPE+LbvBDmMeIeJDiino8sOJN2QB3MXzTliYTnqe3aB9Fw5+LJ/XVaXCg==} engines: {node: '>= 20'} @@ -2492,8 +2496,8 @@ packages: focus-trap: '>=7.2.0' vue: '>=3.2.0' - vue-i18n@11.1.12: - resolution: {integrity: sha512-BnstPj3KLHLrsqbVU2UOrPmr0+Mv11bsUZG0PyCOzsawCivk8W00GMXHeVUWIDOgNaScCuZah47CZFE+Wnl8mw==} + vue-i18n@11.2.1: + resolution: {integrity: sha512-cc3Wx4eJZac9WMS8mxhfYiCipm9PBQ2Dz15piWYm7DwNcCehaKRgpolEdiqrjjT27T3Wijz3xJ7NeIc8ofIWAA==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 @@ -3355,9 +3359,9 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@intlify/bundle-utils@11.0.1(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))': + '@intlify/bundle-utils@11.0.1(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)))': dependencies: - '@intlify/message-compiler': 11.1.12 + '@intlify/message-compiler': 11.2.1 '@intlify/shared': 11.1.12 acorn: 8.15.0 esbuild: 0.25.12 @@ -3367,26 +3371,28 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.2.3 optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.24(typescript@5.9.3)) + vue-i18n: 11.2.1(vue@3.5.24(typescript@5.9.3)) - '@intlify/core-base@11.1.12': + '@intlify/core-base@11.2.1': dependencies: - '@intlify/message-compiler': 11.1.12 - '@intlify/shared': 11.1.12 + '@intlify/message-compiler': 11.2.1 + '@intlify/shared': 11.2.1 - '@intlify/message-compiler@11.1.12': + '@intlify/message-compiler@11.2.1': dependencies: - '@intlify/shared': 11.1.12 + '@intlify/shared': 11.2.1 source-map-js: 1.2.1 '@intlify/shared@11.1.12': {} - '@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': + '@intlify/shared@11.2.1': {} + + '@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.24)(eslint@9.39.1)(rollup@4.53.3)(typescript@5.9.3)(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) - '@intlify/bundle-utils': 11.0.1(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3))) + '@intlify/bundle-utils': 11.0.1(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3))) '@intlify/shared': 11.1.12 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.24)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.24)(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) '@rollup/pluginutils': 5.3.0(rollup@4.53.3) '@typescript-eslint/scope-manager': 8.46.4 '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3) @@ -3397,7 +3403,7 @@ snapshots: unplugin: 2.3.10 vue: 3.5.24(typescript@5.9.3) optionalDependencies: - vue-i18n: 11.1.12(vue@3.5.24(typescript@5.9.3)) + vue-i18n: 11.2.1(vue@3.5.24(typescript@5.9.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -3405,14 +3411,14 @@ snapshots: - supports-color - typescript - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.24)(vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.24)(vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))': dependencies: '@babel/parser': 7.28.5 optionalDependencies: '@intlify/shared': 11.1.12 '@vue/compiler-dom': 3.5.24 vue: 3.5.24(typescript@5.9.3) - vue-i18n: 11.1.12(vue@3.5.24(typescript@5.9.3)) + vue-i18n: 11.2.1(vue@3.5.24(typescript@5.9.3)) '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -5015,10 +5021,10 @@ snapshots: focus-trap: 7.6.2 vue: 3.5.24(typescript@5.9.3) - vue-i18n@11.1.12(vue@3.5.24(typescript@5.9.3)): + vue-i18n@11.2.1(vue@3.5.24(typescript@5.9.3)): dependencies: - '@intlify/core-base': 11.1.12 - '@intlify/shared': 11.1.12 + '@intlify/core-base': 11.2.1 + '@intlify/shared': 11.2.1 '@vue/devtools-api': 6.6.4 vue: 3.5.24(typescript@5.9.3) From 54306bdc8700fac489326ae81e28ac5db0580d13 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:36:03 +0100 Subject: [PATCH 10/83] feat: Updates for project File Browser (#5566) Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- frontend/src/i18n/ar.json | 1 + frontend/src/i18n/bg.json | 1 + frontend/src/i18n/ca.json | 1 + frontend/src/i18n/cs.json | 1 + frontend/src/i18n/de.json | 1 + frontend/src/i18n/el.json | 1 + frontend/src/i18n/es.json | 1 + frontend/src/i18n/fa.json | 1 + frontend/src/i18n/fr.json | 1 + frontend/src/i18n/he.json | 1 + frontend/src/i18n/hr.json | 1 + frontend/src/i18n/hu.json | 1 + frontend/src/i18n/is.json | 1 + frontend/src/i18n/it.json | 1 + frontend/src/i18n/ja.json | 1 + frontend/src/i18n/ko.json | 1 + frontend/src/i18n/nl-be.json | 1 + frontend/src/i18n/no.json | 1 + frontend/src/i18n/pl.json | 1 + frontend/src/i18n/pt-br.json | 1 + frontend/src/i18n/pt.json | 1 + frontend/src/i18n/ro.json | 1 + frontend/src/i18n/ru.json | 1 + frontend/src/i18n/sk.json | 1 + frontend/src/i18n/sv-se.json | 1 + frontend/src/i18n/tr.json | 1 + frontend/src/i18n/uk.json | 1 + frontend/src/i18n/vi.json | 1 + frontend/src/i18n/zh-cn.json | 1 + frontend/src/i18n/zh-tw.json | 1 + 30 files changed, 30 insertions(+) diff --git a/frontend/src/i18n/ar.json b/frontend/src/i18n/ar.json index ebf6a92b..5e736eaa 100644 --- a/frontend/src/i18n/ar.json +++ b/frontend/src/i18n/ar.json @@ -102,6 +102,7 @@ "username": "إسم المستخدم", "usernameTaken": "إسم المستخدم غير متاح", "wrongCredentials": "بيانات دخول خاطئة", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/bg.json b/frontend/src/i18n/bg.json index 82fa6b1b..e71fa87b 100644 --- a/frontend/src/i18n/bg.json +++ b/frontend/src/i18n/bg.json @@ -102,6 +102,7 @@ "username": "Потребителско име", "usernameTaken": "Потребителското име вече се използва", "wrongCredentials": "Грешни потребителско име и/или парола", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "Бяхте разлогнати поради неактивност" } diff --git a/frontend/src/i18n/ca.json b/frontend/src/i18n/ca.json index e895ca78..9c23e678 100644 --- a/frontend/src/i18n/ca.json +++ b/frontend/src/i18n/ca.json @@ -102,6 +102,7 @@ "username": "Usuari", "usernameTaken": "Nom d'usuari no disponible", "wrongCredentials": "Usuari i/o contrasenya incorrectes", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/cs.json b/frontend/src/i18n/cs.json index 2d84ced7..ba0119fc 100644 --- a/frontend/src/i18n/cs.json +++ b/frontend/src/i18n/cs.json @@ -102,6 +102,7 @@ "username": "Uživatelské jméno", "usernameTaken": "Uživatelské jméno již existuje", "wrongCredentials": "Nesprávné přihlašovací údaje", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json index 52cd2fc3..de34b6e2 100644 --- a/frontend/src/i18n/de.json +++ b/frontend/src/i18n/de.json @@ -102,6 +102,7 @@ "username": "Benutzername", "usernameTaken": "Benutzername ist bereits vergeben", "wrongCredentials": "Falsche Zugangsdaten", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/el.json b/frontend/src/i18n/el.json index 0d98e90a..1826047c 100644 --- a/frontend/src/i18n/el.json +++ b/frontend/src/i18n/el.json @@ -102,6 +102,7 @@ "username": "Όνομα χρήστη", "usernameTaken": "Το όνομα χρήστη χρησιμοποιείται ήδη", "wrongCredentials": "Λάθος όνομα ή/και κωδικός πρόσβασης", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/es.json b/frontend/src/i18n/es.json index 9d0b0b99..2ad3e6fd 100644 --- a/frontend/src/i18n/es.json +++ b/frontend/src/i18n/es.json @@ -102,6 +102,7 @@ "username": "Usuario", "usernameTaken": "Nombre usuario no disponible", "wrongCredentials": "Usuario y/o contraseña incorrectos", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/fa.json b/frontend/src/i18n/fa.json index f3b5bc17..db619924 100644 --- a/frontend/src/i18n/fa.json +++ b/frontend/src/i18n/fa.json @@ -102,6 +102,7 @@ "username": "نام کاربری", "usernameTaken": "نام کاربری تکراری", "wrongCredentials": "خطا در اعتبارسنجی", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/fr.json b/frontend/src/i18n/fr.json index 421d4cc4..b9bba59a 100644 --- a/frontend/src/i18n/fr.json +++ b/frontend/src/i18n/fr.json @@ -102,6 +102,7 @@ "username": "Utilisateur·ice", "usernameTaken": "Le nom d'utilisateur·ice est déjà pris", "wrongCredentials": "Identifiants incorrects !", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/he.json b/frontend/src/i18n/he.json index d932b0ae..29bc6842 100644 --- a/frontend/src/i18n/he.json +++ b/frontend/src/i18n/he.json @@ -102,6 +102,7 @@ "username": "שם משתמש", "usernameTaken": "שם המשתמש כבר קיים", "wrongCredentials": "פרטי התחברות שגויים", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/hr.json b/frontend/src/i18n/hr.json index 5c241daf..04bcfa2e 100644 --- a/frontend/src/i18n/hr.json +++ b/frontend/src/i18n/hr.json @@ -102,6 +102,7 @@ "username": "Korisničko ime", "usernameTaken": "Korisničko ime zauzeto", "wrongCredentials": "Neispravno korisničko ime/lozinka", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "Odjavljeni ste zbog neaktivnosti." } diff --git a/frontend/src/i18n/hu.json b/frontend/src/i18n/hu.json index 79396c72..565fb076 100644 --- a/frontend/src/i18n/hu.json +++ b/frontend/src/i18n/hu.json @@ -102,6 +102,7 @@ "username": "Felhasználói név", "usernameTaken": "A felhasználói név már foglalt", "wrongCredentials": "Hibás hitelesítő adatok", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/is.json b/frontend/src/i18n/is.json index e67a4bab..ac114dc9 100644 --- a/frontend/src/i18n/is.json +++ b/frontend/src/i18n/is.json @@ -102,6 +102,7 @@ "username": "Notendanafn", "usernameTaken": "Þetta norendanafn er þegar í notkun", "wrongCredentials": "Rangar notendaupplýsingar", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/it.json b/frontend/src/i18n/it.json index 7e04c40f..50170b70 100644 --- a/frontend/src/i18n/it.json +++ b/frontend/src/i18n/it.json @@ -102,6 +102,7 @@ "username": "Nome utente", "usernameTaken": "Username già usato", "wrongCredentials": "Credenziali errate", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/ja.json b/frontend/src/i18n/ja.json index bda66d09..870d38c7 100644 --- a/frontend/src/i18n/ja.json +++ b/frontend/src/i18n/ja.json @@ -102,6 +102,7 @@ "username": "ユーザー名", "usernameTaken": "ユーザー名はすでに取得されています", "wrongCredentials": "ユーザー名またはパスワードが間違っています", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/ko.json b/frontend/src/i18n/ko.json index 498c0812..cae58cae 100644 --- a/frontend/src/i18n/ko.json +++ b/frontend/src/i18n/ko.json @@ -102,6 +102,7 @@ "username": "사용자 이름", "usernameTaken": "사용자 이름이 존재합니다", "wrongCredentials": "사용자 이름 또는 비밀번호를 확인하십시오", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/nl-be.json b/frontend/src/i18n/nl-be.json index b587a79b..83bf3ce0 100644 --- a/frontend/src/i18n/nl-be.json +++ b/frontend/src/i18n/nl-be.json @@ -102,6 +102,7 @@ "username": "Gebruikersnaam", "usernameTaken": "Gebruikersnaam reeds in gebruik", "wrongCredentials": "Verkeerde inloggegevens", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/no.json b/frontend/src/i18n/no.json index b7a885eb..918ef19f 100644 --- a/frontend/src/i18n/no.json +++ b/frontend/src/i18n/no.json @@ -102,6 +102,7 @@ "username": "Brukernavn", "usernameTaken": "Brukernavn er allerede i bruk", "wrongCredentials": "Feil legitimasjon", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "Du har blitt logget ut på grunn av inaktivitet" } diff --git a/frontend/src/i18n/pl.json b/frontend/src/i18n/pl.json index e34c1c07..17790935 100644 --- a/frontend/src/i18n/pl.json +++ b/frontend/src/i18n/pl.json @@ -102,6 +102,7 @@ "username": "Nazwa użytkownika", "usernameTaken": "Ta nazwa użytkownika jest zajęta", "wrongCredentials": "Błędne dane logowania", + "passwordTooShort": "Wymagana minimalna liczba znaków hasła: {min}", "logout_reasons": { "inactivity": "Wylogowano z powodu braku aktywności." } diff --git a/frontend/src/i18n/pt-br.json b/frontend/src/i18n/pt-br.json index 54b8234b..f6ef04e6 100644 --- a/frontend/src/i18n/pt-br.json +++ b/frontend/src/i18n/pt-br.json @@ -102,6 +102,7 @@ "username": "Nome do usuário", "usernameTaken": "Nome de usuário já existe", "wrongCredentials": "Ops! Dados incorretos.", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/pt.json b/frontend/src/i18n/pt.json index fb44edba..38e5f89b 100644 --- a/frontend/src/i18n/pt.json +++ b/frontend/src/i18n/pt.json @@ -102,6 +102,7 @@ "username": "Nome de utilizador", "usernameTaken": "O nome de utilizador já está registado", "wrongCredentials": "Dados errados", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/ro.json b/frontend/src/i18n/ro.json index 92c40d20..a2072b2e 100644 --- a/frontend/src/i18n/ro.json +++ b/frontend/src/i18n/ro.json @@ -102,6 +102,7 @@ "username": "Utilizator", "usernameTaken": "Utilizatorul există", "wrongCredentials": "Informații greșite", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/ru.json b/frontend/src/i18n/ru.json index b3307f45..1cadeb3b 100644 --- a/frontend/src/i18n/ru.json +++ b/frontend/src/i18n/ru.json @@ -102,6 +102,7 @@ "username": "Имя пользователя", "usernameTaken": "Данное имя пользователя уже занято", "wrongCredentials": "Неверные данные", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/sk.json b/frontend/src/i18n/sk.json index 95a34486..9cb1c941 100644 --- a/frontend/src/i18n/sk.json +++ b/frontend/src/i18n/sk.json @@ -102,6 +102,7 @@ "username": "Používateľské meno", "usernameTaken": "Meno je už obsadené", "wrongCredentials": "Nesprávne prihlasovacie údaje", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "Boli ste odhlásení z dôvodu nečinnosti." } diff --git a/frontend/src/i18n/sv-se.json b/frontend/src/i18n/sv-se.json index e4e89911..4cced166 100644 --- a/frontend/src/i18n/sv-se.json +++ b/frontend/src/i18n/sv-se.json @@ -102,6 +102,7 @@ "username": "Användarnamn", "usernameTaken": "Användarnamn upptaget", "wrongCredentials": "Fel inloggning", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "Du har blivit utloggad på grund av inaktivitet." } diff --git a/frontend/src/i18n/tr.json b/frontend/src/i18n/tr.json index 6d3fbc5c..144cf73d 100644 --- a/frontend/src/i18n/tr.json +++ b/frontend/src/i18n/tr.json @@ -102,6 +102,7 @@ "username": "Kullanıcı adı", "usernameTaken": "Kullanıcı adı mevcut", "wrongCredentials": "Yanlış hesap bilgileri", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/uk.json b/frontend/src/i18n/uk.json index 3c78b228..465c0364 100644 --- a/frontend/src/i18n/uk.json +++ b/frontend/src/i18n/uk.json @@ -102,6 +102,7 @@ "username": "Ім'я користувача", "usernameTaken": "Ім'я користувача вже використовується", "wrongCredentials": "Неправильне ім'я користувача або пароль", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/vi.json b/frontend/src/i18n/vi.json index aa2a5279..77e7655e 100644 --- a/frontend/src/i18n/vi.json +++ b/frontend/src/i18n/vi.json @@ -102,6 +102,7 @@ "username": "Tên người dùng", "usernameTaken": "Tên người dùng đã tồn tại", "wrongCredentials": "Thông tin đăng nhập không đúng", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/zh-cn.json b/frontend/src/i18n/zh-cn.json index def97e9a..fd927ce3 100644 --- a/frontend/src/i18n/zh-cn.json +++ b/frontend/src/i18n/zh-cn.json @@ -102,6 +102,7 @@ "username": "用户名", "usernameTaken": "用户名已经被使用", "wrongCredentials": "用户名或密码错误", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } diff --git a/frontend/src/i18n/zh-tw.json b/frontend/src/i18n/zh-tw.json index 4644ad90..36828522 100644 --- a/frontend/src/i18n/zh-tw.json +++ b/frontend/src/i18n/zh-tw.json @@ -102,6 +102,7 @@ "username": "帳號", "usernameTaken": "用戶名已存在", "wrongCredentials": "帳號或密碼錯誤", + "passwordTooShort": "Password must be at least {min} characters", "logout_reasons": { "inactivity": "You have been logged out due to inactivity." } From d48f5665d6975c4cbbdf9be20dc2e0106db02f01 Mon Sep 17 00:00:00 2001 From: Kosmos <2153183+kosmosac@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:07:10 +0100 Subject: [PATCH 11/83] feat: add "copy download link to clipboard" button to Share prompt (#5173) Co-authored-by: Henrique Dias --- frontend/src/components/prompts/Share.vue | 40 +++++++++++++++++++---- frontend/src/css/styles.css | 5 +-- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/prompts/Share.vue b/frontend/src/components/prompts/Share.vue index 3ce2b1fd..282902fb 100644 --- a/frontend/src/components/prompts/Share.vue +++ b/frontend/src/components/prompts/Share.vue @@ -12,6 +12,7 @@ {{ $t("settings.shareDuration") }} + @@ -24,7 +25,7 @@ + + +