From 00ac560bd616cd5aeb18c6ed9087cd35ac2c7003 Mon Sep 17 00:00:00 2001 From: Levi Date: Wed, 1 Sep 2021 16:30:08 +0200 Subject: [PATCH 01/48] Create sv-SE.js --- src/languages/sv-SE.js | 110 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/languages/sv-SE.js diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js new file mode 100644 index 000000000..666851f64 --- /dev/null +++ b/src/languages/sv-SE.js @@ -0,0 +1,110 @@ +export default { + languageName: "Swedish", + checkEverySecond: "Uppdatera var {0} sekund.", + "Avg.": "Genomsnitt ", + retriesDescription: "Max antal försök innan tjänsten markeras som nere och en notis skickas", + ignoreTLSError: "Ignorera TLS/SSL-fel för webbsidor med HTTPS", + upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.", + maxRedirectDescription: "Max antal omdirigeringar att följa. Välj 0 för att avaktivera omdirigeringar.", + acceptedStatusCodesDescription: "Välj statuskoder som räknas som lyckade.", + passwordNotMatchMsg: "Det bekräftade lösenorder stämmer ej överens.", + notificationDescription: "Vänligen lägg till en notistjänst till övervakaren.", + keywordDescription: "Sök efter nyckelord i ren HTML eller JSON-svar. Sökningen är skiftkänslig.", + pauseDashboardHome: "Pausa", + deleteMonitorMsg: "Är du säker på att du vill ta bort den här övervakningen?", + deleteNotificationMsg: "Är du säker på att du vill ta bort den här notisen för alla övervakare?", + resoverserverDescription: "Cloudflare är den förvalda servern. Du kan byta resolver när som helst.", + rrtypeDescription: "Välj den RR-typ du vill övervaka", + pauseMonitorMsg: "Är du säker på att du vill pausa?", + Settings: "Inställningar", + Dashboard: "Infopanel", + "New Update": "Ny uppdatering", + Language: "Språk", + Appearance: "Utseende", + Theme: "Tema", + General: "Allmänt", + Version: "Version", + "Check Update On GitHub": "Sök efter uppdatering på GitHub", + List: "Lista", + Add: "Lägg till", + "Add New Monitor": "Lägg Till Ny Övervakare", + "Quick Stats": "Snabbstatistik", + Up: "Uppe", + Down: "Nere", + Pending: "Pågående", + Unknown: "Okänt", + Pause: "Paus", + Name: "Namn", + Status: "Status", + DateTime: "DatumTid", + Message: "Meddelande", + "No important events": "Inga viktiga händelser", + Resume: "Återuppta", + Edit: "Redigera", + Delete: "Ta bort", + Current: "Nuvarande", + Uptime: "Drifttid", + "Cert Exp.": "Certifikatsutgång", + days: "dagar", + day: "dag", + "-day": "-dag", + hour: "timme", + "-hour": "-timme", + Response: "Svar", + Ping: "Ping", + "Monitor Type": "Övervakningstyp", + Keyword: "Nyckelord", + "Friendly Name": "Vänligt Namn", + URL: "URL", + Hostname: "Värdnamn", + Port: "Port", + "Heartbeat Interval": "Hjärtslagsintervall", + Retries: "Försök", + Advanced: "Avancerat", + "Upside Down Mode": "Upp och ner-läge", + "Max. Redirects": "Max antal omdirigeringar", + "Accepted Status Codes": "Tillåtna statuskoder", + Save: "Spara", + Notifications: "Notiser", + "Not available, please setup.": "Ej tillgänglig, vänligen konfigurera.", + "Setup Notification": "Konfigurera Notis", + Light: "Ljust", + Dark: "Mörkt", + Auto: "Automatisk", + "Theme - Heartbeat Bar": "Tema - Heartbeat Bar", + Normal: "Normal", + Bottom: "Botten", + None: "Ingen", + Timezone: "Tidszon", + "Search Engine Visibility": "Synlighet på Sökmotorer", + "Allow indexing": "Tillåt indexering", + "Discourage search engines from indexing site": "Hindra sökmotorer från att indexera sidan", + "Change Password": "Byt Lösenord", + "Current Password": "Nuvarande Lösenord", + "New Password": "Nytt Lösenord", + "Repeat New Password": "Upprepa Nytt Lösenord", + "Update Password": "Uppdatera Lösenord", + "Disable Auth": "Avaktivera Autentisering", + "Enable Auth": "Aktivera Autentisering", + Logout: "Logga ut", + Leave: "Lämna", + "I understand, please disable": "Jag förstår, vänligen avaktivera", + Confirm: "Bekräfta", + Yes: "Ja", + No: "Nej", + Username: "Användarnamn", + Password: "Lösenord", + "Remember me": "Kom ihåg mig", + Login: "Logga in", + "No Monitors, please": "Inga Övervakare, tack", + "add one": "lägg till en", + "Notification Type": "Notistyp", + Email: "Email", + Test: "Test", + "Certificate Info": "Certifikatsinfo", + "Resolver Server": "Resolverserver", + "Resource Record Type": "RR-typ", + "Last Result": "Senaste resultat", + "Create your admin account": "Skapa ditt administratörskonto", + "Repeat Password": "Upprepa Lösenord" +} From ed5c75282c2c874d31771ed5397cae1ae1d42dee Mon Sep 17 00:00:00 2001 From: Levi Date: Wed, 1 Sep 2021 16:38:05 +0200 Subject: [PATCH 02/48] Update main.js --- src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.js b/src/main.js index e0f59dae4..3c261d82a 100644 --- a/src/main.js +++ b/src/main.js @@ -29,6 +29,7 @@ import deDE from "./languages/de-DE"; import fr from "./languages/fr"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; +import svSE from "./languages/sv-SE"; const routes = [ { @@ -98,6 +99,7 @@ const languageList = { "fr": fr, "ja": ja, "da-DK": daDK, + "sv-SE": svSE, }; const i18n = createI18n({ From dce2ba8f9f8b9002924ee0c08aaa0b6303a9c45c Mon Sep 17 00:00:00 2001 From: Levi Date: Wed, 1 Sep 2021 16:41:51 +0200 Subject: [PATCH 03/48] Update sv-SE.js --- src/languages/sv-SE.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js index 666851f64..068f5d597 100644 --- a/src/languages/sv-SE.js +++ b/src/languages/sv-SE.js @@ -7,7 +7,7 @@ export default { upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.", maxRedirectDescription: "Max antal omdirigeringar att följa. Välj 0 för att avaktivera omdirigeringar.", acceptedStatusCodesDescription: "Välj statuskoder som räknas som lyckade.", - passwordNotMatchMsg: "Det bekräftade lösenorder stämmer ej överens.", + passwordNotMatchMsg: "Det bekräftade lösenordet stämmer ej överens.", notificationDescription: "Vänligen lägg till en notistjänst till övervakaren.", keywordDescription: "Sök efter nyckelord i ren HTML eller JSON-svar. Sökningen är skiftkänslig.", pauseDashboardHome: "Pausa", From 4aae402b36d239860164f53b5b1fd09011297ea6 Mon Sep 17 00:00:00 2001 From: dhfhfk Date: Thu, 2 Sep 2021 00:29:01 +0900 Subject: [PATCH 04/48] Update main.js --- src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.js b/src/main.js index e0f59dae4..9aab000c6 100644 --- a/src/main.js +++ b/src/main.js @@ -29,6 +29,7 @@ import deDE from "./languages/de-DE"; import fr from "./languages/fr"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; +import koKR from "./languages/ko-KR"; const routes = [ { @@ -98,6 +99,7 @@ const languageList = { "fr": fr, "ja": ja, "da-DK": daDK, + "ko-KR": koKR, }; const i18n = createI18n({ From 1c4e5b79be47040287250c99e8d1d656542bd8df Mon Sep 17 00:00:00 2001 From: dhfhfk Date: Thu, 2 Sep 2021 00:30:08 +0900 Subject: [PATCH 05/48] Create ko-KR.js --- src/languages/ko-KR.js | 110 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/languages/ko-KR.js diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js new file mode 100644 index 000000000..ff4a79366 --- /dev/null +++ b/src/languages/ko-KR.js @@ -0,0 +1,110 @@ +export default { + languageName: '한국어', + checkEverySecond: '{0} 초마다 체크해요.', + 'Avg.': '평균 ', + retriesDescription: '서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수', + ignoreTLSError: 'HTTPS 웹사이트에서 TLS/SSL 에러 무시하기', + upsideDownModeDescription: '서버 상태를 반대로 표시해요. 서버가 작동하면 DOWN으로 표시할 거에요.', + maxRedirectDescription: '최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.', + acceptedStatusCodesDescription: '응답 성공으로 간주할 상태 코드를 정해요.', + passwordNotMatchMsg: '비밀번호 재입력이 일치하지 않아요.', + notificationDescription: '모니터링에 알림을 설정할 수 있어요.', + keywordDescription: 'Html 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.', + pauseDashboardHome: '일시 정지', + deleteMonitorMsg: '정말 이 모니터링을 삭제할까요?', + deleteNotificationMsg: '정말 이 알림을 모든 모니터링에서 삭제할까요?', + resoverserverDescription: 'Cloudflare가 기본 서버에요, 원한다면 언제나 다른 resolver 서버로 변경할 수 있어요.', + rrtypeDescription: '모니터링할 RR-Type을 선택해요.', + pauseMonitorMsg: '정말 이 모니터링을 일시 정지 할까요?', + Settings: '설정', + Dashboard: '대시보드', + 'New Update': '새로운 업데이트', + Language: '언어', + Appearance: '외형', + Theme: '테마', + General: '일반', + Version: '버전', + 'Check Update On GitHub': '깃허브에서 업데이트 확인', + List: '목록', + Add: '추가', + 'Add New Monitor': '새로운 모니터링 추가하기', + 'Quick Stats': '간단한 정보', + Up: '온라인', + Down: '오프라인', + Pending: '대기 중', + Unknown: '알 수 없음', + Pause: '일시 정지', + Name: '이름', + Status: '상태', + DateTime: '날짜', + Message: '메시지', + 'No important events': '중요 이벤트 없음', + Resume: '재개', + Edit: '수정', + Delete: '삭제', + Current: '현재', + Uptime: '업타임', + 'Cert Exp.': '인증서 만료', + days: '일', + day: '일', + '-day': '-일', + hour: '시간', + '-hour': '-시간', + Response: '응답', + Ping: '핑', + 'Monitor Type': '모니터링 종류', + Keyword: '키워드', + 'Friendly Name': '이름', + URL: 'URL', + Hostname: '호스트네임', + Port: '포트', + 'Heartbeat Interval': '하트비트 주기', + Retries: '재시도', + Advanced: '고급', + 'Upside Down Mode': '상태 반전 모드', + 'Max. Redirects': '최대 리다이렉트', + 'Accepted Status Codes': '응답 성공 상태 코드', + Save: '저장', + Notifications: '알림', + 'Not available, please setup.': '존재하지 않아요, 새로운거 하나 만드는건 어때요?', + 'Setup Notification': '알림 설정', + Light: '라이트', + Dark: '다크', + Auto: '자동', + 'Theme - Heartbeat Bar': '테마 - 하트비트 바', + Normal: '기본값', + Bottom: '가운데', + None: '제거', + Timezone: '시간대', + 'Search Engine Visibility': '검색 엔진 활성화', + 'Allow indexing': '인덱싱 허용', + 'Discourage search engines from indexing site': '검색 엔진 인덱싱 거부', + 'Change Password': '비밀번호 변경', + 'Current Password': '기존 비밀번호', + 'New Password': '새로운 비밀번호', + 'Repeat New Password': '새로운 비밀번호 재입력', + 'Update Password': '비밀번호 변경', + 'Disable Auth': '인증 끄기', + 'Enable Auth': '인증 켜기', + Logout: '로그아웃', + Leave: '나가기', + 'I understand, please disable': '기능에 대해 이해했어요.', + Confirm: '확인', + Yes: '확인', + No: '취소', + Username: '이름', + Password: '비밀번호', + 'Remember me': '비밀번호 기억하기', + Login: '로그인', + 'No Monitors, please': '모니터링이 없어요,', + 'add one': '하나 추가해봐요', + 'Notification Type': '알림 종류', + Email: '이메일', + Test: '테스트', + 'Certificate Info': '인증서 정보', + 'Resolver Server': 'Resolver 서버', + 'Resource Record Type': '자원 레코드 유형', + 'Last Result': '최근 결과', + 'Create your admin account': '관리자 계정 만들기', + 'Repeat Password': '비밀번호 재입력' +}; \ No newline at end of file From 0cc5053f142efc883ff626b0ccb7d5d03a8c739b Mon Sep 17 00:00:00 2001 From: dhfhfk Date: Thu, 2 Sep 2021 00:35:50 +0900 Subject: [PATCH 06/48] Update ko-KR.js --- src/languages/ko-KR.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index ff4a79366..91f8f9b22 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -4,7 +4,7 @@ export default { 'Avg.': '평균 ', retriesDescription: '서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수', ignoreTLSError: 'HTTPS 웹사이트에서 TLS/SSL 에러 무시하기', - upsideDownModeDescription: '서버 상태를 반대로 표시해요. 서버가 작동하면 DOWN으로 표시할 거에요.', + upsideDownModeDescription: '서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.', maxRedirectDescription: '최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.', acceptedStatusCodesDescription: '응답 성공으로 간주할 상태 코드를 정해요.', passwordNotMatchMsg: '비밀번호 재입력이 일치하지 않아요.', From 2d408732db087d8044690b67f5de828c187b6d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=98=A4=EB=A1=9C=EB=9D=BC?= <68490827+dhfhfk@users.noreply.github.com> Date: Thu, 2 Sep 2021 01:01:18 +0900 Subject: [PATCH 07/48] Update main.js Prevent conflict with #304 (Added Swedish Language) --- src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.js b/src/main.js index 9aab000c6..435caf218 100644 --- a/src/main.js +++ b/src/main.js @@ -29,6 +29,7 @@ import deDE from "./languages/de-DE"; import fr from "./languages/fr"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; +import svSE from "./languages/sv-SE"; import koKR from "./languages/ko-KR"; const routes = [ @@ -99,6 +100,7 @@ const languageList = { "fr": fr, "ja": ja, "da-DK": daDK, + "sv-SE": svSE, "ko-KR": koKR, }; From eeb00a55113b5d2a63feab07a57b43ccdad1ebd1 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 01:56:02 +0800 Subject: [PATCH 08/48] fix data type --- src/pages/Dashboard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Dashboard.vue b/src/pages/Dashboard.vue index b9c82e00a..1cf237ce7 100644 --- a/src/pages/Dashboard.vue +++ b/src/pages/Dashboard.vue @@ -5,7 +5,7 @@
{{ $t("Add New Monitor") }}
- +
From e1f378ee6c8ede64f6de654e9c913e6292b4f162 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Thu, 2 Sep 2021 02:11:44 +0800 Subject: [PATCH 09/48] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 45a1a338f..925b8798e 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,10 @@ I will mark requests/issues to the next milestone. https://github.com/louislam/uptime-kuma/milestones +Project Plan: + +https://github.com/louislam/uptime-kuma/projects/1 + ## 🖼 More Screenshots Dark Mode: From a2cf7f394e52f0fae9e9fbf11d6ae348baaf2613 Mon Sep 17 00:00:00 2001 From: DX37 Date: Thu, 2 Sep 2021 01:37:01 +0700 Subject: [PATCH 10/48] Add Russian translation --- src/languages/ru-RU.js | 110 +++++++++++++++++++++++++++++++++++++++++ src/main.js | 2 + 2 files changed, 112 insertions(+) create mode 100644 src/languages/ru-RU.js diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js new file mode 100644 index 000000000..c9de68614 --- /dev/null +++ b/src/languages/ru-RU.js @@ -0,0 +1,110 @@ +export default { + languageName: "Русский", + checkEverySecond: "Проверять каждые {0} секунд.", + "Avg.": "Средн. ", + retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления", + ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов", + upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.", + maxRedirectDescription: "Максимальное количество перенаправлений. Поставьте 0, чтобы отключить перенаправления.", + acceptedStatusCodesDescription: "Выберите коды статусов, которые должны считаться за успешный ответ.", + passwordNotMatchMsg: "Повтор пароля не совпадает.", + notificationDescription: "Привяжите уведомления к мониторам.", + keywordDescription: "Поиск слова в чистом HTML или в JSON-ответе (чувствительно к регистру)", + pauseDashboardHome: "Пауза", + deleteMonitorMsg: "Вы действительно хотите удалить данный монитор?", + deleteNotificationMsg: "Вы действительно хотите удалить это уведомление для всех мониторов?", + resoverserverDescription: "Cloudflare является сервером по умолчанию. Вы всегда можете сменить данный сервер.", + rrtypeDescription: "Выберите тип ресурсной записи, который вы хотите отслеживать", + pauseMonitorMsg: "Вы действительно хотите поставить на паузу?", + Settings: "Настройки", + Dashboard: "Панель", + "New Update": "Обновление", + Language: "Язык", + Appearance: "Внешний вид", + Theme: "Тема", + General: "Общее", + Version: "Версия", + "Check Update On GitHub": "Проверить обновления на GitHub", + List: "Список", + Add: "Добавить", + "Add New Monitor": "Новый монитор", + "Quick Stats": "Статистика", + Up: "Доступно", + Down: "Недоступно", + Pending: "Ожидание", + Unknown: "Неизвестно", + Pause: "Пауза", + Name: "Имя", + Status: "Статус", + DateTime: "Дата и время", + Message: "Сообщение", + "No important events": "Важных событий нет", + Resume: "Возобновить", + Edit: "Изменить", + Delete: "Удалить", + Current: "Текущий", + Uptime: "Аптайм", + "Cert Exp.": "Сертификат просрочен", + days: "дней", + day: "день", + "-day": " дней", + hour: "час", + "-hour": " часа", + Response: "Ответ", + Ping: "Пинг", + "Monitor Type": "Тип монитора", + Keyword: "Слово", + "Friendly Name": "Имя", + URL: "URL", + Hostname: "Имя хоста", + Port: "Порт", + "Heartbeat Interval": "Частота опроса", + Retries: "Попыток", + Advanced: "Дополнительно", + "Upside Down Mode": "Режим реверса статуса", + "Max. Redirects": "Макс. перенаправлений", + "Accepted Status Codes": "Допустимые коды статуса", + Save: "Сохранить", + Notifications: "Уведомления", + "Not available, please setup.": "Доступных уведомлений нет, необходима настройка.", + "Setup Notification": "Настроить уведомления", + Light: "Светлая", + Dark: "Тёмная", + Auto: "Авто", + "Theme - Heartbeat Bar": "Тема - Полоса частоты опроса", + Normal: "Обычный", + Bottom: "Снизу", + None: "Отсутствует", + Timezone: "Часовой пояс", + "Search Engine Visibility": "Видимость поисковым движком", + "Allow indexing": "Разрешить индексирование", + "Discourage search engines from indexing site": "Не позволять индексировать сайт", + "Change Password": "Сменить пароль", + "Current Password": "Текущий пароль", + "New Password": "Новый пароль", + "Repeat New Password": "Повтор нового пароля", + "Update Password": "Обновить пароль", + "Disable Auth": "Отключить авторизацию", + "Enable Auth": "Включить авторизацию", + Logout: "Выйти", + Leave: "Отмена", + "I understand, please disable": "Я понимаю, всё равно отключить", + Confirm: "Подтвердить", + Yes: "Да", + No: "Нет", + Username: "Логин", + Password: "Пароль", + "Remember me": "Запомнить меня", + Login: "Вход в систему", + "No Monitors, please": "Мониторов нет, пожалуйста", + "add one": "создайте новый", + "Notification Type": "Тип уведомления", + Email: "Почта", + Test: "Проверка", + "Certificate Info": "Информация о сертификате", + "Resolver Server": "DNS сервер", + "Resource Record Type": "Тип ресурсной записи", + "Last Result": "Последний результат", + "Create your admin account": "Создайте аккаунт администратора", + "Repeat Password": "Повторите пароль" +} diff --git a/src/main.js b/src/main.js index 435caf218..fe35d3815 100644 --- a/src/main.js +++ b/src/main.js @@ -31,6 +31,7 @@ import ja from "./languages/ja"; import daDK from "./languages/da-DK"; import svSE from "./languages/sv-SE"; import koKR from "./languages/ko-KR"; +import ruRU from "./languages/ru-RU"; const routes = [ { @@ -102,6 +103,7 @@ const languageList = { "da-DK": daDK, "sv-SE": svSE, "ko-KR": koKR, + "ru-RU": ruRU, }; const i18n = createI18n({ From e7929f461d878af218d70c86bfbe694b84ee450f Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Wed, 1 Sep 2021 20:53:12 +0200 Subject: [PATCH 11/48] Update dependencies --- package.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index f279351ec..23b8e6da6 100644 --- a/package.json +++ b/package.json @@ -54,19 +54,19 @@ "express": "^4.17.1", "express-basic-auth": "^1.2.0", "form-data": "^4.0.0", - "http-graceful-shutdown": "^3.1.3", + "http-graceful-shutdown": "^3.1.4", "jsonwebtoken": "^8.5.1", "nodemailer": "^6.6.3", "password-hash": "^1.2.2", "prom-client": "^13.2.0", "prometheus-api-metrics": "^3.2.0", "redbean-node": "0.1.2", - "socket.io": "^4.1.3", - "socket.io-client": "^4.1.3", + "socket.io": "^4.2.0", + "socket.io-client": "^4.2.0", "sqlite3": "github:mapbox/node-sqlite3#593c9d", "tcp-ping": "^0.1.1", "v-pagination-3": "^0.1.6", - "vue": "^3.2.2", + "vue": "^3.2.6", "vue-chart-3": "^0.5.7", "vue-confirm-dialog": "^1.0.2", "vue-i18n": "^9.1.7", @@ -76,18 +76,18 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.15.0", - "@types/bootstrap": "^5.1.1", - "@vitejs/plugin-legacy": "^1.5.1", - "@vitejs/plugin-vue": "^1.4.0", - "@vue/compiler-sfc": "^3.2.2", - "core-js": "^3.16.1", + "@types/bootstrap": "^5.1.2", + "@vitejs/plugin-legacy": "^1.5.2", + "@vitejs/plugin-vue": "^1.6.0", + "@vue/compiler-sfc": "^3.2.6", + "core-js": "^3.17.0", "dns2": "^2.0.1", "eslint": "^7.32.0", - "eslint-plugin-vue": "^7.16.0", - "sass": "^1.37.5", + "eslint-plugin-vue": "^7.17.0", + "sass": "^1.38.2", "stylelint": "^13.13.1", "stylelint-config-standard": "^22.0.0", - "typescript": "^4.3.5", - "vite": "^2.4.4" + "typescript": "^4.4.2", + "vite": "^2.5.3" } } From 7a109689d96a4ffdeee99776a0c44671e88be4f7 Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Wed, 1 Sep 2021 21:17:50 +0200 Subject: [PATCH 12/48] Make `Resp. Time (ms)` and `N/A` i18n --- src/components/PingChart.vue | 2 +- src/components/Uptime.vue | 2 +- src/languages/en.js | 4 +++- src/pages/Details.vue | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/PingChart.vue b/src/components/PingChart.vue index 8f53ea766..0baa9881d 100644 --- a/src/components/PingChart.vue +++ b/src/components/PingChart.vue @@ -85,7 +85,7 @@ export default { y: { title: { display: true, - text: "Resp. Time (ms)", + text: this.$t("respTime"), }, offset: false, grid: { diff --git a/src/components/Uptime.vue b/src/components/Uptime.vue index b1f3a018e..a4bf22f68 100644 --- a/src/components/Uptime.vue +++ b/src/components/Uptime.vue @@ -22,7 +22,7 @@ export default { return Math.round(this.$root.uptimeList[key] * 10000) / 100 + "%"; } - return "N/A" + return this.$t("notAvailableShort") }, color() { diff --git a/src/languages/en.js b/src/languages/en.js index 2781ba819..f0e4ae969 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -106,5 +106,7 @@ export default { "Resource Record Type": "Resource Record Type", "Last Result": "Last Result", "Create your admin account": "Create your admin account", - "Repeat Password": "Repeat Password" + "Repeat Password": "Repeat Password", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/pages/Details.vue b/src/pages/Details.vue index 44cac8186..badcc687e 100644 --- a/src/pages/Details.vue +++ b/src/pages/Details.vue @@ -238,7 +238,7 @@ export default { return this.lastHeartBeat.ping; } - return "N/A" + return this.$t("notAvailableShort") }, avgPing() { @@ -246,7 +246,7 @@ export default { return this.$root.avgPingList[this.monitor.id]; } - return "N/A" + return this.$t("notAvailableShort") }, importantHeartBeatList() { From 9116654a33077da96a8de658ef0eeafbd073cf08 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 15:21:46 +0800 Subject: [PATCH 13/48] update language files and run eslint on these --- src/languages/da-DK.js | 4 +- src/languages/de-DE.js | 4 +- src/languages/fr.js | 4 +- src/languages/ja.js | 4 +- src/languages/ko-KR.js | 220 +++++++++++++++++++++-------------------- src/languages/ru-RU.js | 4 +- src/languages/sv-SE.js | 4 +- src/languages/zh-HK.js | 10 +- 8 files changed, 135 insertions(+), 119 deletions(-) diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js index 245ba5ba7..713eecfe2 100644 --- a/src/languages/da-DK.js +++ b/src/languages/da-DK.js @@ -106,5 +106,7 @@ export default { pauseMonitorMsg: "Er du sikker på, at du vil pause Overvågeren?", "Create your admin account": "Opret din administratorkonto", "Repeat Password": "Gentag adgangskoden", - "Resource Record Type": "Resource Record Type" + "Resource Record Type": "Resource Record Type", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js index 7a8cb52a4..7febaad7b 100644 --- a/src/languages/de-DE.js +++ b/src/languages/de-DE.js @@ -106,5 +106,7 @@ export default { pauseMonitorMsg: "Bist du sicher das du den Monitor pausieren möchtest?", "Create your admin account": "Erstelle dein Admin Konto", "Repeat Password": "Wiederhole das Passwort", - "Resource Record Type": "Resource Record Type" + "Resource Record Type": "Resource Record Type", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/fr.js b/src/languages/fr.js index ac7aa8a54..694f4d285 100644 --- a/src/languages/fr.js +++ b/src/languages/fr.js @@ -106,5 +106,7 @@ export default { pauseMonitorMsg: "Are you sure want to pause?", "Last Result": "Last Result", "Create your admin account": "Create your admin account", - "Repeat Password": "Repeat Password" + "Repeat Password": "Repeat Password", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/ja.js b/src/languages/ja.js index e32e53d69..23de640cf 100644 --- a/src/languages/ja.js +++ b/src/languages/ja.js @@ -106,5 +106,7 @@ export default { "Resource Record Type": "DNSレコード設定", "Last Result": "最終結果", "Create your admin account": "Create your admin account", - "Repeat Password": "Repeat Password" + "Repeat Password": "Repeat Password", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index 91f8f9b22..f913bbb97 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -1,110 +1,112 @@ export default { - languageName: '한국어', - checkEverySecond: '{0} 초마다 체크해요.', - 'Avg.': '평균 ', - retriesDescription: '서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수', - ignoreTLSError: 'HTTPS 웹사이트에서 TLS/SSL 에러 무시하기', - upsideDownModeDescription: '서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.', - maxRedirectDescription: '최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.', - acceptedStatusCodesDescription: '응답 성공으로 간주할 상태 코드를 정해요.', - passwordNotMatchMsg: '비밀번호 재입력이 일치하지 않아요.', - notificationDescription: '모니터링에 알림을 설정할 수 있어요.', - keywordDescription: 'Html 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.', - pauseDashboardHome: '일시 정지', - deleteMonitorMsg: '정말 이 모니터링을 삭제할까요?', - deleteNotificationMsg: '정말 이 알림을 모든 모니터링에서 삭제할까요?', - resoverserverDescription: 'Cloudflare가 기본 서버에요, 원한다면 언제나 다른 resolver 서버로 변경할 수 있어요.', - rrtypeDescription: '모니터링할 RR-Type을 선택해요.', - pauseMonitorMsg: '정말 이 모니터링을 일시 정지 할까요?', - Settings: '설정', - Dashboard: '대시보드', - 'New Update': '새로운 업데이트', - Language: '언어', - Appearance: '외형', - Theme: '테마', - General: '일반', - Version: '버전', - 'Check Update On GitHub': '깃허브에서 업데이트 확인', - List: '목록', - Add: '추가', - 'Add New Monitor': '새로운 모니터링 추가하기', - 'Quick Stats': '간단한 정보', - Up: '온라인', - Down: '오프라인', - Pending: '대기 중', - Unknown: '알 수 없음', - Pause: '일시 정지', - Name: '이름', - Status: '상태', - DateTime: '날짜', - Message: '메시지', - 'No important events': '중요 이벤트 없음', - Resume: '재개', - Edit: '수정', - Delete: '삭제', - Current: '현재', - Uptime: '업타임', - 'Cert Exp.': '인증서 만료', - days: '일', - day: '일', - '-day': '-일', - hour: '시간', - '-hour': '-시간', - Response: '응답', - Ping: '핑', - 'Monitor Type': '모니터링 종류', - Keyword: '키워드', - 'Friendly Name': '이름', - URL: 'URL', - Hostname: '호스트네임', - Port: '포트', - 'Heartbeat Interval': '하트비트 주기', - Retries: '재시도', - Advanced: '고급', - 'Upside Down Mode': '상태 반전 모드', - 'Max. Redirects': '최대 리다이렉트', - 'Accepted Status Codes': '응답 성공 상태 코드', - Save: '저장', - Notifications: '알림', - 'Not available, please setup.': '존재하지 않아요, 새로운거 하나 만드는건 어때요?', - 'Setup Notification': '알림 설정', - Light: '라이트', - Dark: '다크', - Auto: '자동', - 'Theme - Heartbeat Bar': '테마 - 하트비트 바', - Normal: '기본값', - Bottom: '가운데', - None: '제거', - Timezone: '시간대', - 'Search Engine Visibility': '검색 엔진 활성화', - 'Allow indexing': '인덱싱 허용', - 'Discourage search engines from indexing site': '검색 엔진 인덱싱 거부', - 'Change Password': '비밀번호 변경', - 'Current Password': '기존 비밀번호', - 'New Password': '새로운 비밀번호', - 'Repeat New Password': '새로운 비밀번호 재입력', - 'Update Password': '비밀번호 변경', - 'Disable Auth': '인증 끄기', - 'Enable Auth': '인증 켜기', - Logout: '로그아웃', - Leave: '나가기', - 'I understand, please disable': '기능에 대해 이해했어요.', - Confirm: '확인', - Yes: '확인', - No: '취소', - Username: '이름', - Password: '비밀번호', - 'Remember me': '비밀번호 기억하기', - Login: '로그인', - 'No Monitors, please': '모니터링이 없어요,', - 'add one': '하나 추가해봐요', - 'Notification Type': '알림 종류', - Email: '이메일', - Test: '테스트', - 'Certificate Info': '인증서 정보', - 'Resolver Server': 'Resolver 서버', - 'Resource Record Type': '자원 레코드 유형', - 'Last Result': '최근 결과', - 'Create your admin account': '관리자 계정 만들기', - 'Repeat Password': '비밀번호 재입력' -}; \ No newline at end of file + languageName: "한국어", + checkEverySecond: "{0} 초마다 체크해요.", + "Avg.": "평균 ", + retriesDescription: "서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수", + ignoreTLSError: "HTTPS 웹사이트에서 TLS/SSL 에러 무시하기", + upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.", + maxRedirectDescription: "최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.", + acceptedStatusCodesDescription: "응답 성공으로 간주할 상태 코드를 정해요.", + passwordNotMatchMsg: "비밀번호 재입력이 일치하지 않아요.", + notificationDescription: "모니터링에 알림을 설정할 수 있어요.", + keywordDescription: "Html 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.", + pauseDashboardHome: "일시 정지", + deleteMonitorMsg: "정말 이 모니터링을 삭제할까요?", + deleteNotificationMsg: "정말 이 알림을 모든 모니터링에서 삭제할까요?", + resoverserverDescription: "Cloudflare가 기본 서버에요, 원한다면 언제나 다른 resolver 서버로 변경할 수 있어요.", + rrtypeDescription: "모니터링할 RR-Type을 선택해요.", + pauseMonitorMsg: "정말 이 모니터링을 일시 정지 할까요?", + Settings: "설정", + Dashboard: "대시보드", + "New Update": "새로운 업데이트", + Language: "언어", + Appearance: "외형", + Theme: "테마", + General: "일반", + Version: "버전", + "Check Update On GitHub": "깃허브에서 업데이트 확인", + List: "목록", + Add: "추가", + "Add New Monitor": "새로운 모니터링 추가하기", + "Quick Stats": "간단한 정보", + Up: "온라인", + Down: "오프라인", + Pending: "대기 중", + Unknown: "알 수 없음", + Pause: "일시 정지", + Name: "이름", + Status: "상태", + DateTime: "날짜", + Message: "메시지", + "No important events": "중요 이벤트 없음", + Resume: "재개", + Edit: "수정", + Delete: "삭제", + Current: "현재", + Uptime: "업타임", + "Cert Exp.": "인증서 만료", + days: "일", + day: "일", + "-day": "-일", + hour: "시간", + "-hour": "-시간", + Response: "응답", + Ping: "핑", + "Monitor Type": "모니터링 종류", + Keyword: "키워드", + "Friendly Name": "이름", + URL: "URL", + Hostname: "호스트네임", + Port: "포트", + "Heartbeat Interval": "하트비트 주기", + Retries: "재시도", + Advanced: "고급", + "Upside Down Mode": "상태 반전 모드", + "Max. Redirects": "최대 리다이렉트", + "Accepted Status Codes": "응답 성공 상태 코드", + Save: "저장", + Notifications: "알림", + "Not available, please setup.": "존재하지 않아요, 새로운거 하나 만드는건 어때요?", + "Setup Notification": "알림 설정", + Light: "라이트", + Dark: "다크", + Auto: "자동", + "Theme - Heartbeat Bar": "테마 - 하트비트 바", + Normal: "기본값", + Bottom: "가운데", + None: "제거", + Timezone: "시간대", + "Search Engine Visibility": "검색 엔진 활성화", + "Allow indexing": "인덱싱 허용", + "Discourage search engines from indexing site": "검색 엔진 인덱싱 거부", + "Change Password": "비밀번호 변경", + "Current Password": "기존 비밀번호", + "New Password": "새로운 비밀번호", + "Repeat New Password": "새로운 비밀번호 재입력", + "Update Password": "비밀번호 변경", + "Disable Auth": "인증 끄기", + "Enable Auth": "인증 켜기", + Logout: "로그아웃", + Leave: "나가기", + "I understand, please disable": "기능에 대해 이해했어요.", + Confirm: "확인", + Yes: "확인", + No: "취소", + Username: "이름", + Password: "비밀번호", + "Remember me": "비밀번호 기억하기", + Login: "로그인", + "No Monitors, please": "모니터링이 없어요,", + "add one": "하나 추가해봐요", + "Notification Type": "알림 종류", + Email: "이메일", + Test: "테스트", + "Certificate Info": "인증서 정보", + "Resolver Server": "Resolver 서버", + "Resource Record Type": "자원 레코드 유형", + "Last Result": "최근 결과", + "Create your admin account": "관리자 계정 만들기", + "Repeat Password": "비밀번호 재입력", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" +} diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js index c9de68614..f42f9c256 100644 --- a/src/languages/ru-RU.js +++ b/src/languages/ru-RU.js @@ -106,5 +106,7 @@ export default { "Resource Record Type": "Тип ресурсной записи", "Last Result": "Последний результат", "Create your admin account": "Создайте аккаунт администратора", - "Repeat Password": "Повторите пароль" + "Repeat Password": "Повторите пароль", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js index 068f5d597..502968891 100644 --- a/src/languages/sv-SE.js +++ b/src/languages/sv-SE.js @@ -106,5 +106,7 @@ export default { "Resource Record Type": "RR-typ", "Last Result": "Senaste resultat", "Create your admin account": "Skapa ditt administratörskonto", - "Repeat Password": "Upprepa Lösenord" + "Repeat Password": "Upprepa Lösenord", + respTime: "Resp. Time (ms)", + notAvailableShort: "N/A" } diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js index 12ebb79de..4bcc5029e 100644 --- a/src/languages/zh-HK.js +++ b/src/languages/zh-HK.js @@ -103,8 +103,10 @@ export default { "Resource Record Type": "DNS 記錄類型", resoverserverDescription: "預設值為 Cloudflare DNS 伺服器,你可以轉用其他 DNS 伺服器。", rrtypeDescription: "請選擇 DNS 記錄類型", - pauseMonitorMsg: "Are you sure want to pause?", - "Last Result": "Last Result", - "Create your admin account": "Create your admin account", - "Repeat Password": "Repeat Password" + pauseMonitorMsg: "是否確定暫停?", + "Last Result": "最後結果", + "Create your admin account": "製作你的管理員帳號", + "Repeat Password": "重複密碼", + respTime: "反應時間 (ms)", + notAvailableShort: "N/A" } From a0f372e946adb196d38d1246f2f5bbeceb7455ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B0=E9=80=B8Cary?= Date: Thu, 2 Sep 2021 15:34:46 +0800 Subject: [PATCH 14/48] Chinese Translation (from zh-CN.js) --- src/languages/zh-CN.js | 112 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/languages/zh-CN.js diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js new file mode 100644 index 000000000..b67f1d5a0 --- /dev/null +++ b/src/languages/zh-CN.js @@ -0,0 +1,112 @@ +export default { + languageName: "简体中文", + checkEverySecond: "检测频率 {0} 秒", + "Avg.": "平均 ", + retriesDescription: "最大重试次数", + ignoreTLSError: "忽略HTTPS站点的证书错误", + upsideDownModeDescription: "反向状态监控", + maxRedirectDescription: "最大重定向次数,设置为 0 禁止重定向", + acceptedStatusCodesDescription: "选择被视为成功响应的状态码", + passwordNotMatchMsg: "两次密码输入不一致", + notificationDescription: "请先设置一个消息通知", + keywordDescription: "检测响应内容中的关键字,区分大小写", + pauseDashboardHome: "Pause", + deleteMonitorMsg: "确定要删除此监控吗?", + deleteNotificationMsg: "确定要删除此消息通知吗?这将对所有监控生效。", + resoverserverDescription: "默认服务器 Cloudflare,可以修改为任意你想要使用的DNS服务器", + rrtypeDescription: "选择您要监控的资源记录类型", + pauseMonitorMsg: "确定要暂停吗?", + Settings: "设置", + Dashboard: "仪表盘", + "New Update": "有新版本更新", + Language: "语言", + Appearance: "外观设置", + Theme: "主题", + General: "基本设置", + Version: "Version", + "Check Update On GitHub": "检查更新", + List: "列表", + Add: "添加", + "Add New Monitor": "添加新的监控", + "Quick Stats": "状态速览", + Up: "正常", + Down: "故障", + Pending: "检测失败", + Unknown: "未知", + Pause: "暂停", + Name: "名称", + Status: "状态", + DateTime: "时间", + Message: "事件", + "No important events": "暂无重要事件", + Resume: "恢复", + Edit: "修改", + Delete: "删除", + Current: "当前", + Uptime: "可用率", + "Cert Exp.": "证书过期", + days: "天", + day: "天", + "-day": " 天", + hour: "小时", + "-hour": " 小时", + Response: "响应", + Ping: "Ping", + "Monitor Type": "监控类型", + Keyword: "关键字", + "Friendly Name": "名称", + URL: "网址", + Hostname: "主机名", + Port: "端口号", + "Heartbeat Interval": "心跳间隔", + Retries: "重试次数", + Advanced: "高级选项", + "Upside Down Mode": "反向监控", + "Max. Redirects": "重定向次数", + "Accepted Status Codes": "有效状态码", + Save: "保存", + Notifications: "消息通知", + "Not available, please setup.": "不可用,请设置", + "Setup Notification": "设置通知", + Light: "明亮", + Dark: "黑暗", + Auto: "自动", + "Theme - Heartbeat Bar": "心跳状态显示", + Normal: "正常显示", + Bottom: "靠下显示", + None: "不显示", + Timezone: "时区", + "Search Engine Visibility": "搜索引擎设置", + "Allow indexing": "允许索引", + "Discourage search engines from indexing site": "阻止搜索引擎索引网站", + "Change Password": "修改密码", + "Current Password": "当前密码", + "New Password": "新密码", + "Repeat New Password": "重复新密码", + "Update Password": "更新密码", + "Disable Auth": "禁用身份验证", + "Enable Auth": "启用身份验证", + Logout: "退出", + Leave: "离开", + "I understand, please disable": "我已经了解,继续禁用", + Confirm: "确认", + Yes: "是的", + No: "不是", + Username: "用户名", + Password: "密码", + "Remember me": "请记住我", + Login: "登录", + "No Monitors, please": "没有监控,", + "add one": "添加一个", + "Notification Type": "消息类型", + Email: "邮件", + Test: "测试一下", + "Certificate Info": "证书信息", + "Resolver Server": "解析服务器", + "Resource Record Type": "资源记录类型", + "Last Result": "Last Result", + "Create your admin account": "创建管理员账号", + "Repeat Password": "重复密码", + respTime: "响应时间 (ms)", + notAvailableShort: "N/A" +} From 99725aabe74f088d9fe57e2b6a3d703fd3c07a24 Mon Sep 17 00:00:00 2001 From: Jelle Posthuma Date: Thu, 2 Sep 2021 11:10:54 +0200 Subject: [PATCH 15/48] Add Dutch/Nederlands language (nl_NL) --- src/languages/nl_NL.js | 112 +++++++++++++++++++++++++++++++++++++++++ src/main.js | 2 + 2 files changed, 114 insertions(+) create mode 100644 src/languages/nl_NL.js diff --git a/src/languages/nl_NL.js b/src/languages/nl_NL.js new file mode 100644 index 000000000..b26c17eae --- /dev/null +++ b/src/languages/nl_NL.js @@ -0,0 +1,112 @@ +export default { + languageName: "Nederlands", + checkEverySecond: "Controleer elke {0} seconden.", + "Avg.": "Gem. ", + retriesDescription: "Maximum aantal nieuwe pogingen voordat de service wordt gemarkeerd als niet beschikbaar en er een melding wordt verzonden", + ignoreTLSError: "Negeer TLS/SSL-fout voor HTTPS-websites", + upsideDownModeDescription: "Draai de status om. Als de service bereikbaar is, is deze OFFLINE.", + maxRedirectDescription: "Maximaal aantal te volgen omleidingen. Stel in op 0 om omleidingen uit te schakelen.", + acceptedStatusCodesDescription: "Selecteer statuscodes die als een succesvol antwoord worden beschouwd.", + passwordNotMatchMsg: "Het herhaalwachtwoord komt niet overeen.", + notificationDescription: "Wijs a.u.b. een melding toe aan de monitor(s) om het te laten werken.", + keywordDescription: "Zoek trefwoord in gewone html of JSON-response en het is hoofdlettergevoelig", + pauseDashboardHome: "Gepauzeerd", + deleteMonitorMsg: "Weet u zeker dat u deze monitor wilt verwijderen?", + deleteNotificationMsg: "Weet u zeker dat u deze melding voor alle monitoren wilt verwijderen?", + resoverserverDescription: "Cloudflare is de standaardserver, u kunt de resolver server op elk moment wijzigen.", + rrtypeDescription: "Selecteer het RR-type dat u wilt monitoren", + pauseMonitorMsg: "Weet je zeker dat je wilt pauzeren?", + Settings: "Instellingen", + Dashboard: "Dashboard", + "New Update": "Nieuwe update", + Language: "Taal", + Appearance: "Weergave", + Theme: "Thema", + General: "Algemeen", + Version: "Versie", + "Check Update On GitHub": "Controleer update op GitHub", + List: "Lijst", + Add: "Toevoegen", + "Add New Monitor": "Nieuwe monitor toevoegen", + "Quick Stats": "Snelle statistieken", + Up: "Online", + Down: "Offline", + Pending: "In afwachting", + Unknown: "Onbekend", + Pause: "Pauze", + Name: "Naam", + Status: "Status", + DateTime: "Datum Tijd", + Message: "Bericht", + "No important events": "Geen belangrijke gebeurtenissen", + Resume: "Hervat", + Edit: "Wijzigen", + Delete: "Verwijderen", + Current: "Huidig", + Uptime: "Uptime", + "Cert Exp.": "Cert. verl.", + days: "dagen", + day: "dag", + "-day": "-dag", + hour: "uur", + "-hour": "-uur", + Response: "Antwoord", + Ping: "Ping", + "Monitor Type": "Monitortype:", + Keyword: "Trefwoord", + "Friendly Name": "Vriendelijke naam", + URL: "URL", + Hostname: "Hostnaam", + Port: "Poort", + "Heartbeat Interval": "Hartslaginterval", + Retries: "Pogingen", + Advanced: "Geavanceerd", + "Upside Down Mode": "Ondersteboven modus", + "Max. Redirects": "Max. Omleidingen", + "Accepted Status Codes": "Geaccepteerde statuscodes", + Save: "Opslaan", + Notifications: "Meldingen", + "Not available, please setup.": "Niet beschikbaar, stel a.u.b. in.", + "Setup Notification": "Melding instellen", + Light: "Licht", + Dark: "Donker", + Auto: "Auto", + "Theme - Heartbeat Bar": "Thema - Hartslagbalk", + Normal: "Normaal", + Bottom: "Onderkant", + None: "Geen", + Timezone: "Tijdzone", + "Search Engine Visibility": "Zichtbaarheid voor zoekmachines", + "Allow indexing": "Indexering toestaan", + "Discourage search engines from indexing site": "Ontmoedig zoekmachines om de site te indexeren", + "Change Password": "Verander wachtwoord", + "Current Password": "Huidig ​​wachtwoord", + "New Password": "Nieuw wachtwoord", + "Repeat New Password": "Herhaal nieuw wachtwoord", + "Update Password": "Vernieuw wachtwoord", + "Disable Auth": "Autorisatie uitschakelen", + "Enable Auth": "Autorisatie inschakelen", + Logout: "Uitloggen", + Leave: "Vertrekken", + "I understand, please disable": "Ik begrijp het, schakel a.u.b. uit", + Confirm: "Bevestigen", + Yes: "Ja", + No: "Nee", + Username: "Gebruikersnaam", + Password: "Wachtwoord", + "Remember me": "Wachtwoord onthouden", + Login: "Inloggen", + "No Monitors, please": "Geen monitoren, ", + "add one": "voeg een toe", + "Notification Type": "Melding type", + Email: "E-mail", + Test: "Testen", + "Certificate Info": "Certificaat informatie", + "Resolver Server": "Resolver Server", + "Resource Record Type": "Type bronrecord", + "Last Result": "Laatste resultaat", + "Create your admin account": "Maak uw beheerdersaccount aan", + "Repeat Password": "Herhaal wachtwoord", + respTime: "resp. tijd (ms)", + notAvailableShort: "N.v.t." +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index fe35d3815..b20db3e0f 100644 --- a/src/main.js +++ b/src/main.js @@ -26,6 +26,7 @@ import { appName } from "./util.ts"; import en from "./languages/en"; import zhHK from "./languages/zh-HK"; import deDE from "./languages/de-DE"; +import nlNL from "./languages/nl-NL"; import fr from "./languages/fr"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; @@ -98,6 +99,7 @@ const languageList = { en, "zh-HK": zhHK, "de-DE": deDE, + "nl-NL": nlNL, "fr": fr, "ja": ja, "da-DK": daDK, From 941788db49bc1643f6b2e0cfa301da779abb483a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B0=E9=80=B8Cary?= Date: Thu, 2 Sep 2021 18:33:09 +0800 Subject: [PATCH 16/48] Chinese Translation (from zh-CN.js) --- src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.js b/src/main.js index fe35d3815..fba4b91e7 100644 --- a/src/main.js +++ b/src/main.js @@ -32,6 +32,7 @@ import daDK from "./languages/da-DK"; import svSE from "./languages/sv-SE"; import koKR from "./languages/ko-KR"; import ruRU from "./languages/ru-RU"; +import zhCN from "./languages/zh-CN"; const routes = [ { @@ -104,6 +105,7 @@ const languageList = { "sv-SE": svSE, "ko-KR": koKR, "ru-RU": ruRU, + "zh-CN": zhCN, }; const i18n = createI18n({ From b88b357b55022cc17b202529d4227d82bc91f23a Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 20:18:27 +0800 Subject: [PATCH 17/48] add support for https --- server/server.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/server.js b/server/server.js index d4fe668b3..ecdd65025 100644 --- a/server/server.js +++ b/server/server.js @@ -6,6 +6,7 @@ const { sleep, debug, TimeLogger, getRandomInt } = require("../src/util"); console.log("Importing Node libraries") const fs = require("fs"); const http = require("http"); +const https = require("https"); console.log("Importing 3rd-party libraries") debug("Importing express"); @@ -45,9 +46,21 @@ console.info("Version: " + checkVersion.version); const hostname = process.env.HOST || args.host; const port = parseInt(process.env.PORT || args.port || 3001); +// SSL +const sslKey = process.env.SSL_KEY || args.ssl_key || undefined; +const sslCert = process.env.SSL_CERT || args.ssl_cert || undefined; + console.log("Creating express and socket.io instance") const app = express(); -const server = http.createServer(app); + +let server; + +if (sslKey && sslCert) { + https.createServer(app); +} else { + http.createServer(app); +} + const io = new Server(server); app.use(express.json()) From c74986647ef4b262fde05c7076571efd7e5496e6 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 20:27:18 +0800 Subject: [PATCH 18/48] allow changing data dir --- server/database.js | 5 +++-- server/server.js | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/server/database.js b/server/database.js index c0a53a9b8..f9414ad1b 100644 --- a/server/database.js +++ b/server/database.js @@ -5,7 +5,8 @@ const { setSetting, setting } = require("./util-server"); class Database { static templatePath = "./db/kuma.db" - static path = "./data/kuma.db"; + static dataDir = "./data/"; + static path = this.dataDir + "kuma.db"; static latestVersion = 8; static noReject = true; static sqliteInstance = null; @@ -56,7 +57,7 @@ class Database { console.info("Database patch is needed") console.info("Backup the db") - const backupPath = "./data/kuma.db.bak" + version; + const backupPath = this.dataDir + "kuma.db.bak" + version; fs.copyFileSync(Database.path, backupPath); const shmPath = Database.path + "-shm"; diff --git a/server/server.js b/server/server.js index ecdd65025..a87f37c6d 100644 --- a/server/server.js +++ b/server/server.js @@ -50,15 +50,21 @@ const port = parseInt(process.env.PORT || args.port || 3001); const sslKey = process.env.SSL_KEY || args.ssl_key || undefined; const sslCert = process.env.SSL_CERT || args.ssl_cert || undefined; +// Data Directory (must be end with "/") +Database.dataDir = process.env.DATA_DIR || process.env.data_dir || "./data/"; +console.log(`Data Dir: ${Database.dataDir}`); + console.log("Creating express and socket.io instance") const app = express(); let server; if (sslKey && sslCert) { - https.createServer(app); + console.log("Server Type: HTTPS"); + server = https.createServer(app); } else { - http.createServer(app); + console.log("Server Type: HTTP"); + server = http.createServer(app); } const io = new Server(server); From 3ee13bddd1e063d445fc34afb59d5665be3f417d Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 20:36:52 +0800 Subject: [PATCH 19/48] dash style for args --- server/server.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/server.js b/server/server.js index a87f37c6d..7ca6ce0d2 100644 --- a/server/server.js +++ b/server/server.js @@ -47,11 +47,11 @@ const hostname = process.env.HOST || args.host; const port = parseInt(process.env.PORT || args.port || 3001); // SSL -const sslKey = process.env.SSL_KEY || args.ssl_key || undefined; -const sslCert = process.env.SSL_CERT || args.ssl_cert || undefined; +const sslKey = process.env.SSL_KEY || args["ssl-key"] || undefined; +const sslCert = process.env.SSL_CERT || args["ssl-cert"] || undefined; // Data Directory (must be end with "/") -Database.dataDir = process.env.DATA_DIR || process.env.data_dir || "./data/"; +Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/"; console.log(`Data Dir: ${Database.dataDir}`); console.log("Creating express and socket.io instance") From b604807cfe90c01ac8a0ca96c1e0892edc6c6997 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 20:42:55 +0800 Subject: [PATCH 20/48] create data dir if not exists --- server/database.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/database.js b/server/database.js index f9414ad1b..6db61ea4d 100644 --- a/server/database.js +++ b/server/database.js @@ -12,6 +12,10 @@ class Database { static sqliteInstance = null; static async connect() { + if (! fs.existsSync(this.dataDir)) { + fs.mkdirSync(this.dataDir, { recursive: true }); + } + const acquireConnectionTimeout = 120 * 1000; R.setup("sqlite", { From 6e3e2fc85c8a05426a95660c59276cc7a30b995c Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 21:08:00 +0800 Subject: [PATCH 21/48] fix db path --- server/database.js | 4 ++-- server/server.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/database.js b/server/database.js index 6db61ea4d..c4e1bce9f 100644 --- a/server/database.js +++ b/server/database.js @@ -5,8 +5,8 @@ const { setSetting, setting } = require("./util-server"); class Database { static templatePath = "./db/kuma.db" - static dataDir = "./data/"; - static path = this.dataDir + "kuma.db"; + static dataDir; + static path; static latestVersion = 8; static noReject = true; static sqliteInstance = null; diff --git a/server/server.js b/server/server.js index 7ca6ce0d2..3c0d281db 100644 --- a/server/server.js +++ b/server/server.js @@ -52,6 +52,7 @@ const sslCert = process.env.SSL_CERT || args["ssl-cert"] || undefined; // Data Directory (must be end with "/") Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/"; +Database.path = Database.dataDir + "kuma.db"; console.log(`Data Dir: ${Database.dataDir}`); console.log("Creating express and socket.io instance") From 582e14098d2aa74c96f309cdb22b192c14196be0 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 21:10:18 +0800 Subject: [PATCH 22/48] create data dir before copy --- server/database.js | 4 ---- server/server.js | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/server/database.js b/server/database.js index c4e1bce9f..77c4da758 100644 --- a/server/database.js +++ b/server/database.js @@ -12,10 +12,6 @@ class Database { static sqliteInstance = null; static async connect() { - if (! fs.existsSync(this.dataDir)) { - fs.mkdirSync(this.dataDir, { recursive: true }); - } - const acquireConnectionTimeout = 120 * 1000; R.setup("sqlite", { diff --git a/server/server.js b/server/server.js index 3c0d281db..42a17679b 100644 --- a/server/server.js +++ b/server/server.js @@ -53,6 +53,9 @@ const sslCert = process.env.SSL_CERT || args["ssl-cert"] || undefined; // Data Directory (must be end with "/") Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/"; Database.path = Database.dataDir + "kuma.db"; +if (! fs.existsSync(this.dataDir)) { + fs.mkdirSync(this.dataDir, { recursive: true }); +} console.log(`Data Dir: ${Database.dataDir}`); console.log("Creating express and socket.io instance") From b30b1d3a5201c2a8977c30833fb3080844cbcc6e Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 21:11:20 +0800 Subject: [PATCH 23/48] create data dir before copy --- server/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/server.js b/server/server.js index 42a17679b..eb3e508f3 100644 --- a/server/server.js +++ b/server/server.js @@ -53,8 +53,8 @@ const sslCert = process.env.SSL_CERT || args["ssl-cert"] || undefined; // Data Directory (must be end with "/") Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/"; Database.path = Database.dataDir + "kuma.db"; -if (! fs.existsSync(this.dataDir)) { - fs.mkdirSync(this.dataDir, { recursive: true }); +if (! fs.existsSync(Database.dataDir)) { + fs.mkdirSync(Database.dataDir, { recursive: true }); } console.log(`Data Dir: ${Database.dataDir}`); From 51cf2ff6f95aa0a87eb931675a43f6ebd55c3989 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 21:13:59 +0800 Subject: [PATCH 24/48] add missing cert parameters --- server/server.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/server.js b/server/server.js index eb3e508f3..a195c6d25 100644 --- a/server/server.js +++ b/server/server.js @@ -65,7 +65,10 @@ let server; if (sslKey && sslCert) { console.log("Server Type: HTTPS"); - server = https.createServer(app); + server = https.createServer({ + key: sslKey, + cert: sslCert + }, app); } else { console.log("Server Type: HTTP"); server = http.createServer(app); From f23ecef636c9f8c5c62b51d63d889e1c59b4b91e Mon Sep 17 00:00:00 2001 From: LouisLam Date: Thu, 2 Sep 2021 21:16:04 +0800 Subject: [PATCH 25/48] add missing cert parameters --- server/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/server.js b/server/server.js index a195c6d25..39191de79 100644 --- a/server/server.js +++ b/server/server.js @@ -66,8 +66,8 @@ let server; if (sslKey && sslCert) { console.log("Server Type: HTTPS"); server = https.createServer({ - key: sslKey, - cert: sslCert + key: fs.readFileSync(sslKey), + cert: fs.readFileSync(sslCert) }, app); } else { console.log("Server Type: HTTP"); From d2bf2a551d00fc88f3ddcc4812e0419432d0537a Mon Sep 17 00:00:00 2001 From: "Victor M. Vicente Cuevas" Date: Thu, 2 Sep 2021 16:23:07 +0200 Subject: [PATCH 26/48] Add spanish language and update Readme --- src/languages/README.md | 3 +- src/languages/es-ES.js | 112 ++++++++++++++++++++++++++++++++++++++++ src/pages/Settings.vue | 6 +++ 3 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 src/languages/es-ES.js diff --git a/src/languages/README.md b/src/languages/README.md index 1deeacd6f..afc14d3b5 100644 --- a/src/languages/README.md +++ b/src/languages/README.md @@ -4,7 +4,8 @@ 2. Create a language file. (e.g. `zh-TW.js`) The filename must be ISO language code: http://www.lingoes.net/en/translator/langcode.htm 3. `npm run update-language-files --base-lang=de-DE` 6. Your language file should be filled in. You can translate now. -7. Make a [pull request](https://github.com/louislam/uptime-kuma/pulls) when you have done. +7. Translate `src/pages/Settings.vue` (search for a `Confirm` component with `rel="confirmDisableAuth"`) +8. Make a [pull request](https://github.com/louislam/uptime-kuma/pulls) when you have done. If you do not have programming skills, let me know in [Issues section](https://github.com/louislam/uptime-kuma/issues). I will assist you. 😏 diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js new file mode 100644 index 000000000..734285798 --- /dev/null +++ b/src/languages/es-ES.js @@ -0,0 +1,112 @@ +export default { + languageName: "Español", + checkEverySecond: "Comprobar cada {0} segundos.", + "Avg.": "Media. ", + retriesDescription: "Número máximo de intentos antes de que el servicio se marque como CAÍDO y una notificación sea enviada.", + ignoreTLSError: "Ignorar error TLS/SSL para sitios web HTTPS", + upsideDownModeDescription: "Invertir el estado. Si el servicio es alcanzable, está CAÍDO.", + maxRedirectDescription: "Número máximo de direcciones a seguir. Establecer a 0 para deshabilitar.", + acceptedStatusCodesDescription: "Seleccionar los códigos de estado que se consideran como respuesta exitosa.", + passwordNotMatchMsg: "La contraseña repetida no coincide.", + notificationDescription: "Por favor asigne una notificación a el/los monitor(es) para hacerlos funcional(es).", + keywordDescription: "Palabra clave en HTML plano o respuesta JSON y es sensible a mayúsculas", + pauseDashboardHome: "Pausar", + deleteMonitorMsg: "¿Seguro que quieres eliminar este monitor?", + deleteNotificationMsg: "¿Seguro que quieres eliminar esta notificación para todos los monitores?", + resoverserverDescription: "Cloudflare es el servidor por defecto, puedes cambiar el servidor de resolución en cualquier momento.", + rrtypeDescription: "Selecciona el tipo de registro que quieres monitorizar", + pauseMonitorMsg: "¿Seguro que quieres pausar?", + Settings: "Ajustes", + Dashboard: "Panel", + "New Update": "Vueva actualización", + Language: "Idioma", + Appearance: "Apariencia", + Theme: "Tema", + General: "General", + Version: "Versión", + "Check Update On GitHub": "Comprobar actualizaciones en GitHub", + List: "Lista", + Add: "Añadir", + "Add New Monitor": "Añadir nuevo monitor", + "Quick Stats": "Estadísticas rápidas", + Up: "Funcional", + Down: "Caído", + Pending: "Pendiente", + Unknown: "Desconociso", + Pause: "Pausa", + Name: "Nombre", + Status: "Estado", + DateTime: "Fecha y Hora", + Message: "Mensaje", + "No important events": "No hay eventos importantes", + Resume: "Reanudar", + Edit: "Editar", + Delete: "Eliminar", + Current: "Actual", + Uptime: "Tiempo activo", + "Cert Exp.": "Caducidad cert.", + days: "días", + day: "día", + "-day": "-día", + hour: "hora", + "-hour": "-hora", + Response: "Respuesta", + Ping: "Ping", + "Monitor Type": "Tipo de Monitor", + Keyword: "Palabra clave", + "Friendly Name": "Nombre sencillo", + URL: "URL", + Hostname: "Nombre del host", + Port: "Puerto", + "Heartbeat Interval": "Intervalo de latido", + Retries: "Reintentos", + Advanced: "Avanzado", + "Upside Down Mode": "Modo invertido", + "Max. Redirects": "Máx. redirecciones", + "Accepted Status Codes": "Códigos de estado aceptados", + Save: "Guardar", + Notifications: "Notificaciones", + "Not available, please setup.": "No disponible, por favor configurar.", + "Setup Notification": "Configurar notificación", + Light: "Claro", + Dark: "Oscuro", + Auto: "Auto", + "Theme - Heartbeat Bar": "Tema - Barra de intervalo de latido", + Normal: "Normal", + Bottom: "Abajo", + None: "Ninguno", + Timezone: "Zona horaria", + "Search Engine Visibility": "Visibilidad motor de búsqueda", + "Allow indexing": "Permitir indexación", + "Discourage search engines from indexing site": "Disuadir a los motores de búsqueda de indexar el sitio", + "Change Password": "Cambiar contraseña", + "Current Password": "Contraseña actual", + "New Password": "Nueva contraseña", + "Repeat New Password": "Repetir nueva contraseña", + "Update Password": "Actualizar contraseña", + "Disable Auth": "deshabilitar Autenticación ", + "Enable Auth": "Habilitar Autenticación ", + Logout: "Cerrar sesión", + Leave: "Salir", + "I understand, please disable": "Lo comprendo, por favor deshabilitar", + Confirm: "Confirmar", + Yes: "Sí", + No: "No", + Username: "Usuario", + Password: "Contraseña", + "Remember me": "Recordarme", + Login: "Acceso", + "No Monitors, please": "Sin monitores, por favor", + "add one": "añade uno", + "Notification Type": "Tipo de notificación", + Email: "Email", + Test: "Test", + "Certificate Info": "Información del certificado ", + "Resolver Server": "Servidor de resolución", + "Resource Record Type": "Tipo de Registro", + "Last Result": "Último resultado", + "Create your admin account": "Crea tu cuenta de administrador", + "Repeat Password": "Repetir contraseña", + respTime: "Tiempo de resp. (ms)", + notAvailableShort: "N/A" +} diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index d71ec109b..85ca0066c 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -172,6 +172,12 @@

Please use it carefully.

+ + + +
From 79fda8f442b8f078c42512db2ab3860cd8d5f609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Simi=C4=87?= Date: Fri, 3 Sep 2021 02:20:01 +0200 Subject: [PATCH 34/48] Add Serbian Latin locale --- src/languages/sr-latn.js | 112 +++++++++++++++++++++++++++++++++++++++ src/main.js | 2 + src/pages/Settings.vue | 6 +++ 3 files changed, 120 insertions(+) create mode 100644 src/languages/sr-latn.js diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js new file mode 100644 index 000000000..aa7d95cf9 --- /dev/null +++ b/src/languages/sr-latn.js @@ -0,0 +1,112 @@ +export default { + languageName: "Srpski", + checkEverySecond: "Proveri svakih {0} sekundi.", + "Avg.": "Prosečni ", + retriesDescription: "Maksimum pokušaja pre nego što se servis obeleži kao neaktivan i pošalje se obaveštenje.", + ignoreTLSError: "Ignoriši TLS/SSL greške za HTTPS veb stranice.", + upsideDownModeDescription: "Obrnite status. Ako je servis dostupan, onda je obeležen kao neaktivan.", + maxRedirectDescription: "Maksimani broj preusmerenja da se prate. Postavite na 0 da bi se isključila preusmerenja.", + acceptedStatusCodesDescription: "Odaberite statusne kodove koji se smatraju uspešnim odgovorom.", + passwordNotMatchMsg: "Ponovljena lozinka se ne poklapa.", + notificationDescription: "Molim Vas postavite obaveštenje za masmatrače da bise aktivirali.", + keywordDescription: "Pretraži ključnu reč u čistom html ili JSON odgovoru sa osetljivim velikim i malim slovima", + pauseDashboardHome: "Pauziraj", + deleteMonitorMsg: "Da li ste sigurni da želite da obrišete ovog posmatrača?", + deleteNotificationMsg: "Da li ste sigurni d aželite da uklonite ovo obaveštenje za sve posmatrače?", + resoverserverDescription: "Cloudflare je podrazumevani server. Možete promeniti server za raszrešavanje u bilo kom trenutku.", + rrtypeDescription: "Odaberite RR-Type koji želite da posmatrate", + pauseMonitorMsg: "Da li ste sigurni da želite da pauzirate?", + Settings: "Podešavanja", + Dashboard: "Komandna tabla", + "New Update": "Nova verzija", + Language: "Jezik", + Appearance: "Izgled", + Theme: "Tema", + General: "Opšte", + Version: "Verzija", + "Check Update On GitHub": "Proverite novu verziju na GitHub-u", + List: "Lista", + Add: "Dodaj", + "Add New Monitor": "Dodaj novog posmatrača", + "Quick Stats": "Brze statistike", + Up: "Aktivno", + Down: "Neaktivno", + Pending: "Nerešeno", + Unknown: "Nepoznato", + Pause: "Pauziraj", + Name: "Ime", + Status: "Status", + DateTime: "Datum i vreme", + Message: "Poruka", + "No important events": "Nema bitnih događaja", + Resume: "Nastavi", + Edit: "Izmeni", + Delete: "Ukloni", + Current: "Trenutno", + Uptime: "Vreme rada", + "Cert Exp.": "Istek sert.", + days: "dana", + day: "dan", + "-day": "-dana", + hour: "sat", + "-hour": "-sata", + Response: "Odgovor", + Ping: "Ping", + "Monitor Type": "Tip posmatrača", + Keyword: "Ključna reč", + "Friendly Name": "Prijateljsko ime", + URL: "URL", + Hostname: "Hostname", + Port: "Port", + "Heartbeat Interval": "Interval otkucaja srca", + Retries: "Pokušaji", + Advanced: "Napredno", + "Upside Down Mode": "Naopak mod", + "Max. Redirects": "Maks. preusmerenja", + "Accepted Status Codes": "Prihvaćeni statusni kodovi", + Save: "Sačuvaj", + Notifications: "Obaveštenja", + "Not available, please setup.": "Nije dostupno, molim Vas podesite.", + "Setup Notification": "Postavi obaveštenje", + Light: "Svetlo", + Dark: "Tamno", + Auto: "Automatsko", + "Theme - Heartbeat Bar": "Tema - Traka otkucaja srca", + Normal: "Normalno", + Bottom: "Dole", + None: "Isključeno", + Timezone: "Vremenska zona", + "Search Engine Visibility": "Vidljivost pretraživačima", + "Allow indexing": "Dozvoli indeksiranje", + "Discourage search engines from indexing site": "Odvraćajte pretraživače od indeksiranja sajta", + "Change Password": "Promeni lozinku", + "Current Password": "Trenutna lozinka", + "New Password": "Nova lozinka", + "Repeat New Password": "Ponovi novu lozinku", + "Update Password": "Izmeni lozinku", + "Disable Auth": "Isključi autentifikaciju", + "Enable Auth": "Uključi autentifikaciju", + Logout: "Odloguj se", + Leave: "Izađi", + "I understand, please disable": "Razumem, molim te isključi", + Confirm: "Potvrdi", + Yes: "Da", + No: "Ne", + Username: "Korisničko ime", + Password: "Lozinka", + "Remember me": "Zapamti me", + Login: "Uloguj se", + "No Monitors, please": "Bez posmatrača molim", + "add one": "dodaj jednog", + "Notification Type": "Tip obaveštenja", + Email: "E-pošta", + Test: "Test", + "Certificate Info": "Informacije sertifikata", + "Resolver Server": "Razrešivački server", + "Resource Record Type": "Tip zapisa resursa", + "Last Result": "Poslednji rezultat", + "Create your admin account": "Naprivi administratorski nalog", + "Repeat Password": "Ponovite lozinku", + respTime: "Vreme odg. (ms)", + notAvailableShort: "N/A" +} diff --git a/src/main.js b/src/main.js index 3b00f2401..ecbd0d060 100644 --- a/src/main.js +++ b/src/main.js @@ -30,6 +30,7 @@ import esEs from "./languages/es-ES"; import fr from "./languages/fr"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; +import srLatn from "./languages/sr-latn"; import svSE from "./languages/sv-SE"; import koKR from "./languages/ko-KR"; import ruRU from "./languages/ru-RU"; @@ -104,6 +105,7 @@ const languageList = { "fr": fr, "ja": ja, "da-DK": daDK, + "sr-latn": srLatn, "sv-SE": svSE, "ko-KR": koKR, "ru-RU": ruRU, diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 85ca0066c..95f977dcd 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -189,6 +189,12 @@

Es ist für jemanden der eine externe Authentifizierung vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access.

Bitte mit Vorsicht nutzen.

+ + From 19a4d570ecb36f4177ffd6ceaee06b63786c4b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Simi=C4=87?= Date: Fri, 3 Sep 2021 02:24:31 +0200 Subject: [PATCH 35/48] Fix word capitalization --- src/pages/Settings.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 679a2a7e6..c90dcc145 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -193,7 +193,7 @@ From 18616ee590075b6e71e187ba9960f97eee4ce4c7 Mon Sep 17 00:00:00 2001 From: Nelson Chan Date: Fri, 3 Sep 2021 12:05:49 +0800 Subject: [PATCH 36/48] Fix: Fix Notification "Test" btn styling --- src/assets/app.scss | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/assets/app.scss b/src/assets/app.scss index 41248a5c4..1f75e97fc 100644 --- a/src/assets/app.scss +++ b/src/assets/app.scss @@ -71,6 +71,14 @@ h2 { } } +.btn-warning { + color: white; + + &:hover, &:active, &:focus, &.active { + color: white; + } +} + .btn-info { color: white; @@ -186,6 +194,14 @@ h2 { color: white; } + .btn-warning { + color: $dark-font-color2; + + &:hover, &:active, &:focus, &.active { + color: $dark-font-color2; + } + } + .btn-close { box-shadow: none; filter: invert(1); From 312aedf391139e6a121876e4fd29af88c5a06389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B0=E9=80=B8Cary?= Date: Fri, 3 Sep 2021 13:33:26 +0800 Subject: [PATCH 37/48] =?UTF-8?q?Update=20Chinese=20Translation=EF=BC=88?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AE=80=E4=BD=93=E4=B8=AD=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E7=BF=BB=E8=AF=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/languages/zh-CN.js | 42 +++++++++++++++++++++--------------------- src/pages/Settings.vue | 6 ++++++ 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js index b67f1d5a0..d179a91af 100644 --- a/src/languages/zh-CN.js +++ b/src/languages/zh-CN.js @@ -1,20 +1,20 @@ export default { languageName: "简体中文", checkEverySecond: "检测频率 {0} 秒", - "Avg.": "平均 ", - retriesDescription: "最大重试次数", + "Avg.": "平均", + retriesDescription: "最大重试失败次数", ignoreTLSError: "忽略HTTPS站点的证书错误", - upsideDownModeDescription: "反向状态监控", + upsideDownModeDescription: "反向状态监控(状态码范围外为有效状态,反之为无效)", maxRedirectDescription: "最大重定向次数,设置为 0 禁止重定向", acceptedStatusCodesDescription: "选择被视为成功响应的状态码", passwordNotMatchMsg: "两次密码输入不一致", - notificationDescription: "请先设置一个消息通知", + notificationDescription: "请为监控项配置消息通知", keywordDescription: "检测响应内容中的关键字,区分大小写", - pauseDashboardHome: "Pause", + pauseDashboardHome: "暂停", deleteMonitorMsg: "确定要删除此监控吗?", deleteNotificationMsg: "确定要删除此消息通知吗?这将对所有监控生效。", resoverserverDescription: "默认服务器 Cloudflare,可以修改为任意你想要使用的DNS服务器", - rrtypeDescription: "选择您要监控的资源记录类型", + rrtypeDescription: "选择要监控的资源记录类型", pauseMonitorMsg: "确定要暂停吗?", Settings: "设置", Dashboard: "仪表盘", @@ -27,7 +27,7 @@ export default { "Check Update On GitHub": "检查更新", List: "列表", Add: "添加", - "Add New Monitor": "添加新的监控", + "Add New Monitor": "创建监控项", "Quick Stats": "状态速览", Up: "正常", Down: "故障", @@ -50,12 +50,12 @@ export default { "-day": " 天", hour: "小时", "-hour": " 小时", - Response: "响应", + Response: "响应时长", Ping: "Ping", "Monitor Type": "监控类型", Keyword: "关键字", - "Friendly Name": "名称", - URL: "网址", + "Friendly Name": "自定义名称", + URL: "网址URL", Hostname: "主机名", Port: "端口号", "Heartbeat Interval": "心跳间隔", @@ -66,12 +66,12 @@ export default { "Accepted Status Codes": "有效状态码", Save: "保存", Notifications: "消息通知", - "Not available, please setup.": "不可用,请设置", + "Not available, please setup.": "无可用通道,请先设置", "Setup Notification": "设置通知", Light: "明亮", Dark: "黑暗", Auto: "自动", - "Theme - Heartbeat Bar": "心跳状态显示", + "Theme - Heartbeat Bar": "状态显示", Normal: "正常显示", Bottom: "靠下显示", None: "不显示", @@ -81,23 +81,23 @@ export default { "Discourage search engines from indexing site": "阻止搜索引擎索引网站", "Change Password": "修改密码", "Current Password": "当前密码", - "New Password": "新密码", - "Repeat New Password": "重复新密码", + "New Password": "新的密码", + "Repeat New Password": "重复新的密码", "Update Password": "更新密码", "Disable Auth": "禁用身份验证", "Enable Auth": "启用身份验证", Logout: "退出", Leave: "离开", - "I understand, please disable": "我已经了解,继续禁用", + "I understand, please disable": "我已了解,继续禁用", Confirm: "确认", - Yes: "是的", - No: "不是", + Yes: "确定", + No: "取消", Username: "用户名", Password: "密码", - "Remember me": "请记住我", + "Remember me": "记住登录", Login: "登录", - "No Monitors, please": "没有监控,", - "add one": "添加一个", + "No Monitors, please": "还没有监控项,", + "add one": "点击新增", "Notification Type": "消息类型", Email: "邮件", Test: "测试一下", @@ -107,6 +107,6 @@ export default { "Last Result": "Last Result", "Create your admin account": "创建管理员账号", "Repeat Password": "重复密码", - respTime: "响应时间 (ms)", + respTime: "Resp. Time (ms)", notAvailableShort: "N/A" } diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index d71ec109b..a1cdd17c5 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -178,6 +178,12 @@

請小心使用。

+ + + + From 0d87a6dfea184bb74a6f2253cd5126d7c52ea1d7 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 14:41:45 +0800 Subject: [PATCH 43/48] update vue to 3.2.8 --- package-lock.json | 867 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 435 insertions(+), 434 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25be14778..dcf5077da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "1.5.0", + "version": "1.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.5.0", + "version": "1.5.2", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", @@ -26,19 +26,19 @@ "express": "^4.17.1", "express-basic-auth": "^1.2.0", "form-data": "^4.0.0", - "http-graceful-shutdown": "^3.1.3", + "http-graceful-shutdown": "^3.1.4", "jsonwebtoken": "^8.5.1", "nodemailer": "^6.6.3", "password-hash": "^1.2.2", "prom-client": "^13.2.0", "prometheus-api-metrics": "^3.2.0", "redbean-node": "0.1.2", - "socket.io": "^4.1.3", - "socket.io-client": "^4.1.3", + "socket.io": "^4.2.0", + "socket.io-client": "^4.2.0", "sqlite3": "github:mapbox/node-sqlite3#593c9d", "tcp-ping": "^0.1.1", "v-pagination-3": "^0.1.6", - "vue": "^3.2.2", + "vue": "^3.2.8", "vue-chart-3": "^0.5.7", "vue-confirm-dialog": "^1.0.2", "vue-i18n": "^9.1.7", @@ -48,19 +48,19 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.15.0", - "@types/bootstrap": "^5.1.1", - "@vitejs/plugin-legacy": "^1.5.1", - "@vitejs/plugin-vue": "^1.4.0", - "@vue/compiler-sfc": "^3.2.2", - "core-js": "^3.16.1", + "@types/bootstrap": "^5.1.2", + "@vitejs/plugin-legacy": "^1.5.2", + "@vitejs/plugin-vue": "^1.6.0", + "@vue/compiler-sfc": "^3.2.6", + "core-js": "^3.17.0", "dns2": "^2.0.1", "eslint": "^7.32.0", - "eslint-plugin-vue": "^7.16.0", - "sass": "^1.37.5", + "eslint-plugin-vue": "^7.17.0", + "sass": "^1.38.2", "stylelint": "^13.13.1", "stylelint-config-standard": "^22.0.0", - "typescript": "^4.3.5", - "vite": "^2.4.4" + "typescript": "^4.4.2", + "vite": "^2.5.3" }, "engines": { "node": "14.*" @@ -85,20 +85,20 @@ } }, "node_modules/@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.4.tgz", + "integrity": "sha512-Lkcv9I4a8bgUI8LJOLM6IKv6hnz1KOju6KM1lceqVMKlKKqNRopYd2Pc9MgIurqvMJ6BooemrnJz8jlIiQIpsA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helpers": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -151,9 +151,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz", - "integrity": "sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", + "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", "dev": true, "dependencies": { "eslint-scope": "^5.1.1", @@ -169,12 +169,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", + "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -192,9 +192,9 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.15.0", @@ -210,132 +210,132 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "dev": true, "dependencies": { - "@babel/types": "^7.15.0" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", + "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.0", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "dev": true, "dependencies": { - "@babel/types": "^7.14.8" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -359,14 +359,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", - "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", + "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", "dev": true, "dependencies": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -458,9 +458,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==", "bin": { "parser": "bin/babel-parser.js" }, @@ -469,23 +469,23 @@ } }, "node_modules/@babel/standalone": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.3.tgz", - "integrity": "sha512-Bst2YWEyQ2ROyO0+jxPVnnkSmUh44/x54+LSbe5M4N5LGfOkxpajEUKVE4ndXtIVrLlHCyuiqCPwv3eC1ItnCg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.4.tgz", + "integrity": "sha512-UO0QCTFjX5NSuwX/i8+/pesmRPoRTtf46Cpn8VHcXvNinEr2lxqe8Ix10TfU/UK5qsaOrcKk24We8wH1G0nTZA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -504,18 +504,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -545,9 +545,9 @@ } }, "node_modules/@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", + "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "dependencies": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" @@ -817,9 +817,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", - "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.1.tgz", + "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -870,9 +870,9 @@ } }, "node_modules/@types/bootstrap": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.2.tgz", - "integrity": "sha512-dSQvMi2dMyNwJU6LZjP0pimuBowsMUvGScYdfqqeiDUoj9TxXZCpfu0cTl94U0Zvw/tdH9j/9ToOhi4LKNLZhg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.4.tgz", + "integrity": "sha512-VAY+o6sCKrJ7Xix/lugdvQz0PpOn7Go+fQzCXOZvIdp7E/TDaiJddInVhNB/84bk9NX6uuKFSfl2pqslNYH9aA==", "dev": true, "dependencies": { "@popperjs/core": "^2.9.2", @@ -1013,9 +1013,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.7.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.8.tgz", - "integrity": "sha512-8upnoQU0OPzbIkm+ZMM0zCeFCkw2s3mS0IWdx0+AAaWqm4fkBb0UJp8Edl7FVKRamYbpJC/aVsHpKWBIbiC7Zg==" + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -1061,9 +1061,9 @@ "dev": true }, "node_modules/@vitejs/plugin-legacy": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.5.1.tgz", - "integrity": "sha512-g+0iy0X3NJRUSKZK+OCeSxNWnCuuE/6lsmr2WLWPOEt1vp6LdfHuNCYRooCm6s0ccTZ/SiumVk8vt9DWSYs+8A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.5.2.tgz", + "integrity": "sha512-b1CaWY/wi7gQZnZaxH+ujPTPb91bEPgnnk7l0WIwxoQtW5UC5MQywRcAbFX+Ise62exXctOMBtsnXKJw2KajXw==", "dev": true, "dependencies": { "@babel/standalone": "^7.14.9", @@ -1092,40 +1092,40 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.6.tgz", - "integrity": "sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.8.tgz", + "integrity": "sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew==", "dependencies": { "@babel/parser": "^7.15.0", "@babel/types": "^7.15.0", - "@vue/shared": "3.2.6", + "@vue/shared": "3.2.8", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.6.tgz", - "integrity": "sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz", + "integrity": "sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw==", "dependencies": { - "@vue/compiler-core": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.6.tgz", - "integrity": "sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.8.tgz", + "integrity": "sha512-XClueQAXoWtN2EToKgfYH9FCL70Ac4bxx6OZFZzxYSg1bei8IB9srJP1UOfnJb2IpnM1heikAz1dp1HI1wHcyQ==", "dev": true, "dependencies": { "@babel/parser": "^7.15.0", "@babel/types": "^7.15.0", "@types/estree": "^0.0.48", - "@vue/compiler-core": "3.2.6", - "@vue/compiler-dom": "3.2.6", - "@vue/compiler-ssr": "3.2.6", - "@vue/ref-transform": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/compiler-core": "3.2.8", + "@vue/compiler-dom": "3.2.8", + "@vue/compiler-ssr": "3.2.8", + "@vue/ref-transform": "3.2.8", + "@vue/shared": "3.2.8", "consolidate": "^0.16.0", "estree-walker": "^2.0.2", "hash-sum": "^2.0.0", @@ -1139,13 +1139,13 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.6.tgz", - "integrity": "sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.8.tgz", + "integrity": "sha512-QqyiFRiIl55W0abDNQ6cNG/7iIfBHmbXVtssUAjX3IlI87ELeT0xackmrCyTSnfIX12ixljg9AN0COIZwlvt5A==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-dom": "3.2.8", + "@vue/shared": "3.2.8" } }, "node_modules/@vue/devtools-api": { @@ -1154,49 +1154,49 @@ "integrity": "sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA==" }, "node_modules/@vue/reactivity": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.6.tgz", - "integrity": "sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.8.tgz", + "integrity": "sha512-/Hj3Uz28SG+xB5SDWPOXUs0emvHkq82EmTgk44/plTVFeswCZ3i3Hd7WmsrPT4rGajlDKd5uqMmW0ith1ED0FA==", "dependencies": { - "@vue/shared": "3.2.6" + "@vue/shared": "3.2.8" } }, "node_modules/@vue/ref-transform": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.6.tgz", - "integrity": "sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.8.tgz", + "integrity": "sha512-9LdADd4JM3klt+b2qNT8a7b7JvBETNBy2Btv5rDzyPrAVS4Vrw+1WWay6gZBgnxfJ9TPSvG8f/9zu6gNGHmJLA==", "dev": true, "dependencies": { "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/runtime-core": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.6.tgz", - "integrity": "sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.8.tgz", + "integrity": "sha512-hwzXLGw1njBEY5JSyRXIIdCtzMFFF6F38WcKMmoIE3p7da30jEbWt8EwwrBomjT8ZbqzElOGlewBcnXNOiiIUg==", "dependencies": { - "@vue/reactivity": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/reactivity": "3.2.8", + "@vue/shared": "3.2.8" } }, "node_modules/@vue/runtime-dom": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.6.tgz", - "integrity": "sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.8.tgz", + "integrity": "sha512-A/aRrlGLJ5y4Z7eNbnO/xHwx2RiPijQo7D3OIwESroG3HNP+dpuoqamajo5TXS9ZGjbMOih82COoe7xb9P4BZw==", "dependencies": { - "@vue/runtime-core": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/runtime-core": "3.2.8", + "@vue/shared": "3.2.8", "csstype": "^2.6.8" } }, "node_modules/@vue/shared": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.6.tgz", - "integrity": "sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw==" + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -1315,9 +1315,9 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -2022,9 +2022,9 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "node_modules/core-js": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.4.tgz", - "integrity": "sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.2.tgz", + "integrity": "sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA==", "dev": true, "hasInstallScript": true, "funding": { @@ -2033,9 +2033,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cors": { "version": "2.8.5", @@ -2313,9 +2313,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.3.824", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz", - "integrity": "sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA==", + "version": "1.3.830", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz", + "integrity": "sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==", "dev": true }, "node_modules/emoji-regex": { @@ -2431,9 +2431,9 @@ } }, "node_modules/esbuild": { - "version": "0.12.24", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.24.tgz", - "integrity": "sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A==", + "version": "0.12.25", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.25.tgz", + "integrity": "sha512-woie0PosbRSoN8gQytrdCzUbS2ByKgO8nD1xCZkEup3D9q92miCze4PqEI9TZDYAuwn6CruEnQpJxgTRWdooAg==", "dev": true, "hasInstallScript": true, "bin": { @@ -2960,9 +2960,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", - "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", + "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", "funding": [ { "type": "individual", @@ -3922,9 +3922,9 @@ } }, "node_modules/knex": { - "version": "0.95.10", - "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.10.tgz", - "integrity": "sha512-I60A8TXcMdeJlE6h7DSgEYyY37S7kgLObz1qlJ7QvPMD6vnKO5dtuLEht5pMia9Qf5BomqVgkWCdVTqcC/ImOA==", + "version": "0.95.11", + "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.11.tgz", + "integrity": "sha512-grDetD91O8VoQVCFqeWTgkzdq5406W6rggF/lK1hHuwzmjDs/0m9KxyncGdZbklTi7aUgHvw3+Cfy4x7FvpdaQ==", "dependencies": { "colorette": "1.2.1", "commander": "^7.1.0", @@ -5789,9 +5789,9 @@ } }, "node_modules/redbean-node/node_modules/@types/node": { - "version": "14.17.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.12.tgz", - "integrity": "sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw==" + "version": "14.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.14.tgz", + "integrity": "sha512-rsAj2u8Xkqfc332iXV12SqIsjVi07H479bOP4q94NAcjzmAvapumEhuVIt53koEf7JFrpjgNKjBga5Pnn/GL8A==" }, "node_modules/redent": { "version": "3.0.0", @@ -6032,9 +6032,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.38.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.2.tgz", - "integrity": "sha512-Bz1fG6qiyF0FX6m/I+VxtdVKz1Dfmg/e9kfDy2PhWOkq3T384q2KxwIfP0fXpeI+EyyETdOauH+cRHQDFASllA==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz", + "integrity": "sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0" @@ -7220,6 +7220,12 @@ "extsprintf": "^1.2.0" } }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "optional": true + }, "node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", @@ -7251,9 +7257,9 @@ } }, "node_modules/vite": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.2.tgz", - "integrity": "sha512-JK5uhiVyMqHiAJbgBa8rCvpP8bEhAE9dKDv1gCmP+EUP2FSPmEeW3WXlCXauPB3MDa8behPW+ntyNXqnGaxslg==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.3.tgz", + "integrity": "sha512-1wMDnjflvtTTkMov8O/Xb5+w1/VW/Gw8oCf8f6dqgHn8lMOEqq0SaPtFEQeikFcOKCfSbiU0nEi0LDIx6DNsaQ==", "dev": true, "dependencies": { "esbuild": "^0.12.17", @@ -7272,19 +7278,19 @@ } }, "node_modules/vue": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.6.tgz", - "integrity": "sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.8.tgz", + "integrity": "sha512-x7lwdnOSkceHQUXRVVHBaZzcp6v7M2CYtSZH75zZaT1mTjB4plC4KZHKP/5jAvdqOLBHZGwDSMkWXm3YbAufrA==", "dependencies": { - "@vue/compiler-dom": "3.2.6", - "@vue/runtime-dom": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-dom": "3.2.8", + "@vue/runtime-dom": "3.2.8", + "@vue/shared": "3.2.8" } }, "node_modules/vue-chart-3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.7.tgz", - "integrity": "sha512-BccfPv2rodY6IOppYHvMluVmIJE1CHfp5uW2DXrHrm1kIzaafLwpQ5SwdrxuCevn/QhKoi7azzcxwRcoWbX9hg==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.8.tgz", + "integrity": "sha512-VJEBTdMgWOaYqekXtz4LVBIeYyIx3qDlQnFyY4Ao1GwizokYZBycCeRN3oKDcYbbZi5yxYqTy6+Tm+m+SOPUPA==", "dependencies": { "@vue/runtime-core": "latest", "@vue/runtime-dom": "latest", @@ -7560,20 +7566,20 @@ "dev": true }, "@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.4.tgz", + "integrity": "sha512-Lkcv9I4a8bgUI8LJOLM6IKv6hnz1KOju6KM1lceqVMKlKKqNRopYd2Pc9MgIurqvMJ6BooemrnJz8jlIiQIpsA==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helpers": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7609,9 +7615,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz", - "integrity": "sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", + "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", "dev": true, "requires": { "eslint-scope": "^5.1.1", @@ -7620,12 +7626,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", + "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -7639,9 +7645,9 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "dev": true, "requires": { "@babel/compat-data": "^7.15.0", @@ -7651,105 +7657,105 @@ } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "dev": true, "requires": { - "@babel/types": "^7.15.0" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", + "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.0", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "dev": true, "requires": { - "@babel/types": "^7.14.8" + "@babel/types": "^7.15.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-validator-identifier": { @@ -7764,14 +7770,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", - "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", + "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", "dev": true, "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/highlight": { @@ -7844,25 +7850,25 @@ } }, "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.4.tgz", + "integrity": "sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w==" }, "@babel/standalone": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.3.tgz", - "integrity": "sha512-Bst2YWEyQ2ROyO0+jxPVnnkSmUh44/x54+LSbe5M4N5LGfOkxpajEUKVE4ndXtIVrLlHCyuiqCPwv3eC1ItnCg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.4.tgz", + "integrity": "sha512-UO0QCTFjX5NSuwX/i8+/pesmRPoRTtf46Cpn8VHcXvNinEr2lxqe8Ix10TfU/UK5qsaOrcKk24We8wH1G0nTZA==", "dev": true }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" }, "dependencies": { "@babel/code-frame": { @@ -7877,18 +7883,18 @@ } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -7911,9 +7917,9 @@ } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", + "integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "requires": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" @@ -7968,8 +7974,7 @@ "@fortawesome/vue-fontawesome": { "version": "3.0.0-4", "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.0-4.tgz", - "integrity": "sha512-dQVhhMRcUPCb0aqk5ohm0KGk5OJ7wFZ9aYapLzJB3Z+xs7LhkRWLTb87reelUAG5PFDjutDAXuloT9hi6cz72A==", - "requires": {} + "integrity": "sha512-dQVhhMRcUPCb0aqk5ohm0KGk5OJ7wFZ9aYapLzJB3Z+xs7LhkRWLTb87reelUAG5PFDjutDAXuloT9hi6cz72A==" }, "@humanwhocodes/config-array": { "version": "0.5.0", @@ -8115,9 +8120,9 @@ } }, "@popperjs/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", - "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==" + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.1.tgz", + "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==" }, "@stylelint/postcss-css-in-js": { "version": "0.37.2", @@ -8156,9 +8161,9 @@ } }, "@types/bootstrap": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.2.tgz", - "integrity": "sha512-dSQvMi2dMyNwJU6LZjP0pimuBowsMUvGScYdfqqeiDUoj9TxXZCpfu0cTl94U0Zvw/tdH9j/9ToOhi4LKNLZhg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.1.4.tgz", + "integrity": "sha512-VAY+o6sCKrJ7Xix/lugdvQz0PpOn7Go+fQzCXOZvIdp7E/TDaiJddInVhNB/84bk9NX6uuKFSfl2pqslNYH9aA==", "dev": true, "requires": { "@popperjs/core": "^2.9.2", @@ -8299,9 +8304,9 @@ "dev": true }, "@types/node": { - "version": "16.7.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.8.tgz", - "integrity": "sha512-8upnoQU0OPzbIkm+ZMM0zCeFCkw2s3mS0IWdx0+AAaWqm4fkBb0UJp8Edl7FVKRamYbpJC/aVsHpKWBIbiC7Zg==" + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -8347,9 +8352,9 @@ "dev": true }, "@vitejs/plugin-legacy": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.5.1.tgz", - "integrity": "sha512-g+0iy0X3NJRUSKZK+OCeSxNWnCuuE/6lsmr2WLWPOEt1vp6LdfHuNCYRooCm6s0ccTZ/SiumVk8vt9DWSYs+8A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.5.2.tgz", + "integrity": "sha512-b1CaWY/wi7gQZnZaxH+ujPTPb91bEPgnnk7l0WIwxoQtW5UC5MQywRcAbFX+Ise62exXctOMBtsnXKJw2KajXw==", "dev": true, "requires": { "@babel/standalone": "^7.14.9", @@ -8363,44 +8368,43 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.6.0.tgz", "integrity": "sha512-n3i8htn8pTg9M+kM3cnEfsPZx/6ngInlTroth6fA1LQTJq5aTVQ8ggaE5pPoAy9vCgHPtcaXMzwpldhqRAkebQ==", - "dev": true, - "requires": {} + "dev": true }, "@vue/compiler-core": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.6.tgz", - "integrity": "sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.8.tgz", + "integrity": "sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew==", "requires": { "@babel/parser": "^7.15.0", "@babel/types": "^7.15.0", - "@vue/shared": "3.2.6", + "@vue/shared": "3.2.8", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "@vue/compiler-dom": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.6.tgz", - "integrity": "sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz", + "integrity": "sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw==", "requires": { - "@vue/compiler-core": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8" } }, "@vue/compiler-sfc": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.6.tgz", - "integrity": "sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.8.tgz", + "integrity": "sha512-XClueQAXoWtN2EToKgfYH9FCL70Ac4bxx6OZFZzxYSg1bei8IB9srJP1UOfnJb2IpnM1heikAz1dp1HI1wHcyQ==", "dev": true, "requires": { "@babel/parser": "^7.15.0", "@babel/types": "^7.15.0", "@types/estree": "^0.0.48", - "@vue/compiler-core": "3.2.6", - "@vue/compiler-dom": "3.2.6", - "@vue/compiler-ssr": "3.2.6", - "@vue/ref-transform": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/compiler-core": "3.2.8", + "@vue/compiler-dom": "3.2.8", + "@vue/compiler-ssr": "3.2.8", + "@vue/ref-transform": "3.2.8", + "@vue/shared": "3.2.8", "consolidate": "^0.16.0", "estree-walker": "^2.0.2", "hash-sum": "^2.0.0", @@ -8414,13 +8418,13 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.6.tgz", - "integrity": "sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.8.tgz", + "integrity": "sha512-QqyiFRiIl55W0abDNQ6cNG/7iIfBHmbXVtssUAjX3IlI87ELeT0xackmrCyTSnfIX12ixljg9AN0COIZwlvt5A==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-dom": "3.2.8", + "@vue/shared": "3.2.8" } }, "@vue/devtools-api": { @@ -8429,49 +8433,49 @@ "integrity": "sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA==" }, "@vue/reactivity": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.6.tgz", - "integrity": "sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.8.tgz", + "integrity": "sha512-/Hj3Uz28SG+xB5SDWPOXUs0emvHkq82EmTgk44/plTVFeswCZ3i3Hd7WmsrPT4rGajlDKd5uqMmW0ith1ED0FA==", "requires": { - "@vue/shared": "3.2.6" + "@vue/shared": "3.2.8" } }, "@vue/ref-transform": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.6.tgz", - "integrity": "sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.8.tgz", + "integrity": "sha512-9LdADd4JM3klt+b2qNT8a7b7JvBETNBy2Btv5rDzyPrAVS4Vrw+1WWay6gZBgnxfJ9TPSvG8f/9zu6gNGHmJLA==", "dev": true, "requires": { "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/compiler-core": "3.2.8", + "@vue/shared": "3.2.8", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/runtime-core": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.6.tgz", - "integrity": "sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.8.tgz", + "integrity": "sha512-hwzXLGw1njBEY5JSyRXIIdCtzMFFF6F38WcKMmoIE3p7da30jEbWt8EwwrBomjT8ZbqzElOGlewBcnXNOiiIUg==", "requires": { - "@vue/reactivity": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/reactivity": "3.2.8", + "@vue/shared": "3.2.8" } }, "@vue/runtime-dom": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.6.tgz", - "integrity": "sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.8.tgz", + "integrity": "sha512-A/aRrlGLJ5y4Z7eNbnO/xHwx2RiPijQo7D3OIwESroG3HNP+dpuoqamajo5TXS9ZGjbMOih82COoe7xb9P4BZw==", "requires": { - "@vue/runtime-core": "3.2.6", - "@vue/shared": "3.2.6", + "@vue/runtime-core": "3.2.8", + "@vue/shared": "3.2.8", "csstype": "^2.6.8" } }, "@vue/shared": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.6.tgz", - "integrity": "sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw==" + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.8.tgz", + "integrity": "sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==" }, "abbrev": { "version": "1.1.1", @@ -8497,8 +8501,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "agent-base": { "version": "6.0.2", @@ -8557,9 +8560,9 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8853,8 +8856,7 @@ "bootstrap": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.0.tgz", - "integrity": "sha512-bs74WNI9BgBo3cEovmdMHikSKoXnDgA6VQjJ7TyTotU6L7d41ZyCEEelPwkYEzsG/Zjv3ie9IE3EMAje0W9Xew==", - "requires": {} + "integrity": "sha512-bs74WNI9BgBo3cEovmdMHikSKoXnDgA6VQjJ7TyTotU6L7d41ZyCEEelPwkYEzsG/Zjv3ie9IE3EMAje0W9Xew==" }, "brace-expansion": { "version": "1.1.11", @@ -8968,8 +8970,7 @@ "chartjs-adapter-dayjs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/chartjs-adapter-dayjs/-/chartjs-adapter-dayjs-1.0.0.tgz", - "integrity": "sha512-EnbVqTJGFKLpg1TROLdCEufrzbmIa2oeLGx8O2Wdjw2EoMudoOo9+YFu+6CM0Z0hQ/v3yq/e/Y6efQMu22n8Jg==", - "requires": {} + "integrity": "sha512-EnbVqTJGFKLpg1TROLdCEufrzbmIa2oeLGx8O2Wdjw2EoMudoOo9+YFu+6CM0Z0hQ/v3yq/e/Y6efQMu22n8Jg==" }, "chokidar": { "version": "3.5.2", @@ -9107,15 +9108,15 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "core-js": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.4.tgz", - "integrity": "sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.2.tgz", + "integrity": "sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA==", "dev": true }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cors": { "version": "2.8.5", @@ -9335,9 +9336,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.824", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz", - "integrity": "sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA==", + "version": "1.3.830", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz", + "integrity": "sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==", "dev": true }, "emoji-regex": { @@ -9434,9 +9435,9 @@ } }, "esbuild": { - "version": "0.12.24", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.24.tgz", - "integrity": "sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A==", + "version": "0.12.25", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.25.tgz", + "integrity": "sha512-woie0PosbRSoN8gQytrdCzUbS2ByKgO8nD1xCZkEup3D9q92miCze4PqEI9TZDYAuwn6CruEnQpJxgTRWdooAg==", "dev": true }, "escalade": { @@ -9861,9 +9862,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", - "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==" + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", + "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==" }, "forever-agent": { "version": "0.6.1", @@ -10261,8 +10262,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ignore": { "version": "4.0.6", @@ -10584,9 +10584,9 @@ "dev": true }, "knex": { - "version": "0.95.10", - "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.10.tgz", - "integrity": "sha512-I60A8TXcMdeJlE6h7DSgEYyY37S7kgLObz1qlJ7QvPMD6vnKO5dtuLEht5pMia9Qf5BomqVgkWCdVTqcC/ImOA==", + "version": "0.95.11", + "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.11.tgz", + "integrity": "sha512-grDetD91O8VoQVCFqeWTgkzdq5406W6rggF/lK1hHuwzmjDs/0m9KxyncGdZbklTi7aUgHvw3+Cfy4x7FvpdaQ==", "requires": { "colorette": "1.2.1", "commander": "^7.1.0", @@ -11463,8 +11463,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -11783,8 +11782,7 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "requires": {} + "dev": true }, "postcss-value-parser": { "version": "4.1.0", @@ -12002,9 +12000,9 @@ }, "dependencies": { "@types/node": { - "version": "14.17.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.12.tgz", - "integrity": "sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw==" + "version": "14.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.14.tgz", + "integrity": "sha512-rsAj2u8Xkqfc332iXV12SqIsjVi07H479bOP4q94NAcjzmAvapumEhuVIt53koEf7JFrpjgNKjBga5Pnn/GL8A==" } } }, @@ -12176,9 +12174,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.38.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.2.tgz", - "integrity": "sha512-Bz1fG6qiyF0FX6m/I+VxtdVKz1Dfmg/e9kfDy2PhWOkq3T384q2KxwIfP0fXpeI+EyyETdOauH+cRHQDFASllA==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz", + "integrity": "sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0" @@ -12680,8 +12678,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-standard": { "version": "22.0.0", @@ -13113,6 +13110,14 @@ "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "optional": true + } } }, "vfile": { @@ -13138,9 +13143,9 @@ } }, "vite": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.2.tgz", - "integrity": "sha512-JK5uhiVyMqHiAJbgBa8rCvpP8bEhAE9dKDv1gCmP+EUP2FSPmEeW3WXlCXauPB3MDa8behPW+ntyNXqnGaxslg==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.3.tgz", + "integrity": "sha512-1wMDnjflvtTTkMov8O/Xb5+w1/VW/Gw8oCf8f6dqgHn8lMOEqq0SaPtFEQeikFcOKCfSbiU0nEi0LDIx6DNsaQ==", "dev": true, "requires": { "esbuild": "^0.12.17", @@ -13151,19 +13156,19 @@ } }, "vue": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.6.tgz", - "integrity": "sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.8.tgz", + "integrity": "sha512-x7lwdnOSkceHQUXRVVHBaZzcp6v7M2CYtSZH75zZaT1mTjB4plC4KZHKP/5jAvdqOLBHZGwDSMkWXm3YbAufrA==", "requires": { - "@vue/compiler-dom": "3.2.6", - "@vue/runtime-dom": "3.2.6", - "@vue/shared": "3.2.6" + "@vue/compiler-dom": "3.2.8", + "@vue/runtime-dom": "3.2.8", + "@vue/shared": "3.2.8" } }, "vue-chart-3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.7.tgz", - "integrity": "sha512-BccfPv2rodY6IOppYHvMluVmIJE1CHfp5uW2DXrHrm1kIzaafLwpQ5SwdrxuCevn/QhKoi7azzcxwRcoWbX9hg==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.8.tgz", + "integrity": "sha512-VJEBTdMgWOaYqekXtz4LVBIeYyIx3qDlQnFyY4Ao1GwizokYZBycCeRN3oKDcYbbZi5yxYqTy6+Tm+m+SOPUPA==", "requires": { "@vue/runtime-core": "latest", "@vue/runtime-dom": "latest", @@ -13176,14 +13181,12 @@ "vue-confirm-dialog": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vue-confirm-dialog/-/vue-confirm-dialog-1.0.2.tgz", - "integrity": "sha512-gTo1bMDWOLd/6ihmWv8VlPxhc9QaKoE5YqlsKydUOfrrQ3Q3taljF6yI+1TMtAtJLrvZ8DYrePhgBhY1VCJzbQ==", - "requires": {} + "integrity": "sha512-gTo1bMDWOLd/6ihmWv8VlPxhc9QaKoE5YqlsKydUOfrrQ3Q3taljF6yI+1TMtAtJLrvZ8DYrePhgBhY1VCJzbQ==" }, "vue-demi": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.10.1.tgz", - "integrity": "sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==", - "requires": {} + "integrity": "sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==" }, "vue-eslint-parser": { "version": "7.10.0", @@ -13246,8 +13249,7 @@ "vue-toastification": { "version": "2.0.0-rc.1", "resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.1.tgz", - "integrity": "sha512-hjauv/FyesNZdwcr5m1SCyvu1JmlB+Ts5bTptDLDmsYYlj6Oqv8NYakiElpCF+Abwkn9J/AChh6FwkTL1HOb7Q==", - "requires": {} + "integrity": "sha512-hjauv/FyesNZdwcr5m1SCyvu1JmlB+Ts5bTptDLDmsYYlj6Oqv8NYakiElpCF+Abwkn9J/AChh6FwkTL1HOb7Q==" }, "which": { "version": "2.0.2", @@ -13292,8 +13294,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" }, "xmlhttprequest-ssl": { "version": "2.0.0", diff --git a/package.json b/package.json index f503bbf57..43d0b6354 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "sqlite3": "github:mapbox/node-sqlite3#593c9d", "tcp-ping": "^0.1.1", "v-pagination-3": "^0.1.6", - "vue": "^3.2.6", + "vue": "^3.2.8", "vue-chart-3": "^0.5.7", "vue-confirm-dialog": "^1.0.2", "vue-i18n": "^9.1.7", From 7fd12f54859ce33277e57f31c5ce18592e0443a5 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 14:42:55 +0800 Subject: [PATCH 44/48] rename nl_NL.js to nl-NL.js --- src/languages/{nl_NL.js => nl-NL.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/languages/{nl_NL.js => nl-NL.js} (100%) diff --git a/src/languages/nl_NL.js b/src/languages/nl-NL.js similarity index 100% rename from src/languages/nl_NL.js rename to src/languages/nl-NL.js From 4b8e7fcffcfc9080a1c59f152bad16dd25b060b7 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 15:03:26 +0800 Subject: [PATCH 45/48] update "build-docker" to build both platforms --- extra/update-version.js | 2 ++ package.json | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/extra/update-version.js b/extra/update-version.js index 697a64010..ca810a40a 100644 --- a/extra/update-version.js +++ b/extra/update-version.js @@ -23,6 +23,8 @@ if (! exists) { pkg.version = newVersion; pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion); pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion); + pkg.scripts["build-docker-alpine"] = pkg.scripts["build-docker-alpine"].replaceAll(oldVersion, newVersion); + pkg.scripts["build-docker-debian"] = pkg.scripts["build-docker-debian"].replaceAll(oldVersion, newVersion); fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n"); commit(newVersion); diff --git a/package.json b/package.json index 43d0b6354..1bf9a890b 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,11 @@ "start-server": "node server/server.js", "build": "vite build", "vite-preview-dist": "vite preview --host", - "build-docker": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.2 --target release . --push", + "build-docker": "npm run build-docker-alpine && npm run build-docker-debian", + "build-docker-alpine": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.2 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.2-alpine --target release . --push", + "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.2-debian --target release . --push", "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", - "build-docker-1.5.0-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:1.5.0-debian --target release . --push", "setup": "git checkout 1.5.2 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", "update-version": "node extra/update-version.js", "mark-as-nightly": "node extra/mark-as-nightly.js", From 6a603203ccf1ea766e1b3c9a3945b6ff0e5e60b4 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 15:07:32 +0800 Subject: [PATCH 46/48] update to 1.5.3 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 1bf9a890b..1cfd01c51 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "1.5.2", + "version": "1.5.3", "license": "MIT", "repository": { "type": "git", @@ -19,11 +19,11 @@ "build": "vite build", "vite-preview-dist": "vite preview --host", "build-docker": "npm run build-docker-alpine && npm run build-docker-debian", - "build-docker-alpine": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.2 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.2-alpine --target release . --push", - "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.2-debian --target release . --push", + "build-docker-alpine": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.3 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.3-alpine --target release . --push", + "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.3-debian --target release . --push", "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", - "setup": "git checkout 1.5.2 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", + "setup": "git checkout 1.5.3 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", "update-version": "node extra/update-version.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", From ee60d7491015b4fcbdb249f7e082e475ae29f99b Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 15:32:55 +0800 Subject: [PATCH 47/48] fix dockerfile path --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1cfd01c51..8bb962904 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "vite-preview-dist": "vite preview --host", "build-docker": "npm run build-docker-alpine && npm run build-docker-debian", "build-docker-alpine": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.3 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.3-alpine --target release . --push", - "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.3-debian --target release . --push", + "build-docker-debian": "docker buildx build -f dockerfile-debian --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.3-debian --target release . --push", "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", "setup": "git checkout 1.5.3 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune", From 778995a4fba33b66ea73c190f002e5618405c87d Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sat, 4 Sep 2021 15:48:25 +0800 Subject: [PATCH 48/48] add dockerfile-debian --- dockerfile-debian | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 dockerfile-debian diff --git a/dockerfile-debian b/dockerfile-debian new file mode 100644 index 000000000..7e0f79890 --- /dev/null +++ b/dockerfile-debian @@ -0,0 +1,28 @@ +# DON'T UPDATE TO alpine3.13, 1.14, see #41. +FROM node:14-bullseye AS release +WORKDIR /app + +RUN apt update +RUN apt --yes install python3 python3-pip python3-dev git g++ make +RUN ln -s /usr/bin/python3 /usr/bin/python + +# split the sqlite install here, so that it can caches the arm prebuilt +RUN npm install mapbox/node-sqlite3#593c9d + +# Install apprise +RUN apt --yes install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib +RUN pip3 --no-cache-dir install apprise && \ + rm -rf /root/.cache + +RUN apt --yes install iputils-ping + +COPY . . +RUN npm install --legacy-peer-deps && npm run build && npm prune + +EXPOSE 3001 +VOLUME ["/app/data"] +HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js +CMD ["node", "server/server.js"] + +FROM release AS nightly +RUN npm run mark-as-nightly